diff --git a/InvenTree/part/templatetags/inventree_extras.py b/InvenTree/part/templatetags/inventree_extras.py index 35d1878081..22cb84da8f 100644 --- a/InvenTree/part/templatetags/inventree_extras.py +++ b/InvenTree/part/templatetags/inventree_extras.py @@ -540,7 +540,7 @@ class I18nStaticNode(StaticNode): custom StaticNode replaces a variable named *lng* in the path with the current language """ - def render(self, context): + def render(self, context): # pragma: no cover self.original = getattr(self, 'original', None) @@ -564,7 +564,7 @@ if settings.DEBUG: """ simple tag to enable {% url %} functionality instead of {% static %} """ return reverse(url_name) -else: +else: # pragma: no cover @register.tag('i18n_static') def do_i18n_static(parser, token): diff --git a/InvenTree/part/test_part.py b/InvenTree/part/test_part.py index 811acebc69..5a5fc6b055 100644 --- a/InvenTree/part/test_part.py +++ b/InvenTree/part/test_part.py @@ -18,17 +18,51 @@ from .templatetags import inventree_extras import part.settings +from InvenTree import version from common.models import InvenTreeSetting, NotificationEntry, NotificationMessage class TemplateTagTest(TestCase): """ Tests for the custom template tag code """ + def setUp(self): + # Create a user for auth + user = get_user_model() + self.user = user.objects.create_user('testuser', 'test@testing.com', 'password') + self.client.login(username='testuser', password='password') + + def test_define(self): + self.assertEqual(int(inventree_extras.define(3)), 3) + + def test_str2bool(self): + self.assertEqual(int(inventree_extras.str2bool('true')), True) + self.assertEqual(int(inventree_extras.str2bool('yes')), True) + self.assertEqual(int(inventree_extras.str2bool('none')), False) + self.assertEqual(int(inventree_extras.str2bool('off')), False) + + def test_inrange(self): + self.assertEqual(inventree_extras.inrange(3), range(3)) + def test_multiply(self): self.assertEqual(int(inventree_extras.multiply(3, 5)), 15) - def test_version(self): - self.assertEqual(type(inventree_extras.inventree_version()), str) + def test_add(self): + self.assertEqual(int(inventree_extras.add(3, 5)), 8) + + def test_plugins_enabled(self): + self.assertEqual(inventree_extras.plugins_enabled(), True) + + def test_inventree_instance_name(self): + self.assertEqual(inventree_extras.inventree_instance_name(), 'InvenTree server') + + def test_inventree_base_url(self): + self.assertEqual(inventree_extras.inventree_base_url(), '') + + def test_inventree_is_release(self): + self.assertEqual(inventree_extras.inventree_is_release(), not version.isInvenTreeDevelopmentVersion()) + + def test_inventree_docs_version(self): + self.assertEqual(inventree_extras.inventree_docs_version(), version.inventreeDocsVersion()) def test_hash(self): result_hash = inventree_extras.inventree_commit_hash() @@ -44,6 +78,24 @@ class TemplateTagTest(TestCase): def test_docs(self): self.assertIn('inventree.readthedocs.io', inventree_extras.inventree_docs_url()) + def test_keyvalue(self): + self.assertEqual(inventree_extras.keyvalue({'a': 'a'}, 'a'), 'a') + + def test_mail_configured(self): + self.assertEqual(inventree_extras.mail_configured(), False) + + def test_user_settings(self): + result = inventree_extras.user_settings(self.user) + self.assertEqual(len(result), 36) + + def test_global_settings(self): + result = inventree_extras.global_settings() + self.assertEqual(len(result), 61) + + def test_visible_global_settings(self): + result = inventree_extras.visible_global_settings() + self.assertEqual(len(result), 60) + class PartTest(TestCase): """ Tests for the Part model """ diff --git a/InvenTree/plugin/loader.py b/InvenTree/plugin/loader.py index aaba9fe060..538bd2358b 100644 --- a/InvenTree/plugin/loader.py +++ b/InvenTree/plugin/loader.py @@ -15,5 +15,5 @@ class PluginTemplateLoader(FilesystemLoader): for plugin in registry.plugins.values(): new_path = Path(plugin.path) / dirname if Path(new_path).is_dir(): - template_dirs.append(new_path) + template_dirs.append(new_path) # pragma: no cover return tuple(template_dirs) diff --git a/InvenTree/plugin/plugin.py b/InvenTree/plugin/plugin.py index b83297dcfd..c6af7f20d8 100644 --- a/InvenTree/plugin/plugin.py +++ b/InvenTree/plugin/plugin.py @@ -80,7 +80,7 @@ class InvenTreePluginBase(): if cfg: return cfg.active else: - return False + return False # pragma: no cover # TODO @matmair remove after InvenTree 0.7.0 release diff --git a/InvenTree/plugin/registry.py b/InvenTree/plugin/registry.py index 240bd3446b..9462b780cb 100644 --- a/InvenTree/plugin/registry.py +++ b/InvenTree/plugin/registry.py @@ -503,7 +503,7 @@ class PluginsRegistry: try: # for local path plugins plugin_path = '.'.join(pathlib.Path(plugin.path).relative_to(settings.BASE_DIR).parts) - except ValueError: + except ValueError: # pragma: no cover # plugin is shipped as package plugin_path = plugin.PLUGIN_NAME return plugin_path