Skip to content

Instantly share code, notes, and snippets.

@samed-mirzayev
Created July 8, 2020 09:43
Show Gist options
  • Select an option

  • Save samed-mirzayev/f2d361ff7402434a625fcf219671a654 to your computer and use it in GitHub Desktop.

Select an option

Save samed-mirzayev/f2d361ff7402434a625fcf219671a654 to your computer and use it in GitHub Desktop.
import unittest
from models import *
from stories import *
class TestStories(unittest.TestCase):
def setUp(self):
self.phone_book = PhoneBook()
self.person_factory = Person
self.add_user_story = AddUserStory(self.phone_book, self.person_factory)
self.remove_user_story = RemoveUserStory(self.phone_book)
self.find_user_story = FindUserStory(self.phone_book)
self.list_users_story = ListUserStory(self.phone_book)
self.p1 = Person(first_name = "John", last_name = "Malkovich", phone_number = 46646464)
self.p2 = Person(first_name = "Andreas", last_name = "Iniesta", phone_number = 5343555)
def test_can_add_person(self):
self.add_user_story.run(self.p1)
self.add_user_story.run(self.p2)
self.assertIn(self.add_user_story, self.phone_book)
def test_fail_when_missing_params(self):
self.add_user_story.run(p1)
self.assertNotIn(self.add_user_story, self.phone_book)
def test_can_remove_person(self):
self.assertTrue(self.remove_user_story(first_name = "John"))
def test_can_not_remove_if_person_not_in_contacts(self):
self.assertFalse(self.remove_user_story(first_name = "Jack"))
def test_can_find_person_by_name(self):
self.assertTrue(self.find_user_story.run(keyword = 'first_name', value = 'John'))
def test_can_find_person_by_last_name(self):
self.assertTrue(self.find_user_story.run(keyword = 'last_name', value = 'Malkovich'))
def test_can_find_person_by_phone_number(self):
self.assertTrue(self.find_user_story.run(keyword = 'phone_number', value = 46646464))
def test_returns_empty_list_when_not_found(self):
self.assertEqual(self.find_user_story.run(keyword = 'first_name', value = 'Rooney'), [])
def test_sort_contacts(self):
self.add_user_story(self.p1)
self.add_user_story(self.p2)
results = self.phone_book.sort_by()
self.assertEqual(results, [self.p2, self.p1])
def test_list_users(self):
self.add_user_story(self.p1)
self.add_user_story(self.p2)
results = self.list_users_story(keyword = "show_list")
self.assertEqual(results, [self.p1, self.p2])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment