diff --git a/app/tests/test_server.py b/app/tests/test_server.py index 7bda1b4..e8db647 100644 --- a/app/tests/test_server.py +++ b/app/tests/test_server.py @@ -3,7 +3,7 @@ import pytest import logging import os from mock import patch -from server import app, Server, ProxyState +from server import app, Server, ProxyState, HypercornLogHndl pytest_plugins = ('pytest_asyncio',) @@ -105,6 +105,8 @@ class TestServerClass: assert logging.getLogger('data').level == logging.DEBUG assert logging.getLogger('tracer').level == logging.INFO assert logging.getLogger('asyncio').level == logging.INFO + assert logging.getLogger('hypercorn.access').level == logging.INFO + assert logging.getLogger('hypercorn.error').level == logging.INFO os.environ["LOG_LVL"] = "WARN" s.parse_args(['--log_backups', '3']) @@ -118,6 +120,41 @@ class TestServerClass: assert logging.getLogger('data').level == s.log_level assert logging.getLogger('tracer').level == s.log_level assert logging.getLogger('asyncio').level == s.log_level + assert logging.getLogger('hypercorn.access').level == logging.INFO + assert logging.getLogger('hypercorn.error').level == logging.INFO + +class TestHypercornLogHndl: + class FakeServer(Server): + def __init__(self): + pass # don't call the suoer(.__init__ for unit tests + + def test_save_and_restore(self): + s = self.FakeServer() + s.src_dir = 'app/src/' + s.init_logging_system() + + h = HypercornLogHndl() + assert h.must_fix == False + assert len(h.access_hndl) == 0 + assert len(h.error_hndl) == 0 + + h.save() + assert h.must_fix == True + assert len(h.access_hndl) == 1 + assert len(h.error_hndl) == 2 + assert h.access_hndl == logging.getLogger('hypercorn.access').handlers + assert h.error_hndl == logging.getLogger('hypercorn.error').handlers + + logging.getLogger('hypercorn.access').handlers = [] + logging.getLogger('hypercorn.error').handlers = [] + + h.restore() + assert h.must_fix == False + assert h.access_hndl == logging.getLogger('hypercorn.access').handlers + assert h.error_hndl == logging.getLogger('hypercorn.error').handlers + + h.restore() + assert h.must_fix == False class TestApp: