Fix the feature tests.

This commit is contained in:
Dorian 2017-10-20 10:50:40 -04:00
parent 202d712893
commit 00bffe33c2
4 changed files with 27 additions and 50 deletions

View File

@ -84,7 +84,7 @@ def ui(ctx, server_host='localhost:5000', verbosity=0, test_tag='', randomize=Fa
:param randomize: Flag whether or not to randomize test order.
"""
test_command = _prepare_py_test_command(
'tests/functional',
'tests/feature',
verbosity=verbosity,
server_host=server_host,
splinter_webdriver='remote',

View File

@ -10,9 +10,11 @@ import collections
import pytest
from rookeries import database as rookeries_db
from rookeries.pages import models as page_models
from rookeries.sites import models as site_models
from tests import utils
from tests.server.test_serve_page_views import TEST_PAGE_TITLE, \
TEST_PAGE_CONTENT
TestSiteInfo = collections.namedtuple('TestSiteInfo', ['menu', 'landing_page'])
@ -74,3 +76,25 @@ def test_site(db) -> site_models.Site:
return site_models.Site(
**db.find_document({'type': site_models.Site.doc_type()}).json()['docs'][0]
)
# TODO: Refactor into a utility function and separate fixtures per test module.
@pytest.fixture(scope='module')
def test_page(db):
test_page_slug = f'test-{utils.generate_random_suffix()}'
# TODO: Should check if page exists first.
test_page_ = page_models.Page(
slug=test_page_slug,
title=TEST_PAGE_TITLE,
content=TEST_PAGE_CONTENT
)
db.create_document(doc=test_page_.to_db_json())
return page_models.Page(
**db.find_document({
'type': page_models.Page.doc_type(),
'slug': test_page_slug,
}).json()['docs'][0]
)

View File

@ -9,9 +9,7 @@ Note that [tests can not assert on the status code due to bug in selenium based
"""
import pytest
import sqlalchemy
from rookeries.pages import models as page_models
from tests import utils
TEST_PAGE_TITLE = 'License'
@ -30,28 +28,8 @@ def splinter_driver_kwargs():
}
@pytest.fixture(scope='module')
def test_page(db_engine):
session = sqlalchemy.orm.sessionmaker(bind=db_engine, autocommit=True)()
session.begin()
test_page_slug = f'test-{utils.generate_random_suffix()}'
test_page_ = session.query(page_models.Page).filter((page_models.Page.slug == test_page_slug)).first()
if not test_page_:
test_page_ = page_models.Page(slug=test_page_slug, title=TEST_PAGE_TITLE, content=TEST_PAGE_CONTENT)
session.add(test_page_)
test_page_ = session.query(page_models.Page).filter((page_models.Page.slug == test_page_slug)).first()
test_page_json = test_page_.to_json()
session.commit()
session.close()
return test_page_json
@pytest.mark.skip('FIXME once page setup figured out')
def test_basic_page_setup_returns_page_not_found_on_unknown_page(browser, api_base_uri):
def test_basic_page_setup_returns_page_not_found_on_unknown_page(browser, api_base_uri, test_page):
unknown_test_page = utils.generate_random_suffix()
browser.visit(f'{api_base_uri}/{unknown_test_page}')

View File

@ -8,12 +8,8 @@ Unit tests for testing serving of page content.
import http
from unittest import mock
import pytest
import requests
from rookeries.pages import models as page_models
from tests import utils
TEST_PAGE_TITLE = 'Testing Page'
TEST_PAGE_CONTENT = '''
# Hello World
@ -22,27 +18,6 @@ I'm a test page.
# TODO: Change these tests to be bdd style functional tests.
@pytest.fixture(scope='module')
def test_page(db):
test_page_slug = f'test-{utils.generate_random_suffix()}'
# TODO: Should check if page exists first.
test_page_ = page_models.Page(
slug=test_page_slug,
title=TEST_PAGE_TITLE,
content=TEST_PAGE_CONTENT
)
db.create_document(doc=test_page_.to_db_json())
return page_models.Page(
**db.find_document({
'type': page_models.Page.doc_type(),
'slug': test_page_slug,
}).json()['docs'][0]
)
def test_serve_page_returns_journal_entry_as_json(api_base_uri, test_page):
expected_info = {
'slug': test_page.slug,