def setUp(self):
     docker_dns.CONFIG = DEFAULT_CONFIG
     self.client = MockDockerClient()
     self.mapping = DockerMapping(self.client)
     self.resolver = DockerResolver(self.mapping)
Пример #2
0
 def setUp(self):
     docker_dns.CONFIG = DEFAULT_CONFIG
     self.client = MockDockerClient()
     self.mapping = DockerMapping(self.client)
class DockerMappingTest(unittest.TestCase):
    def setUp(self):
        docker_dns.CONFIG = DEFAULT_CONFIG
        self.client = MockDockerClient()
        self.mapping = DockerMapping(self.client)

    #
    # TEST _ids_from_prop
    #
    def test__ids_from_prop_single_depth(self):
        ids_gen1, ids_gen2 = itertools.tee(
            self.mapping._ids_from_prop(['ID'], 'cidpandaslong'))
        self.assertEqual(sum(1 for _ in ids_gen1), 1)
        self.assertEqual(ids_gen2.next(), 'cidpandaslong')

    def test__ids_from_prop_multi_depth(self):
        ids_gen1, ids_gen2 = itertools.tee(
            self.mapping._ids_from_prop(['NetworkSettings', 'IPAddress'],
                                        '8.8.8.8'))
        self.assertEqual(sum(1 for _ in ids_gen1), 1)
        self.assertEqual(ids_gen2.next(), 'cidfoxeslong')

    def test__ids_from_prop_multi_match(self):
        # FIXME I can not believe how disgusting this is
        ids_gen1, ids_gen2, ids_gen3 = itertools.tee(
            self.mapping._ids_from_prop(['Same'], 'Value'), 3)
        self.assertEqual(sum(1 for _ in ids_gen1), 2)
        self.assertTrue(in_generator(ids_gen2, 'cidpandaslong'))
        self.assertTrue(in_generator(ids_gen3, 'cidfoxeslong'))

    #
    # TEST lookup_container
    #
    def test_lookup_container_hostname(self):
        self.assertEqual(self.mapping.lookup_container('cuddly-pandas'),
                         self.client.inspect_container_pandas)

    def test_lookup_container_id(self):
        self.assertEqual(self.mapping.lookup_container('cidfoxes.docker'),
                         self.client.inspect_container_foxes)

    def test_lookup_container_hostname_none(self):
        self.assertEqual(
            # Raises an APIError 404
            self.mapping.lookup_container('invalid'),
            None)

    def test_lookup_container_id_none(self):
        self.assertEqual(
            # Raises an APIError 404
            self.mapping.lookup_container('invalid.docker'),
            None)

    #
    # TEST get_a
    #
    def test_get_a_hostname(self):
        self.assertEqual(self.mapping.get_a('sneaky-foxes'), '8.8.8.8')

    def test_get_a_id(self):
        self.assertEqual(self.mapping.get_a('cidpandas.docker'), '127.0.0.1')

    def test_get_a_hostname_none(self):
        self.assertEqual(self.mapping.get_a('invalid'), None)

    def test_get_a_id_none(self):
        self.assertEqual(self.mapping.get_a('invalid.docker'), None)
Пример #4
0
class DockerMappingTest(unittest.TestCase):

    def setUp(self):
        docker_dns.CONFIG = DEFAULT_CONFIG
        self.client = MockDockerClient()
        self.mapping = DockerMapping(self.client)

    #
    # TEST _ids_from_prop
    #
    def test__ids_from_prop_single_depth(self):
        ids_gen1, ids_gen2 = itertools.tee(
            self.mapping._ids_from_prop(
                ['ID'],
                'cidpandaslong'
            )
        )
        self.assertEqual(sum(1 for _ in ids_gen1), 1)
        self.assertEqual(
            ids_gen2.next(),
            'cidpandaslong'
        )

    def test__ids_from_prop_multi_depth(self):
        ids_gen1, ids_gen2 = itertools.tee(
            self.mapping._ids_from_prop(
                ['NetworkSettings', 'IPAddress'],
                '8.8.8.8'
            )
        )
        self.assertEqual(sum(1 for _ in ids_gen1), 1)
        self.assertEqual(
            ids_gen2.next(),
            'cidfoxeslong'
        )

    def test__ids_from_prop_multi_match(self):
        # FIXME I can not believe how disgusting this is
        ids_gen1, ids_gen2, ids_gen3 = itertools.tee(
            self.mapping._ids_from_prop(
                ['Same'],
                'Value'
            ), 3
        )
        self.assertEqual(sum(1 for _ in ids_gen1), 2)
        self.assertTrue(in_generator(ids_gen2, 'cidpandaslong'))
        self.assertTrue(in_generator(ids_gen3, 'cidfoxeslong'))

    #
    # TEST lookup_container
    #
    def test_lookup_container_hostname(self):
        self.assertEqual(
            self.mapping.lookup_container('cuddly-pandas'),
            self.client.inspect_container_pandas
        )

    def test_lookup_container_id(self):
        self.assertEqual(
            self.mapping.lookup_container('cidfoxes.docker'),
            self.client.inspect_container_foxes
        )

    def test_lookup_container_hostname_none(self):
        self.assertEqual(
            # Raises an APIError 404
            self.mapping.lookup_container('invalid'),
            None
        )

    def test_lookup_container_id_none(self):
        self.assertEqual(
            # Raises an APIError 404
            self.mapping.lookup_container('invalid.docker'),
            None
        )

    #
    # TEST get_a
    #
    def test_get_a_hostname(self):
        self.assertEqual(
            self.mapping.get_a('sneaky-foxes'),
            '8.8.8.8'
        )

    def test_get_a_id(self):
        self.assertEqual(
            self.mapping.get_a('cidpandas.docker'),
            '127.0.0.1'
        )

    def test_get_a_hostname_none(self):
        self.assertEqual(
            self.mapping.get_a('invalid'),
            None
        )

    def test_get_a_id_none(self):
        self.assertEqual(
            self.mapping.get_a('invalid.docker'),
            None
        )