class DTMLFieldTest(PloneTestCase.PloneTestCase): def afterSetUp(self): from Products.TemplateFields import DTMLField self.field = DTMLField('aField') self.folder.validate_field = lambda *args, **kw: None self.folder.setTitle("My Folder") def validate(self, value): errors = {} res = self.field.validate(value, self.folder, errors) return res, errors def test_defaults(self): self.assertEquals(self.field.get(self.folder), "My Folder") def test_getRaw(self): raw = self.field.getRaw(self.folder) self.assertEquals(raw, '<dtml-var title_or_id>') def test_set(self): self.assertEquals(self.field.get(self.folder), "My Folder") self.field.set(self.folder, """<dtml-if expr="1 + 1 == 2"> True <dtml-else> False </dtml-if> """) self.assertEquals(self.field.get(self.folder).strip(), "True") def test_set_dtmlmethod(self): # Just make sure setting DTMLMethod works too. default_dtml = self.field.getDefault(self.folder) self.field.set(self.folder, default_dtml) self.assertEquals( self.field.getRaw(self.folder), default_dtml.read())