summaryrefslogtreecommitdiff
path: root/src/zope/schema/tests/test__bootstrapfields.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/zope/schema/tests/test__bootstrapfields.py')
-rw-r--r--src/zope/schema/tests/test__bootstrapfields.py23
1 files changed, 22 insertions, 1 deletions
diff --git a/src/zope/schema/tests/test__bootstrapfields.py b/src/zope/schema/tests/test__bootstrapfields.py
index 027944c..58e7e31 100644
--- a/src/zope/schema/tests/test__bootstrapfields.py
+++ b/src/zope/schema/tests/test__bootstrapfields.py
@@ -17,8 +17,9 @@ import unittest
import unicodedata
# pylint:disable=protected-access,inherit-non-class,blacklisted-name
+# pylint:disable=attribute-defined-outside-init
-class EqualityTestsMixin(object):
+class InterfaceConformanceTestsMixin(object):
def _getTargetClass(self):
raise NotImplementedError
@@ -54,6 +55,26 @@ class EqualityTestsMixin(object):
verifyObject(iface, instance)
return verifyObject
+ def test_iface_is_first_in_sro(self):
+ from zope.interface import implementedBy
+ implemented = implementedBy(self._getTargetClass())
+ __traceback_info__ = implemented.__sro__
+ self.assertIs(implemented, implemented.__sro__[0])
+ self.assertIs(self._getTargetInterface(), implemented.__sro__[1])
+
+ def test_implements_consistent__sro__(self):
+ from zope.interface import ro
+ from zope.interface import implementedBy
+ __traceback_info__ = implementedBy(self._getTargetClass()).__sro__
+ self.assertTrue(ro.is_consistent(implementedBy(self._getTargetClass())))
+
+ def test_iface_consistent_ro(self):
+ from zope.interface import ro
+ __traceback_info__ = self._getTargetInterface().__iro__
+ self.assertTrue(ro.is_consistent(self._getTargetInterface()))
+
+class EqualityTestsMixin(InterfaceConformanceTestsMixin):
+
def test_is_hashable(self):
field = self._makeOne()
hash(field) # doesn't raise