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)
     self.resolver = DockerResolver(self.mapping)
class DockerResolverTest(unittest.TestCase):
    def setUp(self):
        docker_dns.CONFIG = DEFAULT_CONFIG
        self.client = MockDockerClient()
        self.mapping = DockerMapping(self.client)
        self.resolver = DockerResolver(self.mapping)

    #
    # TEST _a_records
    #
    def test__a_records_hostname(self):
        rec = self.resolver._a_records('sneaky-foxes')
        self.assertEqual(len(rec), 1)

        rec = rec[0]
        self.assertTrue(check_record(
            rec,
            name='sneaky-foxes',
            type=dns.A,
        ))
        self.assertEqual(rec.payload.dottedQuad(), '8.8.8.8')

    def test__a_records_id(self):
        rec = self.resolver._a_records('cidpandas.docker')
        self.assertEqual(len(rec), 1)

        rec = rec[0]
        self.assertTrue(
            check_record(
                rec,
                name='cidpandas.docker',
                type=dns.A,
            ))
        self.assertEqual(rec.payload.dottedQuad(), '127.0.0.1')

    def test__a_records_shutdown(self):
        self.assertRaises(DomainError, self.resolver._a_records,
                          'cidsloths.docker')

    def test__a_records_invalid(self):
        self.assertRaises(DomainError, self.resolver._a_records,
                          'invalid.docker')

    def test__a_records_blank_query(self):
        self.assertRaises(DomainError, self.resolver._a_records, '')

    def test__a_records_authoritive(self):
        docker_dns.CONFIG['authoritive'] = True
        rec = self.resolver._a_records('cidpandas.docker')
        self.assertEqual(len(rec), 1)

        rec = rec[0]
        self.assertTrue(
            check_record(
                rec,
                name='cidpandas.docker',
                type=dns.A,
                auth=True,
            ))

    def test__a_records_non_authoritive(self):
        docker_dns.CONFIG['authoritive'] = False
        rec = self.resolver._a_records('cidpandas.docker')
        self.assertEqual(len(rec), 1)

        rec = rec[0]
        self.assertTrue(
            check_record(
                rec,
                name='cidpandas.docker',
                type=dns.A,
                auth=False,
            ))

    #
    # TEST lookupAddress
    #
    def test_lookupAddress_id(self):
        deferred = self.resolver.lookupAddress('cidfoxes.docker')

        result = check_deferred(deferred, True)
        self.assertNotEqual(result, False)

        self.assertEqual(len(result), 3)
        self.assertEqual(result[1], ())
        self.assertEqual(result[2], ())
        self.assertEqual(len(result[0]), 1)

        rec = result[0][0]
        self.assertTrue(check_record(
            rec,
            name='cidfoxes.docker',
            type=dns.A,
        ))
        self.assertEqual(rec.payload.dottedQuad(), '8.8.8.8')

    def test_lookupAddress_invalid(self):
        deferred = self.resolver.lookupAddress('invalid')

        result = check_deferred(deferred, False)
        self.assertNotEqual(result, False)

    def test_lookupAddress_invalid_nxdomain(self):
        docker_dns.CONFIG['no_nxdomain'] = False
        deferred = self.resolver.lookupAddress('invalid')

        result = check_deferred(deferred, False)
        self.assertNotEqual(result, False)
        self.assertEqual(result.type, DomainError)  # noqa pylint:disable=maybe-no-member

    def test_lookupAddress_invalid_no_nxdomain(self):
        docker_dns.CONFIG['no_nxdomain'] = True
        deferred = self.resolver.lookupAddress('invalid')

        result = check_deferred(deferred, False)
        self.assertNotEqual(result, False)
        self.assertEqual(result.type, DNSQueryTimeoutError)  # noqa pylint:disable=maybe-no-member
예제 #4
0
class DockerResolverTest(unittest.TestCase):

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

    #
    # TEST _a_records
    #
    def test__a_records_hostname(self):
        rec = self.resolver._a_records('sneaky-foxes')
        self.assertEqual(len(rec), 1)

        rec = rec[0]
        self.assertTrue(check_record(
            rec,
            name='sneaky-foxes',
            type=dns.A,
        ))
        self.assertEqual(rec.payload.dottedQuad(), '8.8.8.8')

    def test__a_records_id(self):
        rec = self.resolver._a_records('cidpandas.docker')
        self.assertEqual(len(rec), 1)

        rec = rec[0]
        self.assertTrue(check_record(
            rec,
            name='cidpandas.docker',
            type=dns.A,
        ))
        self.assertEqual(rec.payload.dottedQuad(), '127.0.0.1')

    def test__a_records_shutdown(self):
        self.assertRaises(
            DomainError,
            self.resolver._a_records,
            'cidsloths.docker'
        )

    def test__a_records_invalid(self):
        self.assertRaises(
            DomainError,
            self.resolver._a_records,
            'invalid.docker'
        )

    def test__a_records_blank_query(self):
        self.assertRaises(
            DomainError,
            self.resolver._a_records,
            ''
        )

    def test__a_records_authoritive(self):
        docker_dns.CONFIG['authoritive'] = True
        rec = self.resolver._a_records('cidpandas.docker')
        self.assertEqual(len(rec), 1)

        rec = rec[0]
        self.assertTrue(check_record(
            rec,
            name='cidpandas.docker',
            type=dns.A,
            auth=True,
        ))

    def test__a_records_non_authoritive(self):
        docker_dns.CONFIG['authoritive'] = False
        rec = self.resolver._a_records('cidpandas.docker')
        self.assertEqual(len(rec), 1)

        rec = rec[0]
        self.assertTrue(check_record(
            rec,
            name='cidpandas.docker',
            type=dns.A,
            auth=False,
        ))

    #
    # TEST lookupAddress
    #
    def test_lookupAddress_id(self):
        deferred = self.resolver.lookupAddress('cidfoxes.docker')

        result = check_deferred(deferred, True)
        self.assertNotEqual(result, False)

        self.assertEqual(len(result), 3)
        self.assertEqual(result[1], ())
        self.assertEqual(result[2], ())
        self.assertEqual(len(result[0]), 1)

        rec = result[0][0]
        self.assertTrue(check_record(
            rec,
            name='cidfoxes.docker',
            type=dns.A,
        ))
        self.assertEqual(rec.payload.dottedQuad(), '8.8.8.8')

    def test_lookupAddress_invalid(self):
        deferred = self.resolver.lookupAddress('invalid')

        result = check_deferred(deferred, False)
        self.assertNotEqual(result, False)

    def test_lookupAddress_invalid_nxdomain(self):
        docker_dns.CONFIG['no_nxdomain'] = False
        deferred = self.resolver.lookupAddress('invalid')

        result = check_deferred(deferred, False)
        self.assertNotEqual(result, False)
        self.assertEqual(result.type, DomainError)  # noqa pylint:disable=maybe-no-member

    def test_lookupAddress_invalid_no_nxdomain(self):
        docker_dns.CONFIG['no_nxdomain'] = True
        deferred = self.resolver.lookupAddress('invalid')

        result = check_deferred(deferred, False)
        self.assertNotEqual(result, False)
        self.assertEqual(result.type, DNSQueryTimeoutError)  # noqa pylint:disable=maybe-no-member