예제 #1
0
    def test_default_impl_readonly(self):
        alsoProvides(self.folder, IStorageEnabled)
        sf = IStorageFactory(self.folder)
        sf.backend = u'dummy_a'
        self.assertEqual(sf.backend, u'dummy_a')

        with self.assertRaises(ValueError) as cm:
            sf.backend = u'dummy_b'

        self.assertEqual(cm.exception.args, ('backend', 'field is readonly'))
예제 #2
0
    def test_default_impl_readonly(self):
        alsoProvides(self.folder, IStorageEnabled)
        sf = IStorageFactory(self.folder)
        sf.backend = u'dummy_a'
        self.assertEqual(sf.backend, u'dummy_a')

        with self.assertRaises(ValueError) as cm:
            sf.backend = u'dummy_b'

        self.assertEqual(cm.exception.args, ('backend', 'field is readonly'))
예제 #3
0
def install_storage(obj, event):
    """
    The event handler for installing and associating a storage to an
    ``IStorageEnabled`` object.
    """

    factory = IStorageFactory(obj)
    try:
        factory.get_storage_backend()
    except ComponentLookupError as e:
        iface, name = e.args
        logger.warning(
            'Could not find storage backend "%s" while creating a "%s", '
            'skipping backend instantiation.', name, obj.portal_type)
    else:
        # the specific backend instance may do further component lookups
        # and fail, which this doesn't and shouldn't care about.
        factory.install_storage()
예제 #4
0
    def test_storage_lifecycle(self):
        # have to mark the object manually with IStorageEnabled.
        # Normally dexterity behavior will provide this.
        alsoProvides(self.portal, IStorageEnabled)

        installer = getUtility(IStorageInstaller)
        installer(self.portal, 'dummy_backend')

        self.assertEqual(DummyStorageData._data.keys(), ['plone'])

        sf = IStorageFactory(self.portal)
        self.assertEqual(sf.backend, u'dummy_backend')

        storage_backend = getUtility(IStorageBackend, name=u'dummy_backend')
        storage = storage_backend.acquire(self.portal)
        self.assertTrue(isinstance(storage, DummyStorage))

        storage = IStorage(self.portal)
        self.assertTrue(isinstance(storage, DummyStorage))
예제 #5
0
 def test_default_impl_no_backend(self):
     alsoProvides(self.folder, IStorageEnabled)
     sf = IStorageFactory(self.folder)
     with self.assertRaises(ConstraintNotSatisfied):
         sf.backend = u'test'
예제 #6
0
 def test_default_impl_no_backend(self):
     alsoProvides(self.folder, IStorageEnabled)
     sf = IStorageFactory(self.folder)
     with self.assertRaises(ConstraintNotSatisfied):
         sf.backend = u'test'
예제 #7
0
 def test_not_enabled_fail(self):
     with self.assertRaises(TypeError):
         IStorageFactory(self.folder)