61 lines
1.3 KiB
Python
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
|