Example #1
0
 def test_find_item_by_name(self):
     choice = get_choice_by_name(SampleChoices, "simple")
     self.assertEqual(choice.id, 1)
     self.assertEqual(choice.name, "simple")
     self.assertEqual(choice.raw, "simple")
     choice = get_choice_by_name(SampleChoices, "not_simple")
     self.assertEqual(choice.id, 2)
     self.assertEqual(choice.name, "not_simple")
     self.assertEqual(choice.raw, "not simple")
Example #2
0
 def test_find_item_by_name(self):
     choice = get_choice_by_name(SampleChoices, 'simple')
     self.assertEqual(choice.id, 1)
     self.assertEqual(choice.name, 'simple')
     self.assertEqual(choice.raw, 'simple')
     choice = get_choice_by_name(SampleChoices, 'not_simple')
     self.assertEqual(choice.id, 2)
     self.assertEqual(choice.name, 'not_simple')
     self.assertEqual(choice.raw, 'not simple')
Example #3
0
 def clean(self):
     for name, value in self.cleaned_data.iteritems():
         if name.endswith('-custom'):
             continue
         if value == 'custom':
             info = self.field_info.get(name, DefaultInfo())
             try:
                 value = info.clean(self.cleaned_data[name + '-custom'])
             except (TypeError, ValueError, forms.ValidationError) as e:
                 self._errors[name + '-custom'] = self.error_class([e])
         else:
             if (name == 'type' and
                     self.result['type'].get((value,)) == 'unknown'):
                 msg = "Please specify custom value for this component."
                 self._errors[name] = self.error_class([msg])
     if 'ralph_assets' in settings.INSTALLED_APPS:
         from ralph_assets.api_ralph import is_asset_assigned
         from ralph_assets.models import Asset
         try:
             asset = self.get_value('asset')
         except (KeyError, ValueError):
             asset = None
         else:
             if asset == 'None':
                 asset = None
         if asset:
             _, asset_sn, asset_barcode = asset.split(' - ')
             try:
                 if asset_sn == '':
                     asset_sn = None
                 if asset_barcode == '':
                     asset_barcode = None
                 asset_obj = Asset.objects.get(sn=asset_sn,
                                               barcode=asset_barcode)
             except Asset.DoesNotExist:
                 pass
             else:
                 if (self.data['asset'] != 'database' and
                         is_asset_assigned(asset_id=asset_obj.id)):
                     msg = ("This asset is already linked to some other "
                            "device. To resolve this conflict, please "
                            "click the link above.")
                     self._errors['asset'] = self.error_class([msg])
         try:
             selected_type = self.get_value('type')
         except (KeyError, ValueError):
             if not asset:
                 msg = "Can't save this device without specifying an asset."
                 self._errors['asset'] = self.error_class([msg])
         else:
             selected_type = get_choice_by_name(DeviceType, selected_type)
             if selected_type not in ASSET_NOT_REQUIRED and not asset:
                 msg = "Asset is required for this kind of device."
                 self._errors['asset'] = self.error_class([msg])
     return self.cleaned_data
Example #4
0
 def clean(self):
     for name, value in self.cleaned_data.iteritems():
         if name.endswith('-custom'):
             continue
         if value == 'custom':
             info = self.field_info.get(name, DefaultInfo())
             try:
                 value = info.clean(self.cleaned_data[name + '-custom'])
             except (TypeError, ValueError, forms.ValidationError) as e:
                 self._errors[name + '-custom'] = self.error_class([e])
         else:
             if (name == 'type' and self.result['type'].get(
                 (value, )) == 'unknown'):
                 msg = "Please specify custom value for this component."
                 self._errors[name] = self.error_class([msg])
     if 'ralph_assets' in settings.INSTALLED_APPS:
         from ralph_assets.api_ralph import is_asset_assigned
         from ralph_assets.models import Asset
         try:
             asset = self.get_value('asset')
         except (KeyError, ValueError):
             asset = None
         else:
             if asset == 'None':
                 asset = None
         if asset:
             _, asset_sn, asset_barcode = asset.split(' - ')
             try:
                 if asset_sn == '':
                     asset_sn = None
                 if asset_barcode == '':
                     asset_barcode = None
                 asset_obj = Asset.objects.get(sn=asset_sn,
                                               barcode=asset_barcode)
             except Asset.DoesNotExist:
                 pass
             else:
                 if (self.data['asset'] != 'database'
                         and is_asset_assigned(asset_id=asset_obj.id)):
                     msg = ("This asset is already linked to some other "
                            "device. To resolve this conflict, please "
                            "click the link above.")
                     self._errors['asset'] = self.error_class([msg])
         try:
             selected_type = self.get_value('type')
         except (KeyError, ValueError):
             if not asset:
                 msg = "Can't save this device without specifying an asset."
                 self._errors['asset'] = self.error_class([msg])
         else:
             selected_type = get_choice_by_name(DeviceType, selected_type)
             if selected_type not in ASSET_NOT_REQUIRED and not asset:
                 msg = "Asset is required for this kind of device."
                 self._errors['asset'] = self.error_class([msg])
     return self.cleaned_data
Example #5
0
 def test_find_item_by_raw_name(self):
     choice = get_choice_by_name(SampleChoices, "some difficult case")
     self.assertEqual(choice.id, 3)
     self.assertEqual(choice.name, "difficult")
     self.assertEqual(choice.raw, "some difficult case")
Example #6
0
 def test_find_item_by_name_with_spaces(self):
     choice = get_choice_by_name(SampleChoices, "Not Simple")
     self.assertEqual(choice.id, 2)
     self.assertEqual(choice.name, "not_simple")
     self.assertEqual(choice.raw, "not simple")
Example #7
0
 def test_find_item_by_raw_name(self):
     choice = get_choice_by_name(SampleChoices, 'some difficult case')
     self.assertEqual(choice.id, 3)
     self.assertEqual(choice.name, 'difficult')
     self.assertEqual(choice.raw, 'some difficult case')
Example #8
0
 def test_find_item_by_name_with_spaces(self):
     choice = get_choice_by_name(SampleChoices, 'Not Simple')
     self.assertEqual(choice.id, 2)
     self.assertEqual(choice.name, 'not_simple')
     self.assertEqual(choice.raw, 'not simple')