Пример #1
0
    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'))
Пример #2
0
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
Пример #3
0
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)
Пример #4
0
    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)
Пример #5
0
    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)
Пример #6
0
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)
Пример #7
0
    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)
Пример #8
0
    def get_setting(self, title):

        return InvenTreeSetting.get_setting_object(title)