1import unittest
2
3
4class _ConformsToIObjectEvent(object):
5
6    def _makeOne(self, target=None):
7        if target is None:
8            target = object()
9        return self._getTargetClass()(target)
10
11    def test_class_conforms_to_IObjectEvent(self):
12        from zope.interface.interfaces import IObjectEvent
13        from zope.interface.verify import verifyClass
14        verifyClass(IObjectEvent, self._getTargetClass())
15
16    def test_instance_conforms_to_IObjectEvent(self):
17        from zope.interface.interfaces import IObjectEvent
18        from zope.interface.verify import verifyObject
19        verifyObject(IObjectEvent, self._makeOne())
20
21
22class _ConformsToIRegistrationEvent(_ConformsToIObjectEvent):
23
24    def test_class_conforms_to_IRegistrationEvent(self):
25        from zope.interface.interfaces import IRegistrationEvent
26        from zope.interface.verify import verifyClass
27        verifyClass(IRegistrationEvent, self._getTargetClass())
28
29    def test_instance_conforms_to_IRegistrationEvent(self):
30        from zope.interface.interfaces import IRegistrationEvent
31        from zope.interface.verify import verifyObject
32        verifyObject(IRegistrationEvent, self._makeOne())
33
34
35class ObjectEventTests(unittest.TestCase, _ConformsToIObjectEvent):
36
37    def _getTargetClass(self):
38        from zope.interface.interfaces import ObjectEvent
39        return ObjectEvent
40
41    def test_ctor(self):
42        target = object()
43        event = self._makeOne(target)
44        self.assertTrue(event.object is target)
45
46
47class RegistrationEventTests(unittest.TestCase,
48                             _ConformsToIRegistrationEvent):
49
50    def _getTargetClass(self):
51        from zope.interface.interfaces import RegistrationEvent
52        return RegistrationEvent
53
54    def test___repr__(self):
55        target = object()
56        event = self._makeOne(target)
57        r = repr(event)
58        self.assertEqual(r.splitlines(),
59                         ['RegistrationEvent event:', repr(target)])
60
61
62class RegisteredTests(unittest.TestCase,
63                      _ConformsToIRegistrationEvent):
64
65    def _getTargetClass(self):
66        from zope.interface.interfaces import Registered
67        return Registered
68
69    def test_class_conforms_to_IRegistered(self):
70        from zope.interface.interfaces import IRegistered
71        from zope.interface.verify import verifyClass
72        verifyClass(IRegistered, self._getTargetClass())
73
74    def test_instance_conforms_to_IRegistered(self):
75        from zope.interface.interfaces import IRegistered
76        from zope.interface.verify import verifyObject
77        verifyObject(IRegistered, self._makeOne())
78
79
80class UnregisteredTests(unittest.TestCase,
81                        _ConformsToIRegistrationEvent):
82
83    def _getTargetClass(self):
84        from zope.interface.interfaces import Unregistered
85        return Unregistered
86
87    def test_class_conforms_to_IUnregistered(self):
88        from zope.interface.interfaces import IUnregistered
89        from zope.interface.verify import verifyClass
90        verifyClass(IUnregistered, self._getTargetClass())
91
92    def test_instance_conforms_to_IUnregistered(self):
93        from zope.interface.interfaces import IUnregistered
94        from zope.interface.verify import verifyObject
95        verifyObject(IUnregistered, self._makeOne())
96
97
98class InterfaceClassTests(unittest.TestCase):
99
100    def _getTargetClass(self):
101        from zope.interface.interface import InterfaceClass
102        return InterfaceClass
103
104    def _getTargetInterface(self):
105        from zope.interface.interfaces import IInterface
106        return IInterface
107
108    def _makeOne(self):
109        from zope.interface.interface import Interface
110        return Interface
111
112    def test_class_conforms(self):
113        from zope.interface.verify import verifyClass
114        verifyClass(self._getTargetInterface(), self._getTargetClass())
115
116    def test_instance_conforms(self):
117        from zope.interface.verify import verifyObject
118        verifyObject(self._getTargetInterface(), self._makeOne())
119
120    def test_instance_consistent__iro__(self):
121        from zope.interface import ro
122        self.assertTrue(ro.is_consistent(self._getTargetInterface()))
123
124    def test_class_consistent__iro__(self):
125        from zope.interface import ro
126        from zope.interface import implementedBy
127
128        self.assertTrue(ro.is_consistent(implementedBy(self._getTargetClass())))
129