%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
############################################################################## # # Copyright (c) 2010 Zope Foundation and Contributors. # All Rights Reserved. # # This software is subject to the provisions of the Zope Public License, # Version 2.1 (ZPL). A copy of the ZPL should accompany this distribution. # THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED # WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS # FOR A PARTICULAR PURPOSE. # ############################################################################## """ zope.interface.exceptions unit tests """ import unittest def _makeIface(): from zope.interface import Interface class IDummy(Interface): pass return IDummy class DoesNotImplementTests(unittest.TestCase): def _getTargetClass(self): from zope.interface.exceptions import DoesNotImplement return DoesNotImplement def _makeOne(self, iface=None): if iface is None: iface = _makeIface() return self._getTargetClass()(iface) def test___str__(self): dni = self._makeOne() # XXX The trailing newlines and blank spaces are a stupid artifact. self.assertEqual(str(dni), 'An object does not implement interface <InterfaceClass ' 'zope.interface.tests.test_exceptions.IDummy>\n\n ') class BrokenImplementationTests(unittest.TestCase): def _getTargetClass(self): from zope.interface.exceptions import BrokenImplementation return BrokenImplementation def _makeOne(self, iface=None, name='missing'): if iface is None: iface = _makeIface() return self._getTargetClass()(iface, name) def test___str__(self): dni = self._makeOne() # XXX The trailing newlines and blank spaces are a stupid artifact. self.assertEqual(str(dni), 'An object has failed to implement interface <InterfaceClass ' 'zope.interface.tests.test_exceptions.IDummy>\n\n' ' The missing attribute was not provided.\n ') class BrokenMethodImplementationTests(unittest.TestCase): def _getTargetClass(self): from zope.interface.exceptions import BrokenMethodImplementation return BrokenMethodImplementation def _makeOne(self, method='aMethod', mess='I said so'): return self._getTargetClass()(method, mess) def test___str__(self): dni = self._makeOne() self.assertEqual(str(dni), 'The implementation of aMethod violates its contract\n' ' because I said so.\n ')