From 6778c2c23b6c6c26bf4100615159736ac84f4b87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Fri, 14 Dec 2012 15:05:37 +0100 Subject: [PATCH] Add tests for the schema_policy attribute --- plone/dexterity/tests/test_fti.py | 35 +++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/plone/dexterity/tests/test_fti.py b/plone/dexterity/tests/test_fti.py index 615c5ed..556abb2 100644 --- a/plone/dexterity/tests/test_fti.py +++ b/plone/dexterity/tests/test_fti.py @@ -31,6 +31,8 @@ from plone.dexterity.fti import ftiAdded, ftiRemoved, ftiRenamed, ftiModified from plone.dexterity.factory import DexterityFactory +from plone.dexterity.schema import DexteritySchemaPolicy + from plone.dexterity import utils from plone.dexterity.tests.schemata import ITestSchema @@ -46,6 +48,9 @@ class TestClass(object): class TestClass2(object): meta_type = "Test Class 2" +class ITestInterface(Interface): + pass + class TestFTI(MockTestCase): @@ -336,6 +341,36 @@ class TestFTI(MockTestCase): self.assertEquals(u't\xe9st', msgid) self.assertEquals('test', msgid.domain) + def test_lookupModel_without_schema_policy(self): + gsm = getGlobalSiteManager() + gsm.registerUtility(DexteritySchemaPolicy(), plone.supermodel.interfaces.ISchemaPolicy, name=u"dexterity") + + fti = DexterityFTI(u"testtype") + fti.schema = None + fti.model_source = '' + fti.model_file = None + + model = fti.lookupModel() + self.assertEquals(False, ITestInterface in model.schemata[''].__bases__) + + def test_lookupModel_with_schema_policy(self): + class TestSchemaPolicy(DexteritySchemaPolicy): + def bases(self, schemaName, tree): + return (ITestInterface,) + + gsm = getGlobalSiteManager() + policy = TestSchemaPolicy() + gsm.registerUtility(policy, plone.supermodel.interfaces.ISchemaPolicy, name=u"test") + + fti = DexterityFTI(u"testtype") + fti.schema = None + fti.model_source = '' + fti.model_file = None + fti.schema_policy = u"test" + + model = fti.lookupModel() + self.assertEquals(True, ITestInterface in model.schemata[''].__bases__) + class TestFTIEvents(MockTestCase):