From 5272e55db235256f3ad269fccdc4690023aeb5b1 Mon Sep 17 00:00:00 2001 From: kimbo Date: Mon, 6 Jan 2020 10:55:07 -0700 Subject: [PATCH] only allow Resolver.nameservers to be a list --- dns/resolver.py | 16 +++++----------- tests/test_resolver.py | 12 +----------- 2 files changed, 6 insertions(+), 22 deletions(-) diff --git a/dns/resolver.py b/dns/resolver.py index 2ed0ebca..735de9f5 100644 --- a/dns/resolver.py +++ b/dns/resolver.py @@ -524,7 +524,7 @@ class Resolver(object): """ self.domain = None - self.nameservers = None + self.nameservers = [] self.nameserver_ports = None self.port = None self.search = None @@ -1086,19 +1086,13 @@ class Resolver(object): @nameservers.setter def nameservers(self, nameservers): """ - :param nameservers: can be a ``str``, ``list``, or None. - If it's a ``str``, it will converted to a list. - :raise ValueError: if `nameservers` is anything other than \ - ``str``, ``list``, or None. + :param nameservers: must be a ``list``. + :raise ValueError: if `nameservers` is anything other than a ``list``. """ - if isinstance(nameservers, str): - self._nameservers = [nameservers] - elif isinstance(nameservers, list): + if isinstance(nameservers, list): self._nameservers = nameservers - elif nameservers is None: - self._nameservers = None else: - raise ValueError('nameservers must be either a str, a list, or None' + raise ValueError('nameservers must be a list' ' (not a {})'.format(type(nameservers))) #: The default resolver. diff --git a/tests/test_resolver.py b/tests/test_resolver.py index 34161ae8..993a5820 100644 --- a/tests/test_resolver.py +++ b/tests/test_resolver.py @@ -405,11 +405,6 @@ class NXDOMAINExceptionTestCase(unittest.TestCase): class ResolverNameserverValidTypeTestCase(unittest.TestCase): - def test_set_nameservers_to_string(self): - resolver = dns.resolver.Resolver() - resolver.nameservers = '1.2.3.4' - self.assertEqual(resolver.nameservers, ['1.2.3.4']) - def test_set_nameservers_to_list(self): resolver = dns.resolver.Resolver() resolver.nameservers = ['1.2.3.4'] @@ -420,14 +415,9 @@ class ResolverNameserverValidTypeTestCase(unittest.TestCase): resolver.nameservers = [] self.assertEqual(resolver.nameservers, []) - def test_set_nameservers_to_None(self): - resolver = dns.resolver.Resolver() - resolver.nameservers = None - self.assertEqual(resolver.nameservers, None) - def test_set_nameservers_invalid_type(self): resolver = dns.resolver.Resolver() - invalid_nameservers = [1234, (1, 2, 3, 4), {'invalid': 'nameserver'}] + invalid_nameservers = [None, '1.2.3.4', 1234, (1, 2, 3, 4), {'invalid': 'nameserver'}] for invalid_nameserver in invalid_nameservers: with self.assertRaises(ValueError): resolver.nameservers = invalid_nameserver -- 2.47.3