Created
December 21, 2011 23:48
-
-
Save gabrielfalcao/1508254 to your computer and use it in GitHub Desktop.
This file contains hidden or 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 * | |
from lettuce.django import django_url | |
from splinter.browser import Browser | |
PAGES = { | |
"the login page": "/login", | |
"the user management page": "/manage/users" | |
} | |
def page_name_is_valid(name): | |
assert PAGES.has_key(name), \ | |
'the page "%s" is not mapped in the PAGES dictionary, ' \ | |
'check if you misspelled it or add into it' % name | |
return True | |
@world.absorb | |
def go_to_page(name): | |
assert page_name_is_valid(name) | |
full_url = django_url(PAGES[name]) | |
world.browser.visit(full_url) | |
@world.absorb | |
def assert_current_page_is(name): | |
assert page_name_is_valid(name) | |
current_url = world.browser.url | |
full_url = django_url(PAGES[name]) | |
assert current_url == full_url, \ | |
'the current url is "%s" but should be "%s"' % (current_url, full_url) | |
@before.each_scenario | |
def prepare_browser(scenario): | |
world.browser = Browser() | |
@step(ur'I am at (.*)') | |
def i_am_at_some_url(step, name): | |
world.go_to_page(name) | |
@step(ur'I type the (\S+) "(.*)"') | |
def i_type_some_value_into_a_field(step, field, value): | |
browser.fill(field, value) | |
@step(ur'I try to perform the login') | |
def try_to_perform_login(step, field, value): | |
browser.find_by_css("button#submit-login").click() | |
@step(ur'it works and I am redirected to (.*)') | |
def it_works_and_im_redirected_to(step, the_expected_page): | |
world.assert_current_page_is(the_expected_page) | |
@step(ur'I log in as "(\w+)" with password "(.*)"') | |
def i_log_in_as(step, username, password): | |
world.go_to_page("the login page") | |
browser.fill("username", username) | |
browser.fill("password", password) | |
browser.find_by_css("button#submit-login").click() | |
world.assert_current_page_is("the admin page") | |
@step(ur'I click to manage users') | |
def try_to_perform_login(step, field, value): | |
browser.find_by_css("button#manage-users").click() | |
@step(ur'I am pointed out to (.*)') | |
def im_pointed_out_to(step, expected_page): | |
world.assert_current_page_is(the_expected_page) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment