Exemplo n.º 1
0
    def test_Broken_instance___getstate___raises_useful_exception(self):
        # see http://www.zope.org/Collectors/Zope/2157
        from OFS.Uninstalled import Broken
        from OFS.Uninstalled import BrokenClass
        OID = '\x01' * 8

        inst = Broken(self, OID, ('Products.MyProduct.MyClass', 'MyClass'))

        try:
            dict = inst.__getstate__()
        except SystemError, e:
            self.failUnless('MyClass' in str(e), str(e))
Exemplo n.º 2
0
    def test_Broken_instance___getattr___allows_persistence_attrs(self):
        from OFS.Uninstalled import Broken
        from OFS.Uninstalled import BrokenClass
        OID = '\x01' * 8
        PERSISTENCE_ATTRS = ["_p_changed",
                             "_p_jar",
                             "_p_mtime",
                             "_p_oid",
                             "_p_serial",
                             "_p_state",
                            ]
        PERSISTENCE_METHODS = ["_p_deactivate",
                               "_p_activate",
                               "_p_invalidate",
                               "_p_getattr",
                               "_p_setattr",
                               "_p_delattr",
                              ]

        inst = Broken(self, OID, ('Products.MyProduct.MyClass', 'MyClass'))

        for attr_name in PERSISTENCE_ATTRS:
            attr = getattr(inst, attr_name) # doesn't raise

        for meth_name in PERSISTENCE_METHODS:
            meth = getattr(inst, meth_name) # doesn't raise
Exemplo n.º 3
0
    def test_Broken_product_no_oid_yields_class_derived_from_Broken(self):
        from OFS.Uninstalled import Broken
        from OFS.Uninstalled import BrokenClass

        klass = Broken(self, None, ('Products.MyProduct.MyClass', 'MyClass'))

        self.assertTrue(issubclass(klass, BrokenClass))
        self.assertEqual(klass.__name__, 'MyClass')
        self.assertEqual(klass.__module__, 'Products.MyProduct.MyClass')
        self.assertEqual(klass.product_name, 'MyProduct')
Exemplo n.º 4
0
    def test_Broken_non_product_no_oid_yields_class_derived_from_Broken(self):
        from OFS.Uninstalled import Broken
        from OFS.Uninstalled import BrokenClass

        klass = Broken(self, None, ('some.python.module', 'MyClass'))

        self.assertTrue(issubclass(klass, BrokenClass))
        self.assertEqual(klass.__name__, 'MyClass')
        self.assertEqual(klass.__module__, 'some.python.module')
        self.assertEqual(klass.product_name, 'unknown')
Exemplo n.º 5
0
    def test_Broken_product_with_oid_yields_instance_derived_from_Broken(self):
        from OFS.Uninstalled import Broken
        from OFS.Uninstalled import BrokenClass
        OID = '\x01' * 8

        inst = Broken(self, OID, ('Products.MyProduct.MyClass', 'MyClass'))

        self.assertTrue(isinstance(inst, BrokenClass))
        self.assertTrue(inst._p_jar is self)
        self.assertEqual(inst._p_oid, OID)

        klass = inst.__class__
        self.assertEqual(klass.__name__, 'MyClass')
        self.assertEqual(klass.__module__, 'Products.MyProduct.MyClass')
        self.assertEqual(klass.product_name, 'MyProduct')