def test_binary_values(self): """ Test for binary value """ setting = InvenTreeSetting.get_setting_object('PART_COMPONENT') self.assertTrue(setting.as_bool()) url = self.get_url(setting.pk) setting.value = True setting.save() # Try posting some invalid values # The value should be "cleaned" and stay the same for value in ['', 'abc', 'cat', 'TRUETRUETRUE']: self.post(url, {'value': value}, valid=True) # Try posting some valid (True) values for value in [True, 'True', '1', 'yes']: self.post(url, {'value': value}, valid=True) self.assertTrue(InvenTreeSetting.get_setting('PART_COMPONENT')) # Try posting some valid (False) values for value in [False, 'False']: self.post(url, {'value': value}, valid=True) self.assertFalse(InvenTreeSetting.get_setting('PART_COMPONENT'))
def setting_object(key, *args, **kwargs): """ Return a setting object speciifed by the given key (Or return None if the setting does not exist) """ setting = InvenTreeSetting.get_setting_object(key) return setting
def setting_object(key, *args, **kwargs): """ Return a setting object speciifed by the given key (Or return None if the setting does not exist) if a user-setting was requested return that """ if 'user' in kwargs: return InvenTreeUserSetting.get_setting_object(key, user=kwargs['user']) return InvenTreeSetting.get_setting_object(key)
def test_choices(self): """ Tests for a setting which has choices """ setting = InvenTreeSetting.get_setting_object( 'PURCHASEORDER_REFERENCE_PREFIX') # Default value! self.assertEqual(setting.value, 'PO') url = self.get_url(setting.pk) # Try posting an invalid currency option data, errors = self.post(url, {'value': 'Purchase Order'}, valid=True)
def test_choices(self): """ Tests for a setting which has choices """ setting = InvenTreeSetting.get_setting_object('INVENTREE_DEFAULT_CURRENCY') # Default value! self.assertEqual(setting.value, 'USD') url = self.get_url(setting.pk) # Try posting an invalid currency option data, errors = self.post(url, {'value': 'XPQaaa'}, valid=False) self.assertIsNotNone(errors.get('value'), None) # Try posting a valid currency option data, errors = self.post(url, {'value': 'AUD'}, valid=True)
def setting_object(key, *args, **kwargs): """ Return a setting object speciifed by the given key (Or return None if the setting does not exist) if a user-setting was requested return that """ if 'plugin' in kwargs: # Note, 'plugin' is an instance of an InvenTreePlugin class plugin = kwargs['plugin'] return PluginSetting.get_setting_object(key, plugin=plugin) if 'method' in kwargs: return NotificationUserSetting.get_setting_object(key, user=kwargs['user'], method=kwargs['method']) if 'user' in kwargs: return InvenTreeUserSetting.get_setting_object(key, user=kwargs['user']) return InvenTreeSetting.get_setting_object(key)
def test_part_name_format(self): """ Try posting some valid and invalid name formats for PART_NAME_FORMAT """ setting = InvenTreeSetting.get_setting_object('PART_NAME_FORMAT') # test default value self.assertEqual( setting.value, "{{ part.IPN if part.IPN }}{{ ' | ' if part.IPN }}{{ part.name }}" "{{ ' | ' if part.revision }}{{ part.revision if part.revision }}") url = self.get_url(setting.pk) # Try posting an invalid part name format invalid_values = [ '{{asset.IPN}}', '{{part}}', '{{"|"}}', '{{part.falcon}}' ] for invalid_value in invalid_values: self.post(url, {'value': invalid_value}, valid=False) # try posting valid value new_format = "{{ part.name if part.name }} {{ ' with revision ' if part.revision }} {{ part.revision }}" self.post(url, {'value': new_format}, valid=True)
def get_setting(self, title): return InvenTreeSetting.get_setting_object(title)