From: kimbo Date: Mon, 6 Jan 2020 17:55:07 +0000 (-0700) Subject: only allow Resolver.nameservers to be a list X-Git-Tag: v2.0.0rc1~343^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F406%2Fhead;p=thirdparty%2Fdnspython.git only allow Resolver.nameservers to be a list --- 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