reorganized and reclassified old 'unit tests' for ea. app into dirs for UTs & ITs; abandoning effort to refactor any test_views into UTs; all tests passing
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
This commit is contained in:
0
src/apps/dashboard/tests/integrated/__init__.py
Normal file
0
src/apps/dashboard/tests/integrated/__init__.py
Normal file
@@ -1,18 +1,15 @@
|
|||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from ..forms import (
|
|
||||||
|
from apps.dashboard.forms import (
|
||||||
DUPLICATE_ITEM_ERROR,
|
DUPLICATE_ITEM_ERROR,
|
||||||
EMPTY_ITEM_ERROR,
|
EMPTY_ITEM_ERROR,
|
||||||
ExistingListItemForm,
|
ExistingListItemForm,
|
||||||
ItemForm,
|
ItemForm,
|
||||||
)
|
)
|
||||||
from ..models import Item, List
|
from apps.dashboard.models import Item, List
|
||||||
|
|
||||||
|
|
||||||
class ItemFormTest(TestCase):
|
class ItemFormTest(TestCase):
|
||||||
def test_form_validation_for_blank_items(self):
|
|
||||||
form = ItemForm(data={"text": ""})
|
|
||||||
self.assertFalse(form.is_valid())
|
|
||||||
self.assertEqual(form.errors["text"], [EMPTY_ITEM_ERROR])
|
|
||||||
|
|
||||||
def test_form_save_handles_saving_to_a_list(self):
|
def test_form_save_handles_saving_to_a_list(self):
|
||||||
mylist = List.objects.create()
|
mylist = List.objects.create()
|
||||||
form = ItemForm(data={"text": "do re mi"})
|
form = ItemForm(data={"text": "do re mi"})
|
||||||
@@ -1,14 +1,12 @@
|
|||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.db.utils import IntegrityError
|
from django.db.utils import IntegrityError
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from ..models import Item, List
|
|
||||||
|
from apps.dashboard.models import Item, List
|
||||||
from apps.lyric.models import User
|
from apps.lyric.models import User
|
||||||
|
|
||||||
|
|
||||||
class ItemModelTest(TestCase):
|
class ItemModelTest(TestCase):
|
||||||
def test_default_text(self):
|
|
||||||
item = Item()
|
|
||||||
self.assertEqual(item.text, "")
|
|
||||||
|
|
||||||
def test_item_is_related_to_list(self):
|
def test_item_is_related_to_list(self):
|
||||||
mylist = List.objects.create()
|
mylist = List.objects.create()
|
||||||
item = Item()
|
item = Item()
|
||||||
@@ -42,10 +40,6 @@ class ItemModelTest(TestCase):
|
|||||||
item = Item(list=list2, text="nojk")
|
item = Item(list=list2, text="nojk")
|
||||||
item.full_clean() # should not raise
|
item.full_clean() # should not raise
|
||||||
|
|
||||||
def test_string_representation(self):
|
|
||||||
item = Item(text="sample text")
|
|
||||||
self.assertEqual(str(item), "sample text")
|
|
||||||
|
|
||||||
class ListModelTest(TestCase):
|
class ListModelTest(TestCase):
|
||||||
def test_get_absolute_url(self):
|
def test_get_absolute_url(self):
|
||||||
mylist = List.objects.create()
|
mylist = List.objects.create()
|
||||||
@@ -1,13 +1,14 @@
|
|||||||
import lxml.html
|
import lxml.html
|
||||||
from unittest import skip
|
from unittest import skip
|
||||||
|
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from django.utils import html
|
from django.utils import html
|
||||||
|
|
||||||
from ..forms import (
|
from apps.dashboard.forms import (
|
||||||
DUPLICATE_ITEM_ERROR,
|
DUPLICATE_ITEM_ERROR,
|
||||||
EMPTY_ITEM_ERROR,
|
EMPTY_ITEM_ERROR,
|
||||||
)
|
)
|
||||||
from ..models import Item, List
|
from apps.dashboard.models import Item, List
|
||||||
from apps.lyric.models import User
|
from apps.lyric.models import User
|
||||||
|
|
||||||
|
|
||||||
0
src/apps/dashboard/tests/unit/__init__.py
Normal file
0
src/apps/dashboard/tests/unit/__init__.py
Normal file
13
src/apps/dashboard/tests/unit/test_forms.py
Normal file
13
src/apps/dashboard/tests/unit/test_forms.py
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
from django.test import SimpleTestCase
|
||||||
|
|
||||||
|
from apps.dashboard.forms import (
|
||||||
|
EMPTY_ITEM_ERROR,
|
||||||
|
ItemForm,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class SimpleItemFormTest(SimpleTestCase):
|
||||||
|
def test_form_validation_for_blank_items(self):
|
||||||
|
form = ItemForm(data={"text": ""})
|
||||||
|
self.assertFalse(form.is_valid())
|
||||||
|
self.assertEqual(form.errors["text"], [EMPTY_ITEM_ERROR])
|
||||||
13
src/apps/dashboard/tests/unit/test_models.py
Normal file
13
src/apps/dashboard/tests/unit/test_models.py
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
from django.test import SimpleTestCase
|
||||||
|
|
||||||
|
from apps.dashboard.models import Item
|
||||||
|
|
||||||
|
|
||||||
|
class SimpleItemModelTest(SimpleTestCase):
|
||||||
|
def test_default_text(self):
|
||||||
|
item = Item()
|
||||||
|
self.assertEqual(item.text, "")
|
||||||
|
|
||||||
|
def test_string_representation(self):
|
||||||
|
item = Item(text="sample text")
|
||||||
|
self.assertEqual(str(item), "sample text")
|
||||||
0
src/apps/lyric/tests/integrated/__init__.py
Normal file
0
src/apps/lyric/tests/integrated/__init__.py
Normal file
@@ -2,17 +2,11 @@ import uuid
|
|||||||
from django.http import HttpRequest
|
from django.http import HttpRequest
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
|
|
||||||
from ..authentication import PasswordlessAuthenticationBackend
|
from apps.lyric.authentication import PasswordlessAuthenticationBackend
|
||||||
from ..models import Token, User
|
from apps.lyric.models import Token, User
|
||||||
|
|
||||||
|
|
||||||
class AuthenticateTest(TestCase):
|
class AuthenticateTest(TestCase):
|
||||||
def test_returns_None_if_token_is_invalid_uuid(self):
|
|
||||||
result = PasswordlessAuthenticationBackend().authenticate(
|
|
||||||
HttpRequest(), "no-such-token"
|
|
||||||
)
|
|
||||||
self.assertIsNone(result)
|
|
||||||
|
|
||||||
def test_returns_None_if_token_uuid_not_found(self):
|
def test_returns_None_if_token_uuid_not_found(self):
|
||||||
uid = uuid.uuid4()
|
uid = uuid.uuid4()
|
||||||
result = PasswordlessAuthenticationBackend().authenticate(
|
result = PasswordlessAuthenticationBackend().authenticate(
|
||||||
@@ -1,7 +1,9 @@
|
|||||||
import uuid
|
import uuid
|
||||||
from django.contrib import auth
|
from django.contrib import auth
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from ..models import Token, User
|
|
||||||
|
from apps.lyric.models import Token, User
|
||||||
|
|
||||||
|
|
||||||
class UserModelTest(TestCase):
|
class UserModelTest(TestCase):
|
||||||
def test_model_is_configured_for_django_auth(self):
|
def test_model_is_configured_for_django_auth(self):
|
||||||
@@ -1,7 +1,10 @@
|
|||||||
from django.contrib import auth
|
from django.contrib import auth
|
||||||
from django.test import TestCase
|
from django.test import TestCase
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
from ..models import Token
|
|
||||||
|
from apps.lyric.models import Token
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class SendLoginEmailViewTest(TestCase):
|
class SendLoginEmailViewTest(TestCase):
|
||||||
def test_redirects_to_home_page(self):
|
def test_redirects_to_home_page(self):
|
||||||
0
src/apps/lyric/tests/unit/__init__.py
Normal file
0
src/apps/lyric/tests/unit/__init__.py
Normal file
12
src/apps/lyric/tests/unit/test_authentication.py
Normal file
12
src/apps/lyric/tests/unit/test_authentication.py
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
from django.http import HttpRequest
|
||||||
|
from django.test import SimpleTestCase
|
||||||
|
|
||||||
|
from apps.lyric.authentication import PasswordlessAuthenticationBackend
|
||||||
|
|
||||||
|
|
||||||
|
class SimpleAuthenticateTest(SimpleTestCase):
|
||||||
|
def test_returns_None_if_token_is_invalid_uuid(self):
|
||||||
|
result = PasswordlessAuthenticationBackend().authenticate(
|
||||||
|
HttpRequest(), "no-such-token"
|
||||||
|
)
|
||||||
|
self.assertIsNone(result)
|
||||||
Reference in New Issue
Block a user