def test_form_create(self): # Context and request context = Container(u"container") request = TestRequest() # FTI - returns dummy factory name fti_mock = DexterityFTI(u"testtype") fti_mock.factory = u'testfactory' self.mock_utility(fti_mock, IDexterityFTI, name=u"testtype") # The form we're testing form = DefaultAddForm(context, request) form.portal_type = u"testtype" class ISchema(Interface): foo = schema.TextLine() form.fields = Fields(ISchema) # createObject and applyChanges obj_dummy = Item(id="dummy") alsoProvides(obj_dummy, ISchema) data_dummy = {u"foo": u"bar"} from zope.component import createObject self.patch_global(createObject, return_value=obj_dummy) provideAdapter(AttributeField) self.assertEqual(obj_dummy, form.create(data_dummy)) self.assertEqual("testtype", obj_dummy.portal_type)
def test_form_create(self): # Context and request context = Container(u"container") request = TestRequest() # FTI - returns dummy factory name fti_mock = self.mocker.proxy(DexterityFTI(u"testtype")) self.expect(fti_mock.factory).result(u"testfactory") self.mock_utility(fti_mock, IDexterityFTI, name=u"testtype") # The form we're testing form = DefaultAddForm(context, request) form.portal_type = u"testtype" # createObject and applyChanges obj_dummy = Item(id="dummy") data_dummy = {u"foo": u"bar"} createObject_mock = self.mocker.replace('zope.component.createObject') self.expect(createObject_mock(u"testfactory")).result(obj_dummy) applyChanges_mock = self.mocker.replace('z3c.form.form.applyChanges') self.expect(applyChanges_mock(form, obj_dummy, data_dummy)) self.replay() self.assertEquals(obj_dummy, form.create(data_dummy)) self.assertEquals("testtype", obj_dummy.portal_type)
def test_form_create(self): # Context and request context = Container(u"container") request = TestRequest() # FTI - returns dummy factory name fti_mock = self.mocker.proxy(DexterityFTI(u"testtype")) self.expect(fti_mock.factory).result(u"testfactory") self.mock_utility(fti_mock, IDexterityFTI, name=u"testtype") # The form we're testing form = DefaultAddForm(context, request) form.portal_type = u"testtype" # createObject and applyChanges obj_dummy = Item(id="dummy") data_dummy = {u"foo": u"bar"} createObject_mock = self.mocker.replace('zope.component.createObject') self.expect(createObject_mock(u"testfactory")).result(obj_dummy) applyChanges_mock = self.mocker.replace('z3c.form.form.applyChanges') self.expect(applyChanges_mock(form, obj_dummy, data_dummy)) self.replay() self.assertEqual(obj_dummy, form.create(data_dummy)) self.assertEqual("testtype", obj_dummy.portal_type)
def test_form_create(self): # Context and request context = Container(u"container") request = TestRequest() # FTI - returns dummy factory name fti_mock = DexterityFTI(u"testtype") fti_mock.factory = u'testfactory' self.mock_utility(fti_mock, IDexterityFTI, name=u"testtype") # The form we're testing form = DefaultAddForm(context, request) form.portal_type = u"testtype" # createObject and applyChanges obj_dummy = Item(id="dummy") data_dummy = {u"foo": u"bar"} from zope.component import createObject self.patch_global(createObject, return_value=obj_dummy) from z3c.form.form import applyChanges self.patch_global(applyChanges) self.assertEqual(obj_dummy, form.create(data_dummy)) self.assertEqual("testtype", obj_dummy.portal_type)
def create(self, data): def getAndRemoveKey(data, key, defaultValue): if key in data: value = data[key] del data[key] return value else: return defaultValue self.authors = getAndRemoveKey(data,'IAuthors.authors',[]) or [] self.originalFile = dict(map(lambda key: (key, getAndRemoveKey(data,'IOriginalFile.' + key,None)), IOriginalFile.names())) self.submittedData = data self.submitAgain = self.request.get('REPEAT','N') == 'Y' created = DefaultAddForm.create(self,data) return created