123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- # -*- encoding: utf-8 -*-
- """
- License: MIT
- Copyright (c) 2019 - present AppSeed.us
- """
-
- from logging import CRITICAL, disable
- disable(CRITICAL)
-
- urls = {
- '': (
- '/fixed_sidebar',
- '/fixed_footer',
- '/plain_page',
- '/page_403',
- '/page_404',
- '/page_500'
- ),
- '/home': (
- '/index',
- '/index2',
- '/index3'
- ),
- '/forms': (
- '/form',
- '/form_advanced',
- '/form_validation',
- '/form_wizards',
- '/form_upload',
- '/form_buttons'
- ),
- '/ui': (
- '/general_elements',
- '/media_gallery',
- '/typography',
- '/icons',
- '/glyphicons',
- '/widgets',
- '/invoice',
- '/inbox',
- '/calendar'
- ),
- '/tables': (
- '/tables',
- '/tables_dynamic'
- ),
- '/data': (
- '/chartjs',
- '/chartjs2',
- '/morisjs',
- '/echarts',
- '/other_charts'
- ),
- '/additional': (
- '/ecommerce',
- '/projects',
- '/project_detail',
- '/contacts',
- '/profile',
- '/pricing'
- )
- }
-
- free_access = {'/', '/login', '/page_403', '/page_404', '/page_500'}
-
-
- def check_pages(*pages):
- def decorator(function):
- def wrapper(user_client):
- function(user_client)
- for page in pages:
- r = user_client.get(page, follow_redirects=True)
- assert r.status_code == 200
- return wrapper
- return decorator
-
-
- def check_blueprints(*blueprints):
- def decorator(function):
- def wrapper(user_client):
- function(user_client)
- for blueprint in blueprints:
- for page in urls[blueprint]:
- r = user_client.get(blueprint + page, follow_redirects=True)
- assert r.status_code == 200
- return wrapper
- return decorator
-
- ## Base test
- # test the login system: login, user creation, logout
- # test that all pages respond with HTTP 403 if not logged in, 200 otherwise
-
-
- def test_authentication(base_client):
- for blueprint, pages in urls.items():
- for page in pages:
- page_url = blueprint + page
- expected_code = 200 if page_url in free_access else 403
- r = base_client.get(page_url, follow_redirects=True)
- assert r.status_code == expected_code
-
-
- def test_urls(user_client):
- for blueprint, pages in urls.items():
- for page in pages:
- page_url = blueprint + page
- r = user_client.get(page_url, follow_redirects=True)
- assert r.status_code == 200
- # logout and test that we cannot access anything anymore
- r = user_client.get('/logout', follow_redirects=True)
- test_authentication(user_client)
|