mirror of
https://github.com/YunoHost-Apps/django-fritzconnection_ynh.git
synced 2024-09-03 18:26:24 +02:00
update tests
This commit is contained in:
parent
777bd7a449
commit
c8ae8cbb22
4 changed files with 40 additions and 34 deletions
|
@ -5,7 +5,7 @@
|
||||||
"description": {
|
"description": {
|
||||||
"en": "Web based FritzBox management using Python/Django."
|
"en": "Web based FritzBox management using Python/Django."
|
||||||
},
|
},
|
||||||
"version": "0.0.2.rc0~ynh1",
|
"version": "0.0.2.rc1~ynh1",
|
||||||
"url": "https://github.com/jedie/django-fritzconnection",
|
"url": "https://github.com/jedie/django-fritzconnection",
|
||||||
"upstream": {
|
"upstream": {
|
||||||
"license": "GPL-3.0",
|
"license": "GPL-3.0",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
[tool.poetry]
|
[tool.poetry]
|
||||||
name = "django-fritzconnection_ynh"
|
name = "django-fritzconnection_ynh"
|
||||||
version = "0.0.2.rc0~ynh1"
|
version = "0.0.2.rc1~ynh1"
|
||||||
description = "Test django-fritzconnection_ynh via local_test.py"
|
description = "Test django-fritzconnection_ynh via local_test.py"
|
||||||
authors = ["JensDiemer <git@jensdiemer.de>"]
|
authors = ["JensDiemer <git@jensdiemer.de>"]
|
||||||
license = "GPL"
|
license = "GPL"
|
||||||
|
@ -39,7 +39,7 @@ build-backend = "poetry.core.masonry.api"
|
||||||
[tool.darker]
|
[tool.darker]
|
||||||
src = ['.']
|
src = ['.']
|
||||||
revision = "origin/master..."
|
revision = "origin/master..."
|
||||||
line_length = 120
|
line_length = 100
|
||||||
verbose = true
|
verbose = true
|
||||||
skip_string_normalization = true
|
skip_string_normalization = true
|
||||||
diff = false
|
diff = false
|
||||||
|
@ -53,14 +53,14 @@ log_level = "INFO"
|
||||||
|
|
||||||
|
|
||||||
[tool.flynt]
|
[tool.flynt]
|
||||||
line_length = 120
|
line_length = 100
|
||||||
|
|
||||||
|
|
||||||
[tool.isort]
|
[tool.isort]
|
||||||
# https://pycqa.github.io/isort/docs/configuration/config_files/#pyprojecttoml-preferred-format
|
# https://pycqa.github.io/isort/docs/configuration/config_files/#pyprojecttoml-preferred-format
|
||||||
atomic=true
|
atomic=true
|
||||||
profile='black'
|
profile='black'
|
||||||
line_length=120
|
line_length=100
|
||||||
skip_glob=["*/htmlcov/*","*/migrations/*"]
|
skip_glob=["*/htmlcov/*","*/migrations/*"]
|
||||||
known_first_party=["djfritz","djfritz_project","djfritz_tests"]
|
known_first_party=["djfritz","djfritz_project","djfritz_tests"]
|
||||||
lines_after_imports=2
|
lines_after_imports=2
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from axes.models import AccessLog
|
|
||||||
from bx_django_utils.test_utils.html_assertion import HtmlAssertionMixin
|
from bx_django_utils.test_utils.html_assertion import HtmlAssertionMixin
|
||||||
from django.conf import LazySettings, settings
|
from django.conf import LazySettings, settings
|
||||||
from django.contrib.auth.models import User
|
from django.contrib.auth.models import User
|
||||||
|
@ -11,7 +10,7 @@ from django.urls.base import reverse
|
||||||
from django_yunohost_integration.test_utils import generate_basic_auth
|
from django_yunohost_integration.test_utils import generate_basic_auth
|
||||||
from django_yunohost_integration.views import request_media_debug_view
|
from django_yunohost_integration.views import request_media_debug_view
|
||||||
|
|
||||||
import inventory
|
import djfritz
|
||||||
|
|
||||||
|
|
||||||
@override_settings(DEBUG=False)
|
@override_settings(DEBUG=False)
|
||||||
|
@ -40,18 +39,12 @@ class DjangoYnhTestCase(HtmlAssertionMixin, TestCase):
|
||||||
assert settings.ROOT_URLCONF == 'urls'
|
assert settings.ROOT_URLCONF == 'urls'
|
||||||
|
|
||||||
def test_urls(self):
|
def test_urls(self):
|
||||||
assert reverse('admin:index') == '/app_path/'
|
assert reverse('admin:index') == '/app_path/admin/'
|
||||||
|
|
||||||
# The django_yunohost_integration debug view should not be available:
|
# The django_yunohost_integration debug view should not be available:
|
||||||
with self.assertRaises(NoReverseMatch):
|
with self.assertRaises(NoReverseMatch):
|
||||||
reverse(request_media_debug_view)
|
reverse(request_media_debug_view)
|
||||||
|
|
||||||
# Serve user uploads via django_tools.serve_media_app:
|
|
||||||
assert settings.MEDIA_URL == '/app_path/media/'
|
|
||||||
assert reverse('serve_media_app:serve-media', kwargs={'user_token': 'token', 'path': 'foo/bar/'}) == (
|
|
||||||
'/app_path/media/token/foo/bar/'
|
|
||||||
)
|
|
||||||
|
|
||||||
def test_auth(self):
|
def test_auth(self):
|
||||||
# SecurityMiddleware should redirects all non-HTTPS requests to HTTPS:
|
# SecurityMiddleware should redirects all non-HTTPS requests to HTTPS:
|
||||||
assert settings.SECURE_SSL_REDIRECT is True
|
assert settings.SECURE_SSL_REDIRECT is True
|
||||||
|
@ -64,7 +57,16 @@ class DjangoYnhTestCase(HtmlAssertionMixin, TestCase):
|
||||||
)
|
)
|
||||||
|
|
||||||
response = self.client.get('/app_path/', secure=True)
|
response = self.client.get('/app_path/', secure=True)
|
||||||
self.assertRedirects(response, expected_url='/app_path/login/?next=/app_path/', fetch_redirect_response=False)
|
self.assertRedirects(
|
||||||
|
response, expected_url='/app_path/admin/', fetch_redirect_response=False
|
||||||
|
)
|
||||||
|
|
||||||
|
response = self.client.get('/app_path/admin/', secure=True)
|
||||||
|
self.assertRedirects(
|
||||||
|
response,
|
||||||
|
expected_url='/app_path/admin/login/?next=/app_path/admin/',
|
||||||
|
fetch_redirect_response=False,
|
||||||
|
)
|
||||||
|
|
||||||
@override_settings(SECURE_SSL_REDIRECT=False)
|
@override_settings(SECURE_SSL_REDIRECT=False)
|
||||||
def test_create_unknown_user(self):
|
def test_create_unknown_user(self):
|
||||||
|
@ -73,7 +75,7 @@ class DjangoYnhTestCase(HtmlAssertionMixin, TestCase):
|
||||||
self.client.cookies['SSOwAuthUser'] = 'test'
|
self.client.cookies['SSOwAuthUser'] = 'test'
|
||||||
|
|
||||||
response = self.client.get(
|
response = self.client.get(
|
||||||
path='/app_path/',
|
path='/app_path/admin/',
|
||||||
HTTP_REMOTE_USER='test',
|
HTTP_REMOTE_USER='test',
|
||||||
HTTP_AUTH_USER='test',
|
HTTP_AUTH_USER='test',
|
||||||
HTTP_AUTHORIZATION='basic dGVzdDp0ZXN0MTIz',
|
HTTP_AUTHORIZATION='basic dGVzdDp0ZXN0MTIz',
|
||||||
|
@ -90,7 +92,10 @@ class DjangoYnhTestCase(HtmlAssertionMixin, TestCase):
|
||||||
self.assert_html_parts(
|
self.assert_html_parts(
|
||||||
response,
|
response,
|
||||||
parts=(
|
parts=(
|
||||||
f'<title>Site administration | django-fritzconnection v{inventory.__version__}</title>',
|
(
|
||||||
|
'<title>Site administration | django-fritzconnection'
|
||||||
|
f' v{djfritz.__version__}</title>'
|
||||||
|
),
|
||||||
'<strong>test</strong>',
|
'<strong>test</strong>',
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
|
@ -98,12 +103,11 @@ class DjangoYnhTestCase(HtmlAssertionMixin, TestCase):
|
||||||
@override_settings(SECURE_SSL_REDIRECT=False)
|
@override_settings(SECURE_SSL_REDIRECT=False)
|
||||||
def test_wrong_auth_user(self):
|
def test_wrong_auth_user(self):
|
||||||
assert User.objects.count() == 0
|
assert User.objects.count() == 0
|
||||||
assert AccessLog.objects.count() == 0
|
|
||||||
|
|
||||||
self.client.cookies['SSOwAuthUser'] = 'test'
|
self.client.cookies['SSOwAuthUser'] = 'test'
|
||||||
|
|
||||||
response = self.client.get(
|
response = self.client.get(
|
||||||
path='/app_path/',
|
path='/app_path/admin/',
|
||||||
HTTP_REMOTE_USER='test',
|
HTTP_REMOTE_USER='test',
|
||||||
HTTP_AUTH_USER='foobar', # <<< wrong user name
|
HTTP_AUTH_USER='foobar', # <<< wrong user name
|
||||||
HTTP_AUTHORIZATION='basic dGVzdDp0ZXN0MTIz',
|
HTTP_AUTHORIZATION='basic dGVzdDp0ZXN0MTIz',
|
||||||
|
@ -116,19 +120,16 @@ class DjangoYnhTestCase(HtmlAssertionMixin, TestCase):
|
||||||
assert user.is_staff is True # Set by: django_yunohost_integration
|
assert user.is_staff is True # Set by: django_yunohost_integration
|
||||||
assert user.is_superuser is False
|
assert user.is_superuser is False
|
||||||
|
|
||||||
assert AccessLog.objects.count() == 1
|
|
||||||
|
|
||||||
assert response.status_code == 403 # Forbidden
|
assert response.status_code == 403 # Forbidden
|
||||||
|
|
||||||
@override_settings(SECURE_SSL_REDIRECT=False)
|
@override_settings(SECURE_SSL_REDIRECT=False)
|
||||||
def test_wrong_cookie(self):
|
def test_wrong_cookie(self):
|
||||||
assert User.objects.count() == 0
|
assert User.objects.count() == 0
|
||||||
assert AccessLog.objects.count() == 0
|
|
||||||
|
|
||||||
self.client.cookies['SSOwAuthUser'] = 'foobar' # <<< wrong user name
|
self.client.cookies['SSOwAuthUser'] = 'foobar' # <<< wrong user name
|
||||||
|
|
||||||
response = self.client.get(
|
response = self.client.get(
|
||||||
path='/app_path/',
|
path='/app_path/admin/',
|
||||||
HTTP_REMOTE_USER='test',
|
HTTP_REMOTE_USER='test',
|
||||||
HTTP_AUTH_USER='test',
|
HTTP_AUTH_USER='test',
|
||||||
HTTP_AUTHORIZATION='basic dGVzdDp0ZXN0MTIz',
|
HTTP_AUTHORIZATION='basic dGVzdDp0ZXN0MTIz',
|
||||||
|
@ -141,8 +142,6 @@ class DjangoYnhTestCase(HtmlAssertionMixin, TestCase):
|
||||||
assert user.is_staff is True # Set by: django_yunohost_integration
|
assert user.is_staff is True # Set by: django_yunohost_integration
|
||||||
assert user.is_superuser is False
|
assert user.is_superuser is False
|
||||||
|
|
||||||
assert AccessLog.objects.count() == 1
|
|
||||||
|
|
||||||
assert response.status_code == 403 # Forbidden
|
assert response.status_code == 403 # Forbidden
|
||||||
|
|
||||||
@override_settings(SECURE_SSL_REDIRECT=False)
|
@override_settings(SECURE_SSL_REDIRECT=False)
|
||||||
|
@ -152,10 +151,12 @@ class DjangoYnhTestCase(HtmlAssertionMixin, TestCase):
|
||||||
self.client.cookies['SSOwAuthUser'] = 'test'
|
self.client.cookies['SSOwAuthUser'] = 'test'
|
||||||
|
|
||||||
response = self.client.get(
|
response = self.client.get(
|
||||||
path='/app_path/',
|
path='/app_path/admin/',
|
||||||
HTTP_REMOTE_USER='test',
|
HTTP_REMOTE_USER='test',
|
||||||
HTTP_AUTH_USER='test',
|
HTTP_AUTH_USER='test',
|
||||||
HTTP_AUTHORIZATION=generate_basic_auth(username='foobar', password='test123'), # <<< wrong user name
|
HTTP_AUTHORIZATION=generate_basic_auth(
|
||||||
|
username='foobar', password='test123'
|
||||||
|
), # <<< wrong user name
|
||||||
)
|
)
|
||||||
|
|
||||||
assert User.objects.count() == 1
|
assert User.objects.count() == 1
|
||||||
|
@ -165,6 +166,4 @@ class DjangoYnhTestCase(HtmlAssertionMixin, TestCase):
|
||||||
assert user.is_staff is True # Set by: django_yunohost_integration
|
assert user.is_staff is True # Set by: django_yunohost_integration
|
||||||
assert user.is_superuser is False
|
assert user.is_superuser is False
|
||||||
|
|
||||||
assert AccessLog.objects.count() == 1
|
|
||||||
|
|
||||||
assert response.status_code == 403 # Forbidden
|
assert response.status_code == 403 # Forbidden
|
||||||
|
|
|
@ -6,7 +6,7 @@ from pathlib import Path
|
||||||
|
|
||||||
from bx_py_utils.path import assert_is_file
|
from bx_py_utils.path import assert_is_file
|
||||||
|
|
||||||
import inventory
|
import djfritz
|
||||||
|
|
||||||
|
|
||||||
PACKAGE_ROOT = Path(__file__).parent.parent
|
PACKAGE_ROOT = Path(__file__).parent.parent
|
||||||
|
@ -21,10 +21,14 @@ def assert_file_contains_string(file_path, string):
|
||||||
|
|
||||||
|
|
||||||
def test_version():
|
def test_version():
|
||||||
version = inventory.__version__
|
version = djfritz.__version__
|
||||||
|
|
||||||
assert_file_contains_string(file_path=Path(PACKAGE_ROOT, 'pyproject.toml'), string=f'version = "{version}~ynh')
|
assert_file_contains_string(
|
||||||
assert_file_contains_string(file_path=Path(PACKAGE_ROOT, 'manifest.json'), string=f'"version": "{version}~ynh')
|
file_path=Path(PACKAGE_ROOT, 'pyproject.toml'), string=f'version = "{version}~ynh'
|
||||||
|
)
|
||||||
|
assert_file_contains_string(
|
||||||
|
file_path=Path(PACKAGE_ROOT, 'manifest.json'), string=f'"version": "{version}~ynh'
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def poetry_check_output(*args):
|
def poetry_check_output(*args):
|
||||||
|
@ -57,7 +61,10 @@ def test_requirements_txt():
|
||||||
|
|
||||||
diff = '\n'.join(
|
diff = '\n'.join(
|
||||||
difflib.unified_diff(
|
difflib.unified_diff(
|
||||||
current_content.splitlines(), output.splitlines(), fromfile=str(requirements_txt), tofile='FRESH EXPORT'
|
current_content.splitlines(),
|
||||||
|
output.splitlines(),
|
||||||
|
fromfile=str(requirements_txt),
|
||||||
|
tofile='FRESH EXPORT',
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
print(diff)
|
print(diff)
|
||||||
|
|
Loading…
Reference in a new issue