summaryrefslogtreecommitdiffstats
path: root/core/TESTS
diff options
context:
space:
mode:
Diffstat (limited to 'core/TESTS')
-rw-r--r--core/TESTS/test_imports.py96
-rw-r--r--core/TESTS/tests-cuyc-ignored.py39
-rw-r--r--core/TESTS/tests.py5
-rw-r--r--core/TESTS/tests_caves.py9
-rw-r--r--core/TESTS/tests_logins.py9
5 files changed, 92 insertions, 66 deletions
diff --git a/core/TESTS/test_imports.py b/core/TESTS/test_imports.py
index 943b5d9..40d0a5f 100644
--- a/core/TESTS/test_imports.py
+++ b/core/TESTS/test_imports.py
@@ -18,11 +18,12 @@ them.
https://docs.djangoproject.com/en/3.0/topics/testing/tools/
"""
-import unittest
import re
import subprocess
+import unittest
+
+from django.test import Client, SimpleTestCase, TestCase
-from django.test import TestCase, SimpleTestCase, Client
class SimpleTest(SimpleTestCase):
def test_test_setting(self):
@@ -35,78 +36,93 @@ class SimpleTest(SimpleTestCase):
from troggle.core.models.caves import Cave
def test_import_parsers_surveys(self):
#from PIL import Image
- from troggle.core.utils import save_carefully
from functools import reduce
+
+ from troggle.core.utils import save_carefully
def test_import_parsers_survex(self):
- import troggle.settings as settings
- import troggle.core.models.troggle as models
- import troggle.core.models.survex as models_survex
import troggle.core.models.caves as models_caves
- from troggle.parsers.people import GetPersonExpeditionNameLookup
+ import troggle.core.models.survex as models_survex
+ import troggle.core.models.troggle as models
+ import troggle.settings as settings
+ from troggle.core.views import (caves, drawings, other, scans,
+ statistics, survex, uploads)
+ from troggle.core.views.caves import cavepage, ent
from troggle.core.views.other import frontpage
- from troggle.core.views.caves import ent, cavepage
- from troggle.core.views import scans, drawings, other, caves, statistics, survex, uploads
+ from troggle.parsers.people import GetPersonExpeditionNameLookup
def test_import_views_uploads(self):
from troggle.core.views.uploads import dwgupload, scanupload
def test_import_parsers_QMs(self):
from troggle.core.models.caves import QM, Cave, LogbookEntry
def test_import_parsers_people(self):
from html import unescape
+
from unidecode import unidecode
def test_import_parsers_logbooks(self):
from django.template.defaultfilters import slugify
from django.utils.timezone import get_current_timezone, make_aware
- from troggle.core.models.troggle import DataIssue, Expedition
- from troggle.core.models.caves import Cave, LogbookEntry, PersonTrip
+
from parsers.people import GetPersonExpeditionNameLookup
+ from troggle.core.models.caves import Cave, LogbookEntry, PersonTrip
+ from troggle.core.models.troggle import DataIssue, Expedition
def test_import_core_views_caves(self):
+ from django.conf import settings
+ from django.contrib.auth.decorators import login_required
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import get_object_or_404, render
- import troggle.core.views.expo
+
+ import troggle.core.views.expo
+ from troggle.core.forms import (CaveAndEntranceFormSet, CaveForm,
+ EntranceForm, EntranceLetterForm)
+ from troggle.core.models.caves import (QM, Area, Cave, CaveAndEntrance,
+ CaveSlug, Entrance,
+ EntranceSlug, SurvexStation)
from troggle.core.models.troggle import Expedition
- from troggle.core.models.caves import CaveSlug, Cave, CaveAndEntrance, QM, EntranceSlug, Entrance, Area, SurvexStation
- from troggle.core.forms import CaveForm, CaveAndEntranceFormSet, EntranceForm, EntranceLetterForm
from troggle.core.views.auth import login_required_if_public
- from django.contrib.auth.decorators import login_required
- from django.conf import settings
def test_import_parsers_mix(self):
- from troggle.parsers.logbooks import GetCaveLookup
- import troggle.settings
import troggle.parsers.caves
- import troggle.parsers.people
import troggle.parsers.drawings
- import troggle.parsers.scans
import troggle.parsers.logbooks
+ import troggle.parsers.people
import troggle.parsers.QMs
- import troggle.parsers.survex
+ import troggle.parsers.scans
+ import troggle.parsers.survex
+ import troggle.settings
+ from troggle.parsers.logbooks import GetCaveLookup
def test_import_imports(self):
- from django.core import management
- from django.db import connection, close_old_connections, connections
from django.contrib.auth.models import User
+ from django.core import management
+ from django.db import close_old_connections, connection, connections
from django.http import HttpResponse
from django.urls import reverse
def test_import_urls(self):
from django.conf import settings
- from django.conf.urls import url, include
- from django.contrib import admin
- from django.contrib import auth
- from django.urls import reverse, resolve
- from django.views.generic.base import RedirectView
+ from django.conf.urls import include, url
+ from django.contrib import admin, auth
+ from django.urls import resolve, reverse
+ from django.views.generic.base import RedirectView
from django.views.generic.edit import UpdateView
from django.views.generic.list import ListView
- from troggle.core.views import other, caves, statistics, survex
+
+ from troggle.core.views import caves, other, statistics, survex
from troggle.core.views.auth import expologin, expologout
- from troggle.core.views.caves import ent, cavepage
- from troggle.core.views.expo import expofiles_redirect, expofilessingle, expopage, editexpopage, mediapage, map, mapfile
- from troggle.core.views.logbooks import expedition, personexpedition, Expeditions_tsvListView, Expeditions_jsonListView
- from troggle.core.views.logbooks import get_logbook_entries, logbookentry
- from troggle.core.views.logbooks import notablepersons, person, get_people
+ from troggle.core.views.caves import cavepage, ent
+ from troggle.core.views.expo import (editexpopage, expofiles_redirect,
+ expofilessingle, expopage, map,
+ mapfile, mediapage)
+ from troggle.core.views.logbooks import (Expeditions_jsonListView,
+ Expeditions_tsvListView,
+ expedition,
+ get_logbook_entries,
+ get_people, logbookentry,
+ notablepersons, person,
+ personexpedition)
from troggle.core.views.other import controlpanel
- from troggle.core.views.prospect import prospecting
- from troggle.core.views.prospect import prospecting_image
- from troggle.core.views.statistics import pathsreport, stats, dataissues
- from troggle.core.views.survex import survexcaveslist, survexcavesingle, svx
+ from troggle.core.views.prospect import prospecting, prospecting_image
+ from troggle.core.views.statistics import (dataissues, pathsreport,
+ stats)
+ from troggle.core.views.survex import (survexcavesingle,
+ survexcaveslist, svx)
class SubprocessTest(TestCase):
@@ -123,8 +139,8 @@ class SubprocessTest(TestCase):
def test_utf8(self):
'''Expects that utf8 is the default encoding when opening files
'''
- import sys
import locale
+ import sys
self.assertTrue( sys.getdefaultencoding() == "utf-8", f'{sys.getdefaultencoding()} - UTF8 error in getdefaultencoding')
self.assertTrue( sys.getfilesystemencoding() == "utf-8", f'{sys.getfilesystemencoding()} - UTF8 error in getfilesystemencoding')
self.assertTrue( locale.getdefaultlocale()[1] == "UTF-8", f'{locale.getdefaultlocale()} - UTF8 error in locale.getdefaultlocale')
@@ -148,6 +164,7 @@ class SubprocessTest(TestCase):
''' Expects clean git repos with no added files and no merge failures
'''
from pathlib import Path
+
import troggle.settings as settings
TROGGLE_PATH = Path(settings.REPOS_ROOT_PATH) / "troggle"
for cwd in [settings.SURVEX_DATA, settings.EXPOWEB, settings.DRAWINGS_DATA, TROGGLE_PATH]:
@@ -179,6 +196,7 @@ class SubprocessTest(TestCase):
''' Expects no failures of survex files
'''
from pathlib import Path
+
import troggle.settings as settings
cwd = settings.SURVEX_DATA
for survey in ["1623.svx", "1626.svx"]:
diff --git a/core/TESTS/tests-cuyc-ignored.py b/core/TESTS/tests-cuyc-ignored.py
index 3e98f94..ac4e5b3 100644
--- a/core/TESTS/tests-cuyc-ignored.py
+++ b/core/TESTS/tests-cuyc-ignored.py
@@ -18,28 +18,30 @@ $ python manage.py test cuy.club --parallel
Runs the tests in this file only
"""
-import unittest
import re
-from django.test import TestCase, SimpleTestCase, TransactionTestCase, Client
+import unittest
+
+from django.test import Client, SimpleTestCase, TestCase, TransactionTestCase
+
class ImportTest(TestCase):
def test_import_imports(self):
- # Need to go through all modules and copy all imports here
+ ed to go through all modules and copy all imports here
+ from io import StringIO
+
+ from cuy.club.models import (Article, Event, Member, Webpage,
+ WebpageCategory)
+ from cuy.website.views.generic import PUBLIC_LOGIN
from django.conf import settings
from django.contrib.auth.decorators import login_required
from django.contrib.auth.models import User
from django.core import management
from django.db import connection, connections
- from django.http import HttpResponse
+ from django.db.utils import IntegrityError
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import get_object_or_404, render
from django.template.defaultfilters import slugify
from django.utils.timezone import get_current_timezone, make_aware
- from io import StringIO
- from cuy.club.models import Member, Article, Event, WebpageCategory, Webpage
- from cuy.website.views.generic import PUBLIC_LOGIN
- from cuy.club.models import Member
- from django.db.utils import IntegrityError
class SimpleTest(SimpleTestCase):
@@ -110,9 +112,9 @@ class DataTests(TestCase ):
self.assertIsNotNone(None, "Failed to enforce 'UNIQUE constraint' on saving two Member objects with same user_id")
def test_article_invalid_date(self):
- from cuy.club.models import Member, Article
- from django.db.utils import IntegrityError
+ from cuy.club.models import Article, Member
from django.core.exceptions import ValidationError
+ from django.db.utils import IntegrityError
a = Article()
m = self.member
@@ -126,9 +128,9 @@ class DataTests(TestCase ):
self.assertIsNotNone(t, "Exception is not the expected 'invalid format'")
def test_article_and_author_not_null(self):
- from cuy.club.models import Member, Article
- from django.db.utils import IntegrityError
+ from cuy.club.models import Article, Member
from django.core.exceptions import ValidationError
+ from django.db.utils import IntegrityError
a2 = Article()
a2.publish ="2021-02-17 17:25"
@@ -143,9 +145,9 @@ class DataTests(TestCase ):
self.assertIsNotNone(None, "Exception is not the expected 'NOT NULL constraint failed' IntegrityError")
def test_article_and_author_ok(self):
- from cuy.club.models import Member, Article
- from django.db.utils import IntegrityError
+ from cuy.club.models import Article, Member
from django.core.exceptions import ValidationError
+ from django.db.utils import IntegrityError
m = self.member
a3 = Article()
@@ -201,8 +203,8 @@ class FixturePageTests(TestCase):
def test_fix_admin_login_fail(self):
c = self.client
- from django.contrib.auth.models import User
from cuy.club.models import Member
+ from django.contrib.auth.models import User
m = Member.objects.get(pk=9002)
u = User.objects.get(username='bingo')
@@ -223,7 +225,7 @@ class ComplexLoginTests(TestCase):
'''These test the login and capabilities of logged-in users'''
def setUp(self):
'''setUp runs once for each test in this class'''
- from cuy.club.models import Member, MEMBER_TYPES, AFFILIATION
+ from cuy.club.models import AFFILIATION, MEMBER_TYPES, Member
from django.contrib.auth.models import User
m = Member()
m.pk=8000
@@ -344,6 +346,7 @@ class ComplexLoginTests(TestCase):
def test_committee_login(self):
from django.contrib.auth.models import User
+
# User must be associated with a Member for whom is_committee() is True
c = self.client # inherited from TestCase
u = self.user
@@ -407,7 +410,7 @@ class DynamicPageTests(TestCase):
def test_full_yachts(self):
'''Creating a WebpageCategory and an index webpage creates a valid url
'''
- from cuy.club.models import WebpageCategory, Webpage
+ from cuy.club.models import Webpage, WebpageCategory
wc = WebpageCategory()
wc.pk = 8000
wc.id = 8000
diff --git a/core/TESTS/tests.py b/core/TESTS/tests.py
index e74a11b..cc10c14 100644
--- a/core/TESTS/tests.py
+++ b/core/TESTS/tests.py
@@ -25,10 +25,11 @@ todo = '''ADD TESTS when we are redirecting /expofiles/ to a remote file-deliver
- Add test for running cavern to produce a .3d file
'''
-import unittest
import re
+import unittest
from http import HTTPStatus
-from django.test import TestCase, SimpleTestCase, Client
+
+from django.test import Client, SimpleTestCase, TestCase
#class SimplePageTest(unittest.TestCase):
diff --git a/core/TESTS/tests_caves.py b/core/TESTS/tests_caves.py
index dd8f1df..732ebe8 100644
--- a/core/TESTS/tests_caves.py
+++ b/core/TESTS/tests_caves.py
@@ -2,11 +2,14 @@
Modified for Expo April 2021.
"""
-import unittest
import re
-from django.test import TestCase, SimpleTestCase, Client
+import unittest
+
+from django.test import Client, SimpleTestCase, TestCase
+
+from troggle.core.models.caves import Area, Cave
from troggle.core.models.troggle import Expedition, Person, PersonExpedition
-from troggle.core.models.caves import Cave, Area
+
class FixtureTests(TestCase):
'''These just hit the database.
diff --git a/core/TESTS/tests_logins.py b/core/TESTS/tests_logins.py
index 364f16a..02eceb6 100644
--- a/core/TESTS/tests_logins.py
+++ b/core/TESTS/tests_logins.py
@@ -5,17 +5,18 @@ Philip Sargent (Feb.2021)
Modified for Expo April 2021.
"""
-import unittest
-import re
import pathlib
+import re
import subprocess
+import unittest
from http import HTTPStatus
-from django.test import TestCase, SimpleTestCase, TransactionTestCase, Client
+from django.test import Client, SimpleTestCase, TestCase, TransactionTestCase
+
+import troggle.settings as settings
from troggle.core.models.survex import Wallet
from troggle.core.models.troggle import Expedition
-import troggle.settings as settings
class DataTests(TestCase ):
'''These check that the NULL and NON-UNIQUE constraints are working in the database '''