def test_add_increases_count(db_with_3_tasks): """Test tasks.add() affect on tasks.count().""" # GIVEN a db with 3 tasks # WHEN another task is added tasks.add(Task('throw a party')) # THEN the count increases by 1 assert tasks.count() == 4
def test_unique_id_2(): """unique_id() should return an unused id.""" ids = [] ids.append(tasks.add(Task('one'))) ids.append(tasks.add(Task('two'))) ids.append(tasks.add(Task('three'))) # grab a unique id uid = tasks.unique_id() # make sure it isn't in the list of existing ids assert uid not in ids
def test_add_returns_valid_id(tasks_db): """tasks.add(<valid task>) should return an integer.""" # GIVEN an initialized tasks db # WHEN a new task is added # THEN returned task_id is of type int new_task = Task('do something') task_id = tasks.add(new_task) assert isinstance(task_id, int)
def test_added_task_has_id_set(tasks_db): """Make sure the task_id field is set by tasks.add().""" # GIVEN an initialized tasks db # AND a new task is added new_task = Task('sit in chair', owner='me', done=True) task_id = tasks.add(new_task) # WHEN task is retrieved task_from_db = tasks.get(task_id) # THEN task_id matches id field assert task_from_db.id == task_id # AND contents are equivalent (except for id) # the [:-1] syntax returns a list with all but the last element assert task_from_db[:-1] == new_task[:-1]
def test_add_raises(): """add() should raise an exception with wrong type param.""" with pytest.raises(TypeError): tasks.add(task='not a Task object')
def db_with_multi_per_owner(tasks_db, tasks_mult_per_owner): """Connected db with 9 tasks, 3 owners, all with 3 tasks.""" for t in tasks_mult_per_owner: tasks.add(t)
def db_with_3_tasks(tasks_db, tasks_just_a_few): """Connected db with 3 tasks, all unique.""" for t in tasks_just_a_few: tasks.add(t)
def test_add_c(tasks_db, c_task): """Use fixture with generated ids.""" task_id = tasks.add(c_task) t_from_db = tasks.get(task_id) assert equivalent(t_from_db, c_task)
def test_add_b(tasks_db, b_task): """Using b_task fixture, with ids.""" task_id = tasks.add(b_task) t_from_db = tasks.get(task_id) assert equivalent(t_from_db, b_task)
def test_add_a(tasks_db, a_task): """Using a_task fixture (no ids).""" task_id = tasks.add(a_task) t_from_db = tasks.get(task_id) assert equivalent(t_from_db, a_task)
import src.tasks as tasks print tasks.add(4, 6)