first commit
This commit is contained in:
56
tests/test_admin.py
Normal file
56
tests/test_admin.py
Normal 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
|
||||
Reference in New Issue
Block a user