def test_install_fails(tmpdir, caplog): venv = env.VirtualEnv(tmpdir) venv.use_virtual_env() caplog.clear() package_name = "non-existing-pkg-inmanta" with pytest.raises(Exception): venv.install_from_list([package_name]) log_sequence = LogSequence(caplog) log_sequence.contains("inmanta.env", logging.ERROR, f"requirements: {package_name}")
async def test_bind_port(unused_tcp_port, async_finalizer, client, caplog): @protocol.method(path="/test", operation="POST", client_types=["api"]) async def test_endpoint(): pass class TestSlice(ServerSlice): @protocol.handle(test_endpoint) async def test_endpoint_handle(self): return 200 async def assert_port_bound(): # Start server rs = Server() rs.add_slice(TestSlice("test")) await rs.start() async_finalizer(rs.stop) # Check if server is reachable on loopback interface result = await client.test_endpoint() assert result.code == 200 await rs.stop() deprecation_line_log_line = ( "The server_rest_transport.port config option is deprecated in favour of the " "server.bind-port option.") ignoring_log_line = ( "Ignoring the server_rest_transport.port config option since the new config options " "server.bind-port/server.bind-address are used.") # Old config option server_rest_transport.port is set Config.load_config() Config.set("server_rest_transport", "port", str(unused_tcp_port)) Config.set("client_rest_transport", "port", str(unused_tcp_port)) caplog.clear() await assert_port_bound() log_sequence = LogSequence(caplog, allow_errors=False) log_sequence.contains("py.warnings", logging.WARNING, deprecation_line_log_line) log_sequence.assert_not("py.warnings", logging.WARNING, ignoring_log_line) # Old config option server_rest_transport.port and new config option server.bind-port are set together Config.load_config() Config.set("server_rest_transport", "port", str(unused_tcp_port)) Config.set("server", "bind-port", str(unused_tcp_port)) Config.set("client_rest_transport", "port", str(unused_tcp_port)) caplog.clear() await assert_port_bound() log_sequence = LogSequence(caplog, allow_errors=False) log_sequence.assert_not("py.warnings", logging.WARNING, deprecation_line_log_line) log_sequence.contains("py.warnings", logging.WARNING, ignoring_log_line) # The new config option server.bind-port is set Config.load_config() Config.set("server", "bind-port", str(unused_tcp_port)) Config.set("client_rest_transport", "port", str(unused_tcp_port)) caplog.clear() await assert_port_bound() log_sequence = LogSequence(caplog, allow_errors=False) log_sequence.assert_not("py.warnings", logging.WARNING, deprecation_line_log_line) log_sequence.assert_not("py.warnings", logging.WARNING, ignoring_log_line)