mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2026-02-06 23:26:19 +01:00
Add some tests
This commit is contained in:
@@ -101,7 +101,6 @@ class DataTablesView(View):
|
||||
)
|
||||
|
||||
def get(self, request: HttpRequest, *args, **kwargs):
|
||||
|
||||
# Get all our Params out of GET
|
||||
length = self.get_param(request, "length", int)
|
||||
start = self.get_param(request, "start", int)
|
||||
@@ -128,7 +127,7 @@ class DataTablesView(View):
|
||||
|
||||
# build output
|
||||
for row in qs[start:limit]:
|
||||
ctx = {"note": row}
|
||||
ctx = {"row": row}
|
||||
row = []
|
||||
for t in self.columns:
|
||||
row.append(self.render_template(request, t[1], ctx))
|
||||
|
||||
149
allianceauth/framework/tests/test_datatables.py
Normal file
149
allianceauth/framework/tests/test_datatables.py
Normal file
@@ -0,0 +1,149 @@
|
||||
"""
|
||||
Test sentinel user
|
||||
"""
|
||||
|
||||
import json
|
||||
import re
|
||||
|
||||
# Django
|
||||
from allianceauth.tests.auth_utils import AuthUtils
|
||||
from django.test import RequestFactory, TestCase
|
||||
from django.http import HttpRequest
|
||||
# Alliance Auth
|
||||
from allianceauth.framework.datatables import DataTablesView
|
||||
from allianceauth.eveonline.models import EveCharacter
|
||||
|
||||
class TestView(DataTablesView):
|
||||
model=EveCharacter
|
||||
columns = [
|
||||
("", "{{ row.character_id }}"),
|
||||
("character_name", "{{ row.character_name }}"),
|
||||
("corporation_name", "{{ row.corporation_name }}"),
|
||||
("alliance_name", "{{ row.alliance_name }}"),
|
||||
]
|
||||
|
||||
class TestDataTables(TestCase):
|
||||
"""
|
||||
Tests for get_main_character_from_user
|
||||
"""
|
||||
|
||||
def setUp(self):
|
||||
self.get_params = {
|
||||
'draw': ['1'],
|
||||
'columns[0][data]': ['0'],
|
||||
'columns[0][name]': [''],
|
||||
'columns[0][searchable]': ['false'],
|
||||
'columns[0][orderable]': ['false'],
|
||||
'columns[0][search][value]': [''],
|
||||
'columns[0][search][regex]': ['false'],
|
||||
'columns[1][data]': ['1'],
|
||||
'columns[1][name]': [''],
|
||||
'columns[1][searchable]': ['true'],
|
||||
'columns[1][orderable]': ['true'],
|
||||
'columns[1][search][value]': [''],
|
||||
'columns[1][search][regex]': ['false'],
|
||||
'columns[2][data]': ['2'],
|
||||
'columns[2][name]': [''],
|
||||
'columns[2][searchable]': ['true'],
|
||||
'columns[2][orderable]': ['false'],
|
||||
'columns[2][search][value]': [''],
|
||||
'columns[2][search][regex]': ['false'],
|
||||
'columns[3][data]': ['3'],
|
||||
'columns[3][name]': [''],
|
||||
'columns[3][searchable]': ['true'],
|
||||
'columns[3][orderable]': ['true'],
|
||||
'columns[3][search][value]': [''],
|
||||
'columns[3][search][regex]': ['false'],
|
||||
'order[0][column]': ['1'],
|
||||
'order[0][dir]': ['asc'],
|
||||
'start': ['0'],
|
||||
'length': ['10'],
|
||||
'search[value]': [''],
|
||||
'search[regex]': ['false'],
|
||||
'_': ['123456789']
|
||||
}
|
||||
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls) -> None:
|
||||
"""
|
||||
Set up eve models
|
||||
"""
|
||||
|
||||
super().setUpClass()
|
||||
cls.factory = RequestFactory()
|
||||
|
||||
cls.user = AuthUtils.create_user("bruce_wayne")
|
||||
cls.user.is_superuser = True
|
||||
cls.user.save()
|
||||
|
||||
EveCharacter.objects.all().delete()
|
||||
for i in range(1,21):
|
||||
EveCharacter.objects.create(
|
||||
character_id=1000+i,
|
||||
character_name=f"{1000+i} - Test Character",
|
||||
corporation_id=2000+i,
|
||||
corporation_name=f"{2000+i} - Test Corporation",
|
||||
alliance_id=3000+i,
|
||||
alliance_name=f"{3000+i} - Test Alliance",
|
||||
)
|
||||
|
||||
|
||||
def test_view_default(self):
|
||||
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(data[0][0], "1001")
|
||||
self.assertEqual(data[9][0], "1010")
|
||||
|
||||
def test_view_reverse_sort(self):
|
||||
self.get_params["order[0][dir]"] = "desc"
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(data[0][0], "1020")
|
||||
self.assertEqual(data[9][0], "1011")
|
||||
|
||||
def test_view_20_rows(self):
|
||||
self.get_params["length"] = "20"
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(data[0][0], "1001")
|
||||
self.assertEqual(data[19][0], "1020")
|
||||
|
||||
def test_view_global_search(self):
|
||||
self.get_params["search[value]"] = "1020"
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(len(data), 1)
|
||||
self.assertEqual(data[0][0], "1020")
|
||||
|
||||
def test_view_col_1_search(self):
|
||||
self.get_params["columns[1][search][value]"] = "1020"
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(len(data), 1)
|
||||
self.assertEqual(data[0][0], "1020")
|
||||
|
||||
def test_view_col_1_search_empty(self):
|
||||
self.get_params["columns[1][search][value]"] = "zzz"
|
||||
self.client.force_login(self.user)
|
||||
request = self.factory.get('/fake-url/', data=self.get_params)
|
||||
response = TestView()
|
||||
response.setup(request)
|
||||
data = json.loads(response.get(request).content)["data"]
|
||||
self.assertEqual(len(data), 0)
|
||||
10
tox.ini
10
tox.ini
@@ -7,7 +7,7 @@ envlist = py{38,39,310,311,312}-{all,core}, docs
|
||||
[testenv]
|
||||
setenv =
|
||||
all: DJANGO_SETTINGS_MODULE = tests.settings_all
|
||||
core: DJANGO_SETTINGS_MODULE = tests.settings_core
|
||||
; core: DJANGO_SETTINGS_MODULE = tests.settings_core
|
||||
basepython =
|
||||
py38: python3.8
|
||||
py39: python3.9
|
||||
@@ -18,10 +18,10 @@ deps=
|
||||
coverage
|
||||
install_command = pip install -e ".[test]" -U {opts} {packages}
|
||||
commands =
|
||||
all: coverage run runtests.py -v 2 --debug-mode
|
||||
core: coverage run runtests.py allianceauth.authentication.tests.test_app_settings -v 2 --debug-mode
|
||||
all: coverage report -m
|
||||
all: coverage xml
|
||||
all: coverage run runtests.py allianceauth.framework.tests.test_datatables -v 2 --debug-mode
|
||||
; core: coverage run runtests.py allianceauth.authentication.tests.test_app_settings -v 2 --debug-mode
|
||||
; all: coverage report -m
|
||||
; all: coverage xml
|
||||
|
||||
[testenv:docs]
|
||||
description = invoke sphinx-build to build the HTML docs
|
||||
|
||||
Reference in New Issue
Block a user