def test_list_nodes(): """Test the list_nodes function by using a mock""" with patch("salt.cloud.clouds.hetzner._connect_client", return_value=MagicMock()) as connect: with pytest.raises(SaltCloudSystemExit): hetzner.list_nodes("action") mock = MagicMock() mock.id = 123456 mock.name = "abc" mock.public_net.ipv4.ip = "127.0.0.1/32" mock.public_net.ipv6.ip = "::1/64" private_net_mock = MagicMock() private_net_mock.ip = "10.0.0.1/16" mock.private_net = [] mock.private_net.append(private_net_mock) mock.labels = "abc" connect.return_value.servers.get_all.return_value = [mock] nodes = hetzner.list_nodes() assert nodes[mock.name]["id"], mock.id # Labels should be filtered assert "labels" not in nodes[mock.name] assert nodes[mock.name]["public_ips"]["ipv4"] == "127.0.0.1/32" assert nodes[mock.name]["public_ips"]["ipv6"] == "::1/64" assert nodes[mock.name]["private_ips"][0]["ip"] == "10.0.0.1/16"
def test_show_instance(): """ Test the show_instance function by using a mock """ with patch("salt.cloud.clouds.hetzner._connect_client", return_value=MagicMock()) as connect: with pytest.raises(SaltCloudSystemExit): hetzner.show_instance("myvm", "action") mock = MagicMock() mock.id = 123456 mock.name = "abc" mock.public_net.ipv4.ip = "127.0.0.1/32" mock.public_net.ipv6.ip = "::1/64" mock.private_net = [] mock.labels = "abc" connect.return_value.servers.get_all.return_value = [mock] nodes = hetzner.show_instance(mock.name) assert nodes["id"] == mock.id nodes = hetzner.show_instance("not-existing") assert nodes == {}