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. :param randomize: Flag whether or not to randomize test order.
""" """
test_command = _prepare_py_test_command( test_command = _prepare_py_test_command(
'tests/functional', 'tests/feature',
verbosity=verbosity, verbosity=verbosity,
server_host=server_host, server_host=server_host,
splinter_webdriver='remote', splinter_webdriver='remote',

View File

@ -10,9 +10,11 @@ import collections
import pytest import pytest
from rookeries import database as rookeries_db from rookeries import database as rookeries_db
from rookeries.pages import models as page_models
from rookeries.sites import models as site_models from rookeries.sites import models as site_models
from tests import utils 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']) TestSiteInfo = collections.namedtuple('TestSiteInfo', ['menu', 'landing_page'])
@ -74,3 +76,25 @@ def test_site(db) -> site_models.Site:
return site_models.Site( return site_models.Site(
**db.find_document({'type': site_models.Site.doc_type()}).json()['docs'][0] **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 pytest
import sqlalchemy
from rookeries.pages import models as page_models
from tests import utils from tests import utils
TEST_PAGE_TITLE = 'License' 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') @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() unknown_test_page = utils.generate_random_suffix()
browser.visit(f'{api_base_uri}/{unknown_test_page}') 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 import http
from unittest import mock from unittest import mock
import pytest
import requests import requests
from rookeries.pages import models as page_models
from tests import utils
TEST_PAGE_TITLE = 'Testing Page' TEST_PAGE_TITLE = 'Testing Page'
TEST_PAGE_CONTENT = ''' TEST_PAGE_CONTENT = '''
# Hello World # Hello World
@ -22,27 +18,6 @@ I'm a test page.
# TODO: Change these tests to be bdd style functional tests. # 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): def test_serve_page_returns_journal_entry_as_json(api_base_uri, test_page):
expected_info = { expected_info = {
'slug': test_page.slug, 'slug': test_page.slug,