diff --git a/tests/test_runserver_config.py b/tests/test_runserver_config.py index 3e837e64..370a8eb2 100644 --- a/tests/test_runserver_config.py +++ b/tests/test_runserver_config.py @@ -90,3 +90,37 @@ def app_factory(foo): with pytest.raises(AiohttpDevConfigError, match=r"'app\.py\.app_factory' should not have required arguments"): await config.load_app(config.get_app_factory(module)) + + +@forked +async def test_no_ssl_context_factory(tmpworkdir): + mktree(tmpworkdir, { + 'app.py': """\ +def app_factory(foo): + return web.Application() +""" + }) + config = Config(app_path='app.py', ssl_context_factory_name='get_ssl_context') + module = config.import_module() + with pytest.raises(AiohttpDevConfigError, + match=r"Module 'app.py' does not define a 'get_ssl_context' attribute/class"): + await config.get_ssl_context(module) + + +@forked +async def test_invalid_ssl_context(tmpworkdir): + mktree(tmpworkdir, { + 'app.py': """\ +def app_factory(foo): + return web.Application() + +def get_ssl_context(): + return 'invalid ssl_context' +""" + }) + config = Config(app_path='app.py', ssl_context_factory_name='get_ssl_context') + module = config.import_module() + with pytest.raises(AiohttpDevConfigError, + match=r"ssl-context-factory 'get_ssl_context' in \ + module 'app.py' didn't return valid SSLContext"): + await config.get_ssl_context(module)