From 0d5dea3e6d123e52bce3249e239a44716fbb53df Mon Sep 17 00:00:00 2001 From: Matthias Mair Date: Fri, 20 May 2022 12:12:32 +0200 Subject: [PATCH] refactor test setup --- InvenTree/InvenTree/api_tester.py | 25 ++++---- InvenTree/InvenTree/ci_render_js.py | 21 ++----- InvenTree/InvenTree/helpers.py | 6 ++ InvenTree/InvenTree/test_api.py | 36 +---------- InvenTree/InvenTree/test_middleware.py | 16 +---- InvenTree/InvenTree/test_views.py | 17 +----- InvenTree/InvenTree/tests.py | 20 +----- InvenTree/build/test_api.py | 27 ++------ InvenTree/build/tests.py | 61 +++++-------------- InvenTree/common/tests.py | 15 +---- InvenTree/company/test_views.py | 37 ++--------- InvenTree/part/test_bom_export.py | 34 ++--------- InvenTree/part/test_part.py | 48 +++------------ InvenTree/part/test_views.py | 29 +-------- .../plugin/base/integration/test_mixins.py | 27 +------- InvenTree/stock/test_views.py | 38 ++---------- InvenTree/stock/tests.py | 15 ++--- InvenTree/users/tests.py | 13 +--- 18 files changed, 90 insertions(+), 395 deletions(-) diff --git a/InvenTree/InvenTree/api_tester.py b/InvenTree/InvenTree/api_tester.py index 34976ffbfe..992ecead21 100644 --- a/InvenTree/InvenTree/api_tester.py +++ b/InvenTree/InvenTree/api_tester.py @@ -12,10 +12,7 @@ from django.contrib.auth.models import Group from rest_framework.test import APITestCase -class InvenTreeAPITestCase(APITestCase): - """ - Base class for running InvenTree API tests - """ +class UserMixin: # User information username = 'testuser' @@ -53,12 +50,12 @@ class InvenTreeAPITestCase(APITestCase): self.user.save() for role in self.roles: - self.assignRole(role) + self.assignRole(role, self.roles == ['all']) if self.auto_login: self.client.login(username=self.username, password=self.password) - def assignRole(self, role): + def assignRole(self, role, assign_all: bool = False): """ Set the user roles for the registered user """ @@ -69,20 +66,26 @@ class InvenTreeAPITestCase(APITestCase): for ruleset in self.group.rule_sets.all(): - if ruleset.name == rule: + if ruleset.name == rule or assign_all: - if perm == 'view': + if perm == 'view' or assign_all: ruleset.can_view = True - elif perm == 'change': + elif perm == 'change' or assign_all: ruleset.can_change = True - elif perm == 'delete': + elif perm == 'delete' or assign_all: ruleset.can_delete = True - elif perm == 'add': + elif perm == 'add' or assign_all: ruleset.can_add = True ruleset.save() break + +class InvenTreeAPITestCase(UserMixin, APITestCase): + """ + Base class for running InvenTree API tests + """ + def getActions(self, url): """ Return a dict of the 'actions' available at a given endpoint. diff --git a/InvenTree/InvenTree/ci_render_js.py b/InvenTree/InvenTree/ci_render_js.py index 94530db096..272272b9ae 100644 --- a/InvenTree/InvenTree/ci_render_js.py +++ b/InvenTree/InvenTree/ci_render_js.py @@ -3,14 +3,13 @@ Pull rendered copies of the templated only used for testing the js files! - This file is omited from coverage """ -from django.test import TestCase # pragma: no cover -from django.contrib.auth import get_user_model # pragma: no cover - import os # pragma: no cover -import pathlib # pragma: no cover +import pathlib + +from InvenTree.InvenTree.helpers import InvenTreeTestCate # pragma: no cover -class RenderJavascriptFiles(TestCase): # pragma: no cover +class RenderJavascriptFiles(InvenTreeTestCate): # pragma: no cover """ A unit test to "render" javascript files. @@ -18,18 +17,6 @@ class RenderJavascriptFiles(TestCase): # pragma: no cover we need the fully-rendered files for linting and static tests. """ - def setUp(self): - - user = get_user_model() - - self.user = user.objects.create_user( - username='testuser', - password='testpassword', - email='user@gmail.com', - ) - - self.client.login(username='testuser', password='testpassword') - def download_file(self, filename, prefix): url = os.path.join(prefix, filename) diff --git a/InvenTree/InvenTree/helpers.py b/InvenTree/InvenTree/helpers.py index 9e6e24acb8..009c6b1b51 100644 --- a/InvenTree/InvenTree/helpers.py +++ b/InvenTree/InvenTree/helpers.py @@ -14,8 +14,10 @@ from wsgiref.util import FileWrapper from django.http import StreamingHttpResponse from django.core.exceptions import ValidationError, FieldError from django.utils.translation import gettext_lazy as _ +from django.test import TestCase from django.contrib.auth.models import Permission +from InvenTree.InvenTree.api_tester import UserMixin import InvenTree.version @@ -781,3 +783,7 @@ def inheritors(cls): subcls.add(child) work.append(child) return subcls + + +class InvenTreeTestCate(UserMixin, TestCase): + pass diff --git a/InvenTree/InvenTree/test_api.py b/InvenTree/InvenTree/test_api.py index f55dfbcda2..105f32b489 100644 --- a/InvenTree/InvenTree/test_api.py +++ b/InvenTree/InvenTree/test_api.py @@ -2,12 +2,8 @@ from rest_framework import status -from django.test import TestCase - -from django.contrib.auth import get_user_model -from django.contrib.auth.models import Group - from django.urls import reverse +from InvenTree.InvenTree.helpers import InvenTreeTestCate from InvenTree.api_tester import InvenTreeAPITestCase @@ -16,7 +12,7 @@ from users.models import RuleSet from base64 import b64encode -class HTMLAPITests(TestCase): +class HTMLAPITests(InvenTreeTestCate): """ Test that we can access the REST API endpoints via the HTML interface. @@ -24,33 +20,7 @@ class HTMLAPITests(TestCase): which raised an AssertionError when using the HTML API interface, while the regular JSON interface continued to work as expected. """ - - def setUp(self): - super().setUp() - - # Create a user - user = get_user_model() - - self.user = user.objects.create_user( - username='username', - email='user@email.com', - password='password' - ) - - # Put the user into a group with the correct permissions - group = Group.objects.create(name='mygroup') - self.user.groups.add(group) - - # Give the group *all* the permissions! - for rule in group.rule_sets.all(): - rule.can_view = True - rule.can_change = True - rule.can_add = True - rule.can_delete = True - - rule.save() - - self.client.login(username='username', password='password') + roles = ['all'] def test_part_api(self): url = reverse('api-part-list') diff --git a/InvenTree/InvenTree/test_middleware.py b/InvenTree/InvenTree/test_middleware.py index bced2eb079..8aecdbd750 100644 --- a/InvenTree/InvenTree/test_middleware.py +++ b/InvenTree/InvenTree/test_middleware.py @@ -1,12 +1,11 @@ """Tests for middleware functions""" -from django.test import TestCase - -from django.contrib.auth import get_user_model from django.urls import reverse +from InvenTree.InvenTree.helpers import InvenTreeTestCate -class MiddlewareTests(TestCase): + +class MiddlewareTests(InvenTreeTestCate): """Test for middleware functions""" def check_path(self, url, code=200, **kwargs): @@ -14,15 +13,6 @@ class MiddlewareTests(TestCase): self.assertEqual(response.status_code, code) return response - def setUp(self): - super().setUp() - - # Create a user - user = get_user_model() - - self.user = user.objects.create_user(username='username', email='user@email.com', password='password') - self.client.login(username='username', password='password') - def test_AuthRequiredMiddleware(self): """Test the auth middleware""" diff --git a/InvenTree/InvenTree/test_views.py b/InvenTree/InvenTree/test_views.py index 0a145ec508..0498b82965 100644 --- a/InvenTree/InvenTree/test_views.py +++ b/InvenTree/InvenTree/test_views.py @@ -5,28 +5,17 @@ Unit tests for the main web views import re import os -from django.test import TestCase from django.urls import reverse -from django.contrib.auth import get_user_model + +from InvenTree.InvenTree.helpers import InvenTreeTestCate -class ViewTests(TestCase): +class ViewTests(InvenTreeTestCate): """ Tests for various top-level views """ username = 'test_user' password = 'test_pass' - def setUp(self): - - # Create a user - self.user = get_user_model().objects.create_user(self.username, 'user@email.com', self.password) - self.user.set_password(self.password) - self.user.save() - - result = self.client.login(username=self.username, password=self.password) - - self.assertEqual(result, True) - def test_api_doc(self): """ Test that the api-doc view works """ diff --git a/InvenTree/InvenTree/tests.py b/InvenTree/InvenTree/tests.py index 26b50a0eca..9df10d8d63 100644 --- a/InvenTree/InvenTree/tests.py +++ b/InvenTree/InvenTree/tests.py @@ -7,7 +7,6 @@ from unittest import mock from django.test import TestCase, override_settings import django.core.exceptions as django_exceptions from django.core.exceptions import ValidationError -from django.contrib.auth import get_user_model from django.conf import settings from djmoney.money import Money @@ -457,18 +456,12 @@ class TestStatus(TestCase): self.assertEqual(ready.isImportingData(), False) -class TestSettings(TestCase): +class TestSettings(helpers.InvenTreeTestCate): """ Unit tests for settings """ - def setUp(self) -> None: - self.user_mdl = get_user_model() - - # Create a user for auth - user = get_user_model() - self.user = user.objects.create_superuser('testuser1', 'test1@testing.com', 'password1') - self.client.login(username='testuser1', password='password1') + superuser = True def in_env_context(self, envs={}): """Patch the env to include the given dict""" @@ -574,18 +567,11 @@ class TestSettings(TestCase): self.assertEqual(config.get_setting(TEST_ENV_NAME, None), '321') -class TestInstanceName(TestCase): +class TestInstanceName(helpers.InvenTreeTestCate): """ Unit tests for instance name """ - def setUp(self): - # Create a user for auth - user = get_user_model() - self.user = user.objects.create_superuser('testuser', 'test@testing.com', 'password') - - self.client.login(username='testuser', password='password') - def test_instance_name(self): # default setting diff --git a/InvenTree/build/test_api.py b/InvenTree/build/test_api.py index 4ba54e9c73..a736b01cad 100644 --- a/InvenTree/build/test_api.py +++ b/InvenTree/build/test_api.py @@ -2,9 +2,6 @@ from datetime import datetime, timedelta from django.urls import reverse -from django.contrib.auth import get_user_model -from django.contrib.auth.models import Group - from rest_framework.test import APITestCase from rest_framework import status @@ -30,25 +27,11 @@ class TestBuildAPI(APITestCase): 'build', ] - def setUp(self): - # Create a user for auth - user = get_user_model() - self.user = user.objects.create_user('testuser', 'test@testing.com', 'password') - - g = Group.objects.create(name='builders') - self.user.groups.add(g) - - for rule in g.rule_sets.all(): - if rule.name == 'build': - rule.can_change = True - rule.can_add = True - rule.can_delete = True - - rule.save() - - g.save() - - self.client.login(username='testuser', password='password') + roles = [ + 'build.change', + 'build.add', + 'build.delete', + ] def test_get_build_list(self): """ diff --git a/InvenTree/build/tests.py b/InvenTree/build/tests.py index d3c0c41112..d49f9eafe8 100644 --- a/InvenTree/build/tests.py +++ b/InvenTree/build/tests.py @@ -1,18 +1,16 @@ -from django.test import TestCase from django.urls import reverse -from django.contrib.auth import get_user_model -from django.contrib.auth.models import Group - from datetime import datetime, timedelta +from InvenTree.InvenTree.helpers import InvenTreeTestCate + from .models import Build from stock.models import StockItem from InvenTree.status_codes import BuildStatus -class BuildTestSimple(TestCase): +class BuildTestSimple(InvenTreeTestCate): fixtures = [ 'category', @@ -21,27 +19,11 @@ class BuildTestSimple(TestCase): 'build', ] - def setUp(self): - # Create a user for auth - user = get_user_model() - user.objects.create_user('testuser', 'test@testing.com', 'password') - - self.user = user.objects.get(username='testuser') - - g = Group.objects.create(name='builders') - self.user.groups.add(g) - - for rule in g.rule_sets.all(): - if rule.name == 'build': - rule.can_change = True - rule.can_add = True - rule.can_delete = True - - rule.save() - - g.save() - - self.client.login(username='testuser', password='password') + rules = [ + 'build.change', + 'build.add', + 'build.delete', + ] def test_build_objects(self): # Ensure the Build objects were correctly created @@ -106,7 +88,7 @@ class BuildTestSimple(TestCase): self.assertEqual(build.status, BuildStatus.CANCELLED) -class TestBuildViews(TestCase): +class TestBuildViews(InvenTreeTestCate): """ Tests for Build app views """ fixtures = [ @@ -116,28 +98,15 @@ class TestBuildViews(TestCase): 'build', ] + rules = [ + 'build.change', + 'build.add', + 'build.delete', + ] + def setUp(self): super().setUp() - # Create a user - user = get_user_model() - self.user = user.objects.create_user('username', 'user@email.com', 'password') - - g = Group.objects.create(name='builders') - self.user.groups.add(g) - - for rule in g.rule_sets.all(): - if rule.name == 'build': - rule.can_change = True - rule.can_add = True - rule.can_delete = True - - rule.save() - - g.save() - - self.client.login(username='username', password='password') - # Create a build output for build # 1 self.build = Build.objects.get(pk=1) diff --git a/InvenTree/common/tests.py b/InvenTree/common/tests.py index 7f6f6dbe40..c74436988a 100644 --- a/InvenTree/common/tests.py +++ b/InvenTree/common/tests.py @@ -4,11 +4,10 @@ import json from datetime import timedelta from django.test import TestCase, Client -from django.contrib.auth import get_user_model from django.urls import reverse from InvenTree.api_tester import InvenTreeAPITestCase -from InvenTree.helpers import str2bool +from InvenTree.helpers import InvenTreeTestCate, str2bool from plugin.models import NotificationUserSetting, PluginConfig from plugin import registry @@ -18,7 +17,7 @@ from .api import WebhookView CONTENT_TYPE_JSON = 'application/json' -class SettingsTest(TestCase): +class SettingsTest(InvenTreeTestCate): """ Tests for the 'settings' model """ @@ -27,16 +26,6 @@ class SettingsTest(TestCase): 'settings', ] - def setUp(self): - - user = get_user_model() - - self.user = user.objects.create_user('username', 'user@email.com', 'password') - self.user.is_staff = True - self.user.save() - - self.client.login(username='username', password='password') - def test_settings_objects(self): # There should be two settings objects in the database diff --git a/InvenTree/company/test_views.py b/InvenTree/company/test_views.py index 29900236bf..036bf76916 100644 --- a/InvenTree/company/test_views.py +++ b/InvenTree/company/test_views.py @@ -1,12 +1,11 @@ """ Unit tests for Company views (see views.py) """ -from django.test import TestCase from django.urls import reverse -from django.contrib.auth import get_user_model -from django.contrib.auth.models import Group + +from InvenTree.InvenTree.helpers import InvenTreeTestCate -class CompanyViewTestBase(TestCase): +class CompanyViewTestBase(InvenTreeTestCate): fixtures = [ 'category', @@ -17,33 +16,9 @@ class CompanyViewTestBase(TestCase): 'supplier_part', ] - def setUp(self): - super().setUp() - - # Create a user - user = get_user_model() - - self.user = user.objects.create_user( - username='username', - email='user@email.com', - password='password' - ) - - # Put the user into a group with the correct permissions - group = Group.objects.create(name='mygroup') - self.user.groups.add(group) - - # Give the group *all* the permissions! - for rule in group.rule_sets.all(): - rule.can_view = True - rule.can_change = True - rule.can_add = True - rule.can_delete = True - - rule.save() - - self.client.login(username='username', password='password') - + rules = [ + 'all', + ] class CompanyViewTest(CompanyViewTestBase): """ diff --git a/InvenTree/part/test_bom_export.py b/InvenTree/part/test_bom_export.py index 4ae0b88269..1f50c2d990 100644 --- a/InvenTree/part/test_bom_export.py +++ b/InvenTree/part/test_bom_export.py @@ -4,14 +4,12 @@ Unit testing for BOM export functionality import csv -from django.test import TestCase - from django.urls import reverse -from django.contrib.auth import get_user_model -from django.contrib.auth.models import Group + +from InvenTree.InvenTree.helpers import InvenTreeTestCate -class BomExportTest(TestCase): +class BomExportTest(InvenTreeTestCate): fixtures = [ 'category', @@ -20,33 +18,11 @@ class BomExportTest(TestCase): 'bom', ] + roles = ['all'] + def setUp(self): super().setUp() - # Create a user - user = get_user_model() - - self.user = user.objects.create_user( - username='username', - email='user@email.com', - password='password' - ) - - # Put the user into a group with the correct permissions - group = Group.objects.create(name='mygroup') - self.user.groups.add(group) - - # Give the group *all* the permissions! - for rule in group.rule_sets.all(): - rule.can_view = True - rule.can_change = True - rule.can_add = True - rule.can_delete = True - - rule.save() - - self.client.login(username='username', password='password') - self.url = reverse('bom-download', kwargs={'pk': 100}) def test_bom_template(self): diff --git a/InvenTree/part/test_part.py b/InvenTree/part/test_part.py index 2df3c10b01..8e0ba67e22 100644 --- a/InvenTree/part/test_part.py +++ b/InvenTree/part/test_part.py @@ -3,13 +3,14 @@ from allauth.account.models import EmailAddress from django.conf import settings -from django.contrib.auth import get_user_model from django.test import TestCase from django.core.exceptions import ValidationError import os +from InvenTree.InvenTree.helpers import InvenTreeTestCate + from .models import Part, PartCategory, PartCategoryStar, PartStar, PartTestTemplate from .models import rename_part_image from .templatetags import inventree_extras @@ -21,15 +22,9 @@ from common.models import InvenTreeSetting, InvenTreeUserSetting, NotificationEn from common.notifications import storage, UIMessageNotification -class TemplateTagTest(TestCase): +class TemplateTagTest(InvenTreeTestCate): """ 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) @@ -330,24 +325,13 @@ class TestTemplateTest(TestCase): self.assertEqual(variant.getTestTemplates().count(), n + 1) -class PartSettingsTest(TestCase): +class PartSettingsTest(InvenTreeTestCate): """ Tests to ensure that the user-configurable default values work as expected. Some fields for the Part model can have default values specified by the user. """ - def setUp(self): - # Create a user for auth - user = get_user_model() - - self.user = user.objects.create_user( - username='testuser', - email='test@testing.com', - password='password', - is_staff=True - ) - def make_part(self): """ Helper function to create a simple part @@ -461,7 +445,7 @@ class PartSettingsTest(TestCase): Part.objects.create(name='abc', revision='6', description='A part', IPN=' ') -class PartSubscriptionTests(TestCase): +class PartSubscriptionTests(InvenTreeTestCate): fixtures = [ 'location', @@ -470,15 +454,7 @@ class PartSubscriptionTests(TestCase): ] def setUp(self): - # Create a user for auth - user = get_user_model() - - self.user = user.objects.create_user( - username='testuser', - email='test@testing.com', - password='password', - is_staff=True - ) + super().setUp() # electronics / IC / MCU self.category = PartCategory.objects.get(pk=4) @@ -578,7 +554,7 @@ class PartSubscriptionTests(TestCase): self.assertTrue(self.part.is_starred_by(self.user)) -class BaseNotificationIntegrationTest(TestCase): +class BaseNotificationIntegrationTest(InvenTreeTestCate): """ Integration test for notifications """ fixtures = [ @@ -589,15 +565,7 @@ class BaseNotificationIntegrationTest(TestCase): ] def setUp(self): - # Create a user for auth - user = get_user_model() - - self.user = user.objects.create_user( - username='testuser', - email='test@testing.com', - password='password', - is_staff=True - ) + super().setUp() # Add Mailadress EmailAddress.objects.create(user=self.user, email='test@testing.com') diff --git a/InvenTree/part/test_views.py b/InvenTree/part/test_views.py index 2171a09b17..9ce25b79e7 100644 --- a/InvenTree/part/test_views.py +++ b/InvenTree/part/test_views.py @@ -2,8 +2,6 @@ from django.test import TestCase from django.urls import reverse -from django.contrib.auth import get_user_model -from django.contrib.auth.models import Group from .models import Part @@ -19,34 +17,11 @@ class PartViewTestCase(TestCase): 'supplier_part', ] + roles = ['all'] + def setUp(self): super().setUp() - # Create a user - user = get_user_model() - - self.user = user.objects.create_user( - username='username', - email='user@email.com', - password='password' - ) - - # Put the user into a group with the correct permissions - group = Group.objects.create(name='mygroup') - self.user.groups.add(group) - - # Give the group *all* the permissions! - for rule in group.rule_sets.all(): - rule.can_view = True - rule.can_change = True - rule.can_add = True - rule.can_delete = True - - rule.save() - - self.client.login(username='username', password='password') - - class PartListTest(PartViewTestCase): def test_part_index(self): diff --git a/InvenTree/plugin/base/integration/test_mixins.py b/InvenTree/plugin/base/integration/test_mixins.py index c1afa39fc2..bedfe0420c 100644 --- a/InvenTree/plugin/base/integration/test_mixins.py +++ b/InvenTree/plugin/base/integration/test_mixins.py @@ -4,7 +4,6 @@ from django.test import TestCase from django.conf import settings from django.urls import include, re_path, reverse from django.contrib.auth import get_user_model -from django.contrib.auth.models import Group from error_report.models import Error @@ -261,32 +260,8 @@ class PanelMixinTests(TestCase): 'stock', ] - def setUp(self): - super().setUp() + roles = ['all'] - # Create a user which has all the privelages - user = get_user_model() - - self.user = user.objects.create_user( - username='username', - email='user@email.com', - password='password' - ) - - # Put the user into a group with the correct permissions - group = Group.objects.create(name='mygroup') - self.user.groups.add(group) - - # Give the group *all* the permissions! - for rule in group.rule_sets.all(): - rule.can_view = True - rule.can_change = True - rule.can_add = True - rule.can_delete = True - - rule.save() - - self.client.login(username='username', password='password') def test_installed(self): """Test that the sample panel plugin is installed""" diff --git a/InvenTree/stock/test_views.py b/InvenTree/stock/test_views.py index d656201f81..8e304ee322 100644 --- a/InvenTree/stock/test_views.py +++ b/InvenTree/stock/test_views.py @@ -1,14 +1,13 @@ """ Unit tests for Stock views (see views.py) """ -from django.test import TestCase from django.urls import reverse -from django.contrib.auth import get_user_model -from django.contrib.auth.models import Group + +from InvenTree.InvenTree.helpers import InvenTreeTestCate # from common.models import InvenTreeSetting -class StockViewTestCase(TestCase): +class StockViewTestCase(InvenTreeTestCate): fixtures = [ 'category', @@ -19,36 +18,7 @@ class StockViewTestCase(TestCase): 'stock', ] - def setUp(self): - super().setUp() - - # Create a user - user = get_user_model() - - self.user = user.objects.create_user( - username='username', - email='user@email.com', - password='password' - ) - - self.user.is_staff = True - self.user.save() - - # Put the user into a group with the correct permissions - group = Group.objects.create(name='mygroup') - self.user.groups.add(group) - - # Give the group *all* the permissions! - for rule in group.rule_sets.all(): - rule.can_view = True - rule.can_change = True - rule.can_add = True - rule.can_delete = True - - rule.save() - - self.client.login(username='username', password='password') - + roles = ['all'] class StockListTest(StockViewTestCase): """ Tests for Stock list views """ diff --git a/InvenTree/stock/tests.py b/InvenTree/stock/tests.py index 97639b15bd..287a1645e6 100644 --- a/InvenTree/stock/tests.py +++ b/InvenTree/stock/tests.py @@ -1,9 +1,8 @@ -from django.test import TestCase from django.db.models import Sum -from django.contrib.auth import get_user_model from django.core.exceptions import ValidationError import datetime +from InvenTree.InvenTree.helpers import InvenTreeTestCate from InvenTree.status_codes import StockHistoryCode @@ -14,7 +13,7 @@ from part.models import Part from build.models import Build -class StockTest(TestCase): +class StockTest(InvenTreeTestCate): """ Tests to ensure that the stock location tree functions correcly """ @@ -29,6 +28,8 @@ class StockTest(TestCase): ] def setUp(self): + super().setUp() + # Extract some shortcuts from the fixtures self.home = StockLocation.objects.get(name='Home') self.bathroom = StockLocation.objects.get(name='Bathroom') @@ -39,14 +40,6 @@ class StockTest(TestCase): self.drawer2 = StockLocation.objects.get(name='Drawer_2') self.drawer3 = StockLocation.objects.get(name='Drawer_3') - # Create a user - user = get_user_model() - user.objects.create_user('username', 'user@email.com', 'password') - - self.client.login(username='username', password='password') - - self.user = user.objects.get(username='username') - # Ensure the MPTT objects are correctly rebuild Part.objects.rebuild() StockItem.objects.rebuild() diff --git a/InvenTree/users/tests.py b/InvenTree/users/tests.py index 9dc90f5d2c..c850508f93 100644 --- a/InvenTree/users/tests.py +++ b/InvenTree/users/tests.py @@ -1,10 +1,10 @@ from django.test import TestCase from django.apps import apps from django.urls import reverse -from django.contrib.auth import get_user_model from django.contrib.auth.models import Group from rest_framework.authtoken.models import Token +from InvenTree.InvenTree.helpers import InvenTreeTestCate from users.models import RuleSet, Owner @@ -160,20 +160,11 @@ class RuleSetModelTest(TestCase): self.assertEqual(group.permissions.count(), 0) -class OwnerModelTest(TestCase): +class OwnerModelTest(InvenTreeTestCate): """ Some simplistic tests to ensure the Owner model is setup correctly. """ - def setUp(self): - """ Add users and groups """ - - # Create a new user - self.user = get_user_model().objects.create_user('username', 'user@email.com', 'password') - # Put the user into a new group - self.group = Group.objects.create(name='new_group') - self.user.groups.add(self.group) - def do_request(self, endpoint, filters, status_code=200): response = self.client.get(endpoint, filters, format='json') self.assertEqual(response.status_code, status_code)