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'))
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))
def test_default_impl_no_backend(self): alsoProvides(self.folder, IStorageEnabled) sf = IStorageFactory(self.folder) with self.assertRaises(ConstraintNotSatisfied): sf.backend = u'test'
def test_not_enabled_fail(self): with self.assertRaises(TypeError): IStorageFactory(self.folder)