diff --git a/InvenTree/common/test_views.py b/InvenTree/common/test_views.py index 56a244ba0c..c711742272 100644 --- a/InvenTree/common/test_views.py +++ b/InvenTree/common/test_views.py @@ -136,3 +136,25 @@ class SettingsViewTest(TestCase): for value in [False, 'False']: self.post(url, {'value': value}, valid=True) self.assertFalse(InvenTreeSetting.get_setting('PART_COMPONENT')) + + 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 }}") + + url = self.get_url(setting.pk) + + # Try posting an invalid part name format + invalid_values = ['{{asset.IPN}}', '{{part}}', '{{"|"}}'] + 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) + diff --git a/InvenTree/part/models.py b/InvenTree/part/models.py index 7a4834cd7a..d5563382eb 100644 --- a/InvenTree/part/models.py +++ b/InvenTree/part/models.py @@ -8,7 +8,6 @@ import decimal import os import logging -import re from django.utils.translation import gettext_lazy as _ from django.core.exceptions import ValidationError