def updateScript(self, body): # Regenerate Python script object # Sync set of script source code and # creation of Python Script object. bodyField = self.schema["mipago_payment_amountOverride"] script = PythonScript(self.title_or_id()) script = script.__of__(self) script.ZPythonScript_edit("fields, ploneformgen, request", body) PythonField.set(bodyField, self, script)
class PythonFieldTest(PloneTestCase.PloneTestCase): def afterSetUp(self): from Products.PythonField import PythonField self.field = PythonField('python') self.folder.validate_field = lambda *args, **kw: None 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), None) def test_getRaw(self): raw = self.field.getRaw(self.folder) self.assertEquals(raw, 'pass\n') def test_set(self): self.assertEquals(self.field.get(self.folder), None) self.folder.setTitle('bar') self.field.set(self.folder, "return context.Title() == 'foo'") self.assertEquals(self.field.get(self.folder), False) self.field.set(self.folder, "return context.Title() == 'bar'") self.assertEquals(self.field.get(self.folder), True) def test_set_pythonscript(self): # Just make sure setting PythonScript works too. default_script = self.field.getDefault(self.folder) self.field.set(self.folder, default_script) self.assertEquals( self.field.getRaw(self.folder), default_script.body()) def test_validate(self): self.assertEquals(self.validate('True'), (None, {})) self.assertEquals( self.validate('1 + (2 * 3'), ('unexpected EOF while parsing (Script (Python), line 1)', {})) def test_header_footer(self): self.field.header = "foo = 'bar'" self.field.footer = "return foo" self.field.set(self.folder, "pass") self.assertEquals(self.field.get(self.folder), 'bar') self.field.set(self.folder, "foo = 'baz'") self.assertEquals(self.field.get(self.folder), 'baz') self.assertEquals(self.field.getRaw(self.folder), "foo = 'baz'\n")
def updateScript(self, body, role): # Regenerate Python script object # Sync set of script source code, proxy role and # creation of Python Script object. bodyField = self.schema["ScriptBody"] proxyField = self.schema["ProxyRole"] script = PythonScript(self.title_or_id()) script = script.__of__(self) # Force proxy role if role != "none": script.manage_proxy((role,)) script.ZPythonScript_edit("fields, ploneformgen, request", body) PythonField.set(bodyField, self, script) StringField.set(proxyField, self, role)
def updateScript(self, body, role): # Regenerate Python script object # Sync set of script source code, proxy role and # creation of Python Script object. bodyField = self.schema["ScriptBody"] proxyField = self.schema["ProxyRole"] script = PythonScript(self.title_or_id()) script = script.__of__(self) # Force proxy role if role != "none": script.manage_proxy((role, )) script.ZPythonScript_edit("fields, ploneformgen, request", body) PythonField.set(bodyField, self, script) StringField.set(proxyField, self, role)