diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 735a750..c4afd1f 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,7 +6,7 @@ run_tests: stage: test image: python:3.12 variables: - SECRET_KEY: 'random_secret_key_for_ci' + DJANGO_SECRET_KEY: 'random_secret_key_for_ci' before_script: - python -m pip install --upgrade pip - pip install --no-cache-dir -r requirements/base.txt diff --git a/apps/domains/models.py b/apps/domains/models.py index 2014b40..9ce183f 100644 --- a/apps/domains/models.py +++ b/apps/domains/models.py @@ -119,4 +119,6 @@ class Dataset(TimeStampMixin, Model): datafile = FileField(upload_to = "datasets/") def __str__(self) -> str: - return f"{self.name} ({self.domain.name})" \ No newline at end of file + return f"{self.name} ({self.domain.name})" + +Organisation = Organization \ No newline at end of file diff --git a/apps/domains/tests.py b/apps/domains/tests.py index cdfa872..140f24b 100644 --- a/apps/domains/tests.py +++ b/apps/domains/tests.py @@ -95,12 +95,15 @@ class OrganisationTestCase(TestCase): self.user1 = User.objects.create_user(email_address="manager@test.com", password="pass123") self.user2 = User.objects.create_user(email_address="employee@test.com", password="pass123") self.domain = Domain.objects.create(name="Technology") + # Organization model uses `owner` and `members`. self.org1 = Organisation.objects.create( name="TechCorp", - managers=self.user1, - employees=self.user2, - domains=self.domain + owner=self.user1, ) + # add member and link domain + self.org1.members.add(self.user2) + self.domain.organization = self.org1 + self.domain.save() def test_organisation_creation(self): self.assertEqual(self.org1.name, "TechCorp") @@ -112,19 +115,17 @@ class OrganisationTestCase(TestCase): with self.assertRaises(Exception): Organisation.objects.create( name="TechCorp", - managers=self.user1, - employees=self.user2, - domains=self.domain + owner=self.user1, ) def test_organisation_manager_relationship(self): - self.assertEqual(self.org1.managers, self.user1) + self.assertEqual(self.org1.owner, self.user1) def test_organisation_employee_relationship(self): - self.assertEqual(self.org1.employees, self.user2) + self.assertTrue(self.org1.members.filter(pk=self.user2.pk).exists()) def test_organisation_domain_relationship(self): - self.assertEqual(self.org1.domains, self.domain) + self.assertTrue(self.org1.domains.filter(pk=self.domain.pk).exists()) def test_organisation_uuid_generated(self): self.assertIsNotNone(self.org1.uuid) @@ -153,7 +154,7 @@ class OrganisationTestCase(TestCase): self.assertEqual(org.id, self.org1.id) def test_organisation_filter_by_manager(self): - orgs = Organisation.objects.filter(managers=self.user1) + orgs = Organisation.objects.filter(owner=self.user1) self.assertEqual(orgs.count(), 1) def test_organisation_delete_cascade(self): diff --git a/apps/users/tests/test_auth_actions.py b/apps/users/tests/test_auth_actions.py index 7c6a301..816f827 100644 --- a/apps/users/tests/test_auth_actions.py +++ b/apps/users/tests/test_auth_actions.py @@ -322,7 +322,7 @@ class UserSignupActionTests(TestCase): 'first_name': 'New', 'last_name': 'User' }) - self.assertEqual(response.status_code, status.HTTP_201_CREATED) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) class UserChangePasswordActionTests(TestCase): diff --git a/config/__pycache__/settings.cpython-313.pyc b/config/__pycache__/settings.cpython-313.pyc index 5ca8620..7b10833 100644 Binary files a/config/__pycache__/settings.cpython-313.pyc and b/config/__pycache__/settings.cpython-313.pyc differ diff --git a/config/settings.py b/config/settings.py index c2aa90e..0b41334 100644 --- a/config/settings.py +++ b/config/settings.py @@ -1,6 +1,7 @@ from dotenv import load_dotenv from pathlib import Path import os +import sys BASE_DIR = Path(__file__).resolve().parent.parent @@ -102,6 +103,14 @@ DB_PASSWORD = os.getenv('POSTGRES_PASSWORD') DB_HOST = os.getenv('POSTGRES_HOST') DB_PORT = os.getenv('POSTGRES_PORT', 5432) +if any(arg.startswith('test') for arg in sys.argv): + DB_ENGINE = 'django.db.backends.sqlite3' + DB_NAME = ':memory:' + DB_USER = None + DB_PASSWORD = None + DB_HOST = None + DB_PORT = None + DATABASES = { 'default': { 'ENGINE': DB_ENGINE,