yashaka

Untitled

Sep 3rd, 2015
903
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.39 KB | None | 0 0
  1. from selenium.webdriver.common.keys import Keys
  2. from core.conditions import empty, text, css_class, exact_text, visible, texts
  3. from core.tools import visit, s, ss
  4. from base_test import *
  5.  
  6. class TestTodoMVC(BaseTest):
  7.  
  8.     def test_tasks_life_cycle(self):
  9.  
  10.         visit("http://todomvc.com/examples/troopjs_require/#")
  11.  
  12.         add("a")
  13.  
  14.         edit("a", "a edited")
  15.  
  16.         # complete
  17.         toggle("a edited")
  18.         filter_active()
  19.         tasks.filter(visible).assure(empty)
  20.  
  21.         # create from active filter
  22.         add("b")
  23.         toggle("b")
  24.         filter_completed()
  25.         assert_visible_tasks("a edited", "b")
  26.  
  27.         # reopen from completed filter
  28.         toggle("a edited")
  29.         assert_visible_tasks("b")
  30.         filter_active()
  31.         assert_visible_tasks("a edited")
  32.         filter_all()
  33.         assert_tasks("a edited", "b")
  34.  
  35.         # clear completed
  36.         clear_completed()
  37.         assert_tasks("a edited")
  38.  
  39.         # complete all
  40.         toggle_all()
  41.         filter_active()
  42.         tasks.filter(visible).assure(empty)
  43.  
  44.         # reopen all
  45.         toggle_all()
  46.         assert_visible_tasks("a edited")
  47.  
  48.         add("c")
  49.  
  50.         # delete by editing to ''
  51.         edit("a edited", "")
  52.         filter_all()
  53.         assert_tasks("c")
  54.  
  55.         # delete
  56.         delete("c")
  57.         tasks.assure(empty)
  58.  
  59.  
  60.  
  61.  
  62. tasks = ss("#todo-list>li")
  63.  
  64. def assert_counter(counter):
  65.     s("#todo-count>strong").assure(exact_text, counter)
  66.  
  67.  
  68. def assert_tasks(*task_texts):
  69.     tasks.assure(texts, *task_texts)
  70.  
  71.  
  72. def assert_visible_tasks(*task_texts):
  73.     tasks.filter(visible).assure(texts, *task_texts)
  74.  
  75.  
  76. def add(task_name):
  77.     s("#new-todo").send_keys(task_name + Keys.ENTER)
  78.  
  79.  
  80. def edit(old_task_name, new_task_name):
  81.     tasks.find(exact_text, old_task_name).s("label").double_click()
  82.     tasks.find(css_class, "editing").s(".edit").set_value(new_task_name).press_enter()
  83.  
  84.  
  85. def toggle(task_name):
  86.     tasks.find(exact_text, task_name).s(".toggle").click()
  87.  
  88.  
  89. def delete(task_name):
  90.     tasks.find(exact_text, task_name).hover().s(".destroy").click()
  91.  
  92.  
  93. def toggle_all():
  94.     s("#toggle-all").click()
  95.  
  96.  
  97. def clear_completed():
  98.     s("#clear-completed").click()
  99.  
  100.  
  101. def filter_all():
  102.     s("[href='#/']").click()
  103.  
  104.  
  105. def filter_active():
  106.     s("[href*='active']").click()
  107.  
  108.  
  109. def filter_completed():
  110.     s("[href*='completed']").click()
Advertisement
Add Comment
Please, Sign In to add comment