# This Source Code Form is subject to the terms of the Mozilla Public # License, v. 2.0. If a copy of the MPL was not distributed with this file, # You can obtain one at http://mozilla.org/MPL/2.0/. import mozhttpd import urllib2 import os import unittest here = os.path.dirname(os.path.abspath(__file__)) class RequestLogTest(unittest.TestCase): def check_logging(self, log_requests=False): httpd = mozhttpd.MozHttpd(port=0, docroot=here, log_requests=log_requests) httpd.start(block=False) url = "http://%s:%s/" % ('127.0.0.1', httpd.httpd.server_port) f = urllib2.urlopen(url) f.read() return httpd.request_log def test_logging_enabled(self): request_log = self.check_logging(log_requests=True) self.assertEqual(len(request_log), 1) log_entry = request_log[0] self.assertEqual(log_entry['method'], 'GET') self.assertEqual(log_entry['path'], '/') self.assertEqual(type(log_entry['time']), float) def test_logging_disabled(self): request_log = self.check_logging(log_requests=False) self.assertEqual(len(request_log), 0) if __name__ == '__main__': unittest.main()