diff --git a/.dockerignore b/.dockerignore index bdc3576..6b95291 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,3 +1,10 @@ .git +.cache node_modules .circleci +Makefile +docker-compose.yml +Dockerfile +.docker-repository.yml +.gitignore +scripts diff --git a/tasks/server.py b/tasks/server.py index 373615c..c5e291f 100644 --- a/tasks/server.py +++ b/tasks/server.py @@ -31,7 +31,7 @@ def prepare_assets(ctx): @inv.task def wait(ctx, timeout=10): - inv.run(f'dockerize -wait http://rookeries:5000 -timeout {timeout}s') + inv.run(f'dockerize -wait http://rookeries:5000/status -timeout {timeout}s') @inv.task(prepare_assets) diff --git a/tests/functional/test_basic_setup.py b/tests/functional/test_basic_setup.py index a639d2b..a102943 100644 --- a/tests/functional/test_basic_setup.py +++ b/tests/functional/test_basic_setup.py @@ -8,7 +8,9 @@ Unit tests for testing serving of page content. import pytest import sqlalchemy -from rookeries.pages import models +from rookeries.pages import models as page_models +from rookeries.sites import models as site_models +from tests import utils TEST_PAGE_TITLE = 'License' TEST_PAGE_SLUG = 'license' @@ -28,30 +30,44 @@ def splinter_driver_kwargs(): # TODO: Change these tests to be bdd style functional tests. +@pytest.fixture(scope='module') +def test_site(db_engine): + site = utils.generate_test_site() + utils.save_test_site_in_db(db_engine, site) + return site + @pytest.fixture(scope='module') -def test_page(db_engine): +def test_page(db_engine, test_site): session = sqlalchemy.orm.sessionmaker(bind=db_engine, autocommit=True)() session.begin() - test_page_ = session.query(models.Page).filter_by(slug=TEST_PAGE_SLUG).first() + + test_page_site = session.query(site_models.Site).filter_by(name=test_site.site_name).first() + if not test_page_site: + raise ValueError(f'Expected "{test_site.site_name}" to be present before test.') + + test_page_ = session.query(page_models.Page).filter( + (page_models.Page.site == test_page_site) & (page_models.Page.slug == TEST_PAGE_SLUG) + ).first() + if not test_page_: - test_page_ = models.Page(slug=TEST_PAGE_SLUG, title=TEST_PAGE_TITLE, content=TEST_PAGE_CONTENT) + test_page_ = page_models.Page(slug=TEST_PAGE_SLUG, title=TEST_PAGE_TITLE, content=TEST_PAGE_CONTENT) + test_page_.site = test_page_site session.add(test_page_) - test_page_ = session.query(models.Page).filter_by(slug=TEST_PAGE_SLUG).first() + + test_page_ = session.query(page_models.Page).filter( + (page_models.Page.site == test_page_site) & (page_models.Page.slug == TEST_PAGE_SLUG) + ).first() + test_page_json = test_page_.to_json() session.commit() session.close() return test_page_json -def test_basic_site_setup_on_test_site(browser, api_base_uri, test_page): - browser.visit(f'{api_base_uri}') - assert browser.title == 'Rookeries' - - -@pytest.mark.skip('Test needs redo based on new page to site setup.') -def test_basic_page_setup_on_test_site(browser, api_base_uri, test_page): - browser.visit(f'{api_base_uri}/{TEST_PAGE_SLUG}') +@pytest.skip.mark('FIXME once page setup figured out') +def test_basic_page_setup_on_test_site(browser, api_base_uri, test_page, test_site): + browser.visit(f'{api_base_uri}/proxy/{test_site.site_name}/{test_page["slug"]}') assert browser.title == 'Rookeries' page_title = browser.find_by_css('h1')[2]