first commit

This commit is contained in:
Mateusz Gruszczyński
2026-03-13 15:17:32 +01:00
commit 986ffb200a
91 changed files with 4423 additions and 0 deletions

56
tests/test_admin.py Normal file
View File

@@ -0,0 +1,56 @@
from app.models import AppSetting, Category, User
def test_admin_can_create_category(logged_admin, app):
response = logged_admin.post('/admin/categories', data={'key': 'pets', 'name_pl': 'Zwierzęta', 'name_en': 'Pets', 'color': 'info', 'is_active': 'y'}, follow_redirects=True)
assert response.status_code == 200
with app.app_context():
assert Category.query.filter_by(key='pets').first() is not None
def test_non_admin_forbidden(logged_user):
response = logged_user.get('/admin/')
assert response.status_code == 403
def test_admin_can_create_user(logged_admin, app):
response = logged_admin.post('/admin/users', data={
'full_name': 'New User',
'email': 'new@example.com',
'role': 'user',
'language': 'en',
'must_change_password': 'y'
}, follow_redirects=True)
assert response.status_code == 200
with app.app_context():
assert User.query.filter_by(email='new@example.com').first() is not None
def test_admin_can_update_settings_and_flags(logged_admin, app):
response = logged_admin.post('/admin/settings', data={
'registration_enabled': 'on',
'max_upload_mb': '12',
'smtp_host': 'smtp.example.com',
'smtp_port': '587',
'smtp_username': 'mailer',
'smtp_password': 'secret',
'smtp_sender': 'noreply@example.com',
'smtp_use_tls': 'on',
'company_name': 'Test Co'
}, follow_redirects=True)
assert response.status_code == 200
with app.app_context():
assert AppSetting.get('registration_enabled') == 'true'
user = User.query.filter_by(email='user@test.com').first()
user_id = user.id
response = logged_admin.post(f'/admin/users/{user_id}/toggle-password-change', follow_redirects=True)
assert response.status_code == 200
with app.app_context():
user = User.query.filter_by(email='user@test.com').first()
assert user.must_change_password is True
def test_admin_dashboard_system_info(logged_admin):
response = logged_admin.get('/admin/')
assert response.status_code == 200
assert b'Engine:' in response.data