Created
January 1, 2016 06:56
-
-
Save xiantail/580f75d750023a1c09d9 to your computer and use it in GitHub Desktop.
TDD with Python / Chapter 4
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 selenium import webdriver | |
from selenium.webdriver.common.keys import Keys | |
import unittest | |
class NewVistorTest(unittest.TestCase): | |
def setUp(self): | |
self.browser = webdriver.Firefox() | |
self.browser.implicitly_wait(3) | |
def tearDown(self): | |
self.browser.quit() | |
def test_can_start_a_list_and_retrive_it_later(self): | |
# Edith has heard about a cool new onlie to-do app. She goes | |
# to check out its homepage | |
self.browser.get('localhost:8000') | |
# She notices the page title and header mention to-do lists | |
self.assertIn("To-Do", self.browser.title) | |
header_text = self.browser.find_element_by_tag_name('h1').text | |
self.assertIn("To-Do", header_text) | |
# She is invited to enter a to-do item straight away | |
inputbox = self.browser.find_element_by_id('id_new_item') | |
self.assertEqual( | |
inputbox.get_attribute('placeholder'), | |
'Enter a to-do item' | |
) | |
# She types "Buy peacock feathers" into a text box (Edith's hobby | |
# is tying fly-fishing lures) | |
inputbox.send_keys('Buy peacock feathers') | |
# When she hits enter, the page updates, and now the page lists | |
# "1: Buy peacock feathers" as an item in a to-do list | |
inputbox.send_keys(Keys.ENTER) | |
table = self.browser.find_element_by_id('id_list_table') | |
rows = table.find_elements_by_id('tr') | |
self.assertTrue( | |
any(row.text == '1: Buy peacock feathers' for row in rows) | |
) | |
# There is still a text box inviting her to add another item. She | |
# enters "Use peacock feathers to make a fly" (Edith is very methodical) | |
self.fail('Finish the test!') | |
# The page updates again, and now shows both items on her list | |
# Edith wonders whether the site will remember her list. Then she sees | |
# that the site has generated a unique URL for -- there is some | |
# explanatory text to that effect. | |
# She visits that URL - her to-do list is still there | |
# Satisfied, she goes back to sleep | |
if __name__ == '__main__': | |
unittest.main(warnings='ignore') #8 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment