yashaka

Untitled

Feb 1st, 2017
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.57 KB | None | 0 0
  1. from selene import config
  2. from selene.support.conditions import be
  3. from selene.support.conditions import have
  4. from selene.tools import visit, s, ss, wait_to
  5.  
  6.  
  7. def test_tasks_life_cycle():
  8.     config.browser_name = 'chrome'
  9.     visit('https://todomvc4tasj.herokuapp.com/')
  10.     clear_completed_js_loaded = "return $._data($('#clear-completed').get(0), 'events').hasOwnProperty('click')"
  11.     wait_to(have.js_returned_true(clear_completed_js_loaded), config.timeout * 2)
  12.  
  13.     add('task1', 'task2', 'task3', 'task4')
  14.     tasks_should_be('task1', 'task2', 'task3', 'task4')
  15.  
  16.     destroy('task2')
  17.     toggle('task4')
  18.     clear_completed()
  19.     tasks_should_be('task1', 'task3')
  20.  
  21.     toggle_all()
  22.     clear_completed()
  23.     tasks_should_be()
  24.     # можна і так... буде працювати... але читається поганувато... тому краще окремий метод створити tasks_should_be_empty
  25.     # і в ньому і реалізацію підтюнити до should(be.empty)
  26.  
  27. tasks = ss('#todo-list li')
  28.  
  29.  
  30. def add(*texts):
  31.     for text in texts:
  32.         s('#new-todo').set(text).press_enter()
  33.  
  34.  
  35. def destroy(task_text):
  36.     tasks.element_by(have.exact_text(task_text)).click().element('.destroy').click()
  37.  
  38.  
  39. def toggle(task_text):
  40.     tasks.element_by(have.exact_text(task_text)).element('.toggle').click()
  41.  
  42.  
  43. def toggle_all():
  44.     s('#toggle-all').click()
  45.  
  46.  
  47. def clear_completed():
  48.     s('#clear-completed').click()
  49.  
  50.  
  51. def tasks_should_be(*text):
  52.     tasks.filtered_by(be.visible).should(have.exact_texts(*text))
Advertisement
Add Comment
Please, Sign In to add comment