Ejemplo n.º 1
0
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"
Ejemplo n.º 2
0
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 == {}