summaryrefslogtreecommitdiff
path: root/src/zope/interface/tests
diff options
context:
space:
mode:
Diffstat (limited to 'src/zope/interface/tests')
-rw-r--r--src/zope/interface/tests/test_declarations.py33
1 files changed, 27 insertions, 6 deletions
diff --git a/src/zope/interface/tests/test_declarations.py b/src/zope/interface/tests/test_declarations.py
index 83815d7..fc2ab68 100644
--- a/src/zope/interface/tests/test_declarations.py
+++ b/src/zope/interface/tests/test_declarations.py
@@ -122,6 +122,20 @@ class EmptyDeclarationTests(unittest.TestCase):
decl = self._getEmpty()
self.assertEqual(decl.__iro__, (Interface,))
+ def test_get(self):
+ decl = self._getEmpty()
+ self.assertIsNone(decl.get('attr'))
+ self.assertEqual(decl.get('abc', 'def'), 'def')
+ # It's a positive cache only (when it even exists)
+ # so this added nothing.
+ self.assertFalse(decl._v_attrs)
+
+ def test_changed_w_existing__v_attrs(self):
+ decl = self._getEmpty()
+ decl._v_attrs = object()
+ decl.changed(decl)
+ self.assertFalse(decl._v_attrs)
+
class DeclarationTests(EmptyDeclarationTests):
@@ -153,12 +167,6 @@ class DeclarationTests(EmptyDeclarationTests):
decl.changed(decl) # doesn't raise
self.assertIsNone(decl._v_attrs)
- def test_changed_w_existing__v_attrs(self):
- decl = self._makeOne()
- decl._v_attrs = object()
- decl.changed(decl)
- self.assertIsNone(decl._v_attrs)
-
def test___contains__w_self(self):
decl = self._makeOne()
self.assertNotIn(decl, decl)
@@ -335,6 +343,19 @@ class TestImmutableDeclaration(EmptyDeclarationTests):
self.assertIsNone(self._getEmpty().get('name'))
self.assertEqual(self._getEmpty().get('name', 42), 42)
+ def test_v_attrs(self):
+ decl = self._getEmpty()
+ self.assertEqual(decl._v_attrs, {})
+
+ decl._v_attrs['attr'] = 42
+ self.assertEqual(decl._v_attrs, {})
+ self.assertIsNone(decl.get('attr'))
+
+ attrs = decl._v_attrs = {}
+ attrs['attr'] = 42
+ self.assertEqual(decl._v_attrs, {})
+ self.assertIsNone(decl.get('attr'))
+
class TestImplements(NameAndModuleComparisonTestsMixin,
unittest.TestCase):