Hype/hypenv/lib/python3.11/site-packages/tests/integration/test_app.py

61 lines
1.3 KiB
Python

from pytest import fixture
from webtest import TestApp
from .app import create_app
@fixture
def app():
app = create_app()
return TestApp(app)
def test_app(app):
r = app.get('/')
assert r.status == '200 OK'
assert 'Welcome' in r
assert_navbar_exists(r)
assert_active(r, 'Home')
r = r.click('Latest News')
assert r.status == '200 OK'
assert 'News :: Page - 1' in r
assert_navbar_exists(r)
assert_active(r, 'Latest News')
r = r.click('Special News')
assert r.status == '200 OK'
assert 'News :: Page - 42' in r
assert_navbar_exists(r)
assert_active(r, 'Special News')
r = r.click('Home')
assert r.status == '200 OK'
assert 'Welcome' in r
assert_navbar_exists(r)
assert_active(r, 'Home')
def test_alias(app):
r = app.get('/news/1024')
assert r.status == '200 OK'
assert 'News :: Page - 1024' in r
assert_navbar_exists(r)
assert_active(r, '')
r = r.click('Back')
assert r.status == '200 OK'
assert 'Welcome' in r
assert_navbar_exists(r)
assert_active(r, 'Home')
def assert_navbar_exists(r):
assert 'Home' in r
assert 'Latest News' in r
assert 'Special News' in r
def assert_active(r, text):
assert r.pyquery('li.active > a').text().strip() == text