%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) Twisted Matrix Laboratories. # See LICENSE for details. from __future__ import absolute_import, division from twisted.trial import unittest from twisted.python import roots class RootsTests(unittest.TestCase): def testExceptions(self): request = roots.Request() try: request.write(b"blah") except NotImplementedError: pass else: self.fail() try: request.finish() except NotImplementedError: pass else: self.fail() def testCollection(self): collection = roots.Collection() collection.putEntity("x", 'test') self.assertEqual(collection.getStaticEntity("x"), 'test') collection.delEntity("x") self.assertEqual(collection.getStaticEntity('x'), None) try: collection.storeEntity("x", None) except NotImplementedError: pass else: self.fail() try: collection.removeEntity("x", None) except NotImplementedError: pass else: self.fail() def testConstrained(self): class const(roots.Constrained): def nameConstraint(self, name): return (name == 'x') c = const() self.assertIsNone(c.putEntity('x', 'test')) self.assertRaises(roots.ConstraintViolation, c.putEntity, 'y', 'test') def testHomogenous(self): h = roots.Homogenous() h.entityType = int h.putEntity('a', 1) self.assertEqual(h.getStaticEntity('a'),1 ) self.assertRaises(roots.ConstraintViolation, h.putEntity, 'x', 'y')