Changeset 851 in main


Ignore:
Timestamp:
03/07/12 12:56:34 (10 years ago)
Author:
pcosquer
Message:

fix modifychildform.clean

Location:
trunk/openPLM/plmapp
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/openPLM/plmapp/forms.py

    r820 r851  
    368368            for field in fields: 
    369369                field_name = "%s_%s" % (PCLE._meta.module_name, field) 
    370                 data[field] = self.cleaned_data[field_name] 
     370                try: 
     371                    data[field] = self.cleaned_data[field_name] 
     372                except KeyError: 
     373                    # the form is invalid 
     374                    pass 
    371375            self.extensions[PCLE._meta.module_name] = data 
    372376        return self.cleaned_data 
     
    400404            for field in fields: 
    401405                field_name = "%s_%s" % (PCLE._meta.module_name, field) 
    402                 data[field] = self.cleaned_data[field_name] 
     406                try: 
     407                    data[field] = self.cleaned_data[field_name] 
     408                except KeyError: 
     409                    # the form is invalid 
     410                    pass 
    403411            self.extensions[PCLE._meta.module_name] = data 
    404412        return self.cleaned_data 
  • trunk/openPLM/plmapp/tests/pcle.py

    r849 r851  
    345345        Tests the bom view with a custom attribute. 
    346346        """ 
    347         fname = mockext + "_custom_attribute" 
    348347        self.controller.add_child(self.controller2, 10, 15, "-", 
    349348                **{mockext:{"custom_attribute":"val1"}}) 
     
    358357        self.assertEqual({link : {u"custom_attribute" : "val1"}}, extension_data) 
    359358         
    360  
     359    def test_bom_edit_post(self): 
     360        fname = mockext + "_custom_attribute" 
     361        self.controller.add_child(self.controller2, 10, 15, "-", 
     362                **{mockext:{"custom_attribute":"val1"}}) 
     363        self.client.login(username=self.user.username, password="password") 
     364        data = { 
     365            'form-TOTAL_FORMS': u'1', 
     366            'form-INITIAL_FORMS': u'1', 
     367            'form-MAX_NUM_FORMS': u'', 
     368            'form-0-child' : self.controller2.id, 
     369            'form-0-id' : self.controller.get_children()[0].link.id, 
     370            'form-0-order' : 45, 
     371            'form-0-parent': self.controller.id, 
     372            'form-0-quantity' : '45.0', 
     373            'form-0-unit' : 'cm', 
     374            'form-0-%s' % fname : 'new_value', 
     375        } 
     376        response = self.client.post(self.controller.plmobject_url + "BOM-child/edit/", 
     377                data, follow=True) 
     378        self.assertEqual(response.status_code, 200) 
     379        link = self.controller.get_children()[0].link 
     380        self.assertEqual(45.0, link.quantity) 
     381        self.assertEqual(45, link.order) 
     382        self.assertEqual('cm', link.unit) 
     383        self.assertEqual("new_value", link.extensions[0].custom_attribute) 
     384 
     385    def test_bom_edit_post_error_invalid_value(self): 
     386        fname = mockext + "_custom_attribute" 
     387        self.controller.add_child(self.controller2, 10, 15, "-", 
     388                **{mockext:{"custom_attribute":"val1"}}) 
     389        self.client.login(username=self.user.username, password="password") 
     390        data = { 
     391            'form-TOTAL_FORMS': u'1', 
     392            'form-INITIAL_FORMS': u'1', 
     393            'form-MAX_NUM_FORMS': u'', 
     394            'form-0-child' :   self.controller2.id, 
     395            'form-0-id'  : self.controller.get_children()[0].link.id, 
     396            'form-0-order'  :  45, 
     397            'form-0-parent' :  self.controller.id, 
     398            'form-0-quantity' :  '45.0', 
     399            'form-0-unit' :  'cm', 
     400            'form-0-%s' % fname : 'new_value' * 10, # too long value 
     401        } 
     402        formset = forms.get_children_formset(self.controller, data) 
     403        response = self.client.post(self.controller.plmobject_url + "BOM-child/edit/", 
     404                data, follow=True) 
     405        link = self.controller.get_children()[0].link 
     406        self.assertEqual(10, link.quantity) 
     407        self.assertEqual(15, link.order) 
     408        self.assertEqual('-', link.unit) 
     409        self.assertEqual("val1", link.extensions[0].custom_attribute) 
     410        self.assertFalse(response.context["children_formset"].is_valid()) 
     411 
Note: See TracChangeset for help on using the changeset viewer.