Created
October 1, 2013 15:22
-
-
Save agamdua/6780163 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
from lettuce import before, after, world | |
from splinter.browser import Browser | |
from django.test.utils import setup_test_environment, teardown_test_environment | |
from django.core.management import call_command | |
from django.db import connection | |
from django.conf import settings | |
from django.test.simple import DjangoTestSuiteRunner | |
from django.contrib.auth.models import User | |
import logging | |
@before.harvest | |
def initial_setup(server): | |
logging.info("Setting up a test database ...\n") | |
world.test_runner = DjangoTestSuiteRunner(interactive=False) | |
# Setup environment. | |
world.test_runner.setup_test_environment() | |
# Create Base DB | |
world.test_db = world.test_runner.setup_databases() | |
call_command('syncdb', interactive=False, verbosity=0) | |
call_command('flush', interactive=False, verbosity=0) | |
call_command('migrate', interactive=False, verbosity=0) | |
call_command('loaddata', 'all', verbosity=0) | |
setup_test_environment() | |
world.browser = Browser('firefox') | |
@before.each_scenario | |
def reset_data(scenario): | |
# Clean up django. | |
call_command('flush', interactive=False, verbosity=0) | |
call_command('loaddata', 'emails/features/emails_fixture.json', verbosity=0) | |
call_command('loaddata', 'websites/features/websites_fixture.json', verbosity=0) | |
testuser_01 = User.objects.create_user( | |
username='testuser01@example.com', | |
password='testuser01@example.com', | |
email='testuser01@example.com' | |
) | |
testuser_01.is_active = True | |
testuser_01.save() | |
@before.each_feature | |
def before_each_feature(feature): | |
logging.info("Flusing db ... \n") | |
call_command('flush', interactive=False, verbosity=0) | |
@after.all | |
def after_all(total): | |
logging.info("Destroy test database ...\n") | |
world.browser.quit() | |
# Destroy database. | |
world.test_runner.teardown_databases(world.test_db) | |
# Tear Down the test environment. | |
world.test_runner.teardown_test_environment() | |
@world.absorb | |
def log_in(): | |
world.browser.fill('username', 'testuser01@example.com') | |
[b for b in world.browser.find_by_tag('button')\ | |
if 'Login' in b.text][0].click() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment