| # 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() |