summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dns/zone.py5
-rw-r--r--tests/test_zone.py10
2 files changed, 13 insertions, 2 deletions
diff --git a/dns/zone.py b/dns/zone.py
index c9c1c20..ac95763 100644
--- a/dns/zone.py
+++ b/dns/zone.py
@@ -162,8 +162,9 @@ class Zone(dns.transaction.TransactionManager):
key = self._validate_name(key)
return self.nodes.get(key)
- def __contains__(self, other):
- return other in self.nodes
+ def __contains__(self, key):
+ key = self._validate_name(key)
+ return key in self.nodes
def find_node(self, name, create=False):
"""Find a node in the zone, possibly creating it.
diff --git a/tests/test_zone.py b/tests/test_zone.py
index 66f3ad5..26adc87 100644
--- a/tests/test_zone.py
+++ b/tests/test_zone.py
@@ -872,5 +872,15 @@ class VersionedZoneTestCase(unittest.TestCase):
rds = txn.get('example.', 'soa')
self.assertEqual(rds[0].serial, 1)
+ def testNameInZoneWithStr(self):
+ z = dns.zone.from_text(example_text, 'example.', relativize=False)
+ self.assertTrue('ns1.example.' in z)
+ self.assertTrue('bar.foo.example.' in z)
+
+ def testNameInZoneWhereNameIsNotValid(self):
+ z = dns.zone.from_text(example_text, 'example.', relativize=False)
+ with self.assertRaises(KeyError):
+ self.assertTrue(1 in z)
+
if __name__ == '__main__':
unittest.main()