diff options
Diffstat (limited to 'webapp/webapp/features/terrain.py')
-rw-r--r-- | webapp/webapp/features/terrain.py | 36 |
1 files changed, 34 insertions, 2 deletions
diff --git a/webapp/webapp/features/terrain.py b/webapp/webapp/features/terrain.py index ed52bf6..e3caeb2 100644 --- a/webapp/webapp/features/terrain.py +++ b/webapp/webapp/features/terrain.py @@ -1,3 +1,5 @@ +import os + from lettuce import world, before, after from splinter import Browser from fabric.api import local @@ -5,12 +7,16 @@ from fabric.context_managers import hide from django.conf import settings from django.core import management -from utils.test import remove_option_images_dir +from utils.test import (remove_option_images_dir, empty_results_dir, + create_results_dir) @before.all def set_browser(): world.browser = Browser('phantomjs') + world.fixtures_path = os.path.join(settings.PROJECT_ROOT, + 'features/fixtures') + create_results_dir() @after.all @@ -34,14 +40,40 @@ def load_fixture(fixture_name): verbosity=0) +def load_mongo_fixture(fixture_name, collection): + pollster_fixture_dir = os.path.join(settings.PROJECT_ROOT, + '../pollster/fixtures') + polls_fixture_dir = os.path.join(settings.PROJECT_ROOT, + '../polls/fixtures') + fixtures = { + 'pollsters': pollster_fixture_dir, + 'polls': polls_fixture_dir, + } + fixture_dir = fixtures[collection] + fixture_path = os.path.join(fixture_dir, fixture_name + ".json") + kwargs = { + 'db': settings.MONGO_SETTINGS['NAME'], + 'collection': collection, + 'fixture': fixture_path, + } + cmd = "mongoimport -d {db} -c {collection} --file {fixture} --jsonArray" + local(cmd.format(**kwargs)) + + @before.each_feature def before_each_feature(feature): """This is the main lettuce hook "@before.each_feature".""" drop_mongo() drop_sqlite() + empty_results_dir() if feature.name in ("Researcher adds images to options", - "Researcher can't modify poll's structure"): + "Researcher can't modify poll's structure", + "Upload .poll_result files"): load_fixture("generic_researcher") + load_fixture("generic_pollster") + load_mongo_fixture("mongo_generic_pollster", "pollsters") + load_mongo_fixture("closed_poll", "polls") + load_mongo_fixture("poll", "polls") @after.each_feature |