def test_repr(self): person = Person("Curie", "Marie", "Skłodowska") timestamp = "2019-11-14T14:31:39.629853" person._id = ObjectId("5dcd7273b35ba17779361c4e") person.created_time = datetime.fromisoformat(timestamp) value = f"_id='5dcd7273b35ba17779361c4e'," \ "given='Marie',middle='Skłodowska'," \ f"last_name='Curie',created_time='{timestamp}'" self.assertEqual(value, repr(person))
def test_repr(self): person = Person("Curie", "Marie", "Skłodowska") person.id = 1 timestamp = "2019-11-14T14:31:39.629853" person.created_time = datetime.fromisoformat(timestamp) value = f"id='1'," \ "given='Marie',middle='Skłodowska'," \ f"family='Curie',created_time='{timestamp}'" self.assertEqual(value, repr(person))
def test_repr() -> None: timestamp = "2019-11-14T14:31:39.629853" person = Person("Marie", "Skłodowska", "Curie", 1, datetime.fromisoformat(timestamp)) expected = f"id='1',given='Marie',middle='Skłodowska'," \ f"family='Curie',created_time='{timestamp}'" assert expected == repr(person)
def test_repr(self): timestamp = "2019-11-14T14:31:39.629853" person = Person(1, "Curie", "Marie", "Skłodowska", datetime.fromisoformat(timestamp)) expected = f"id='1',given='Marie',middle='Skłodowska'," \ f"family='Curie',created_time='{timestamp}'" person_repr = repr(person) self.assertEqual(expected, person_repr)
def find(self, given: Optional[str] = None, middle: Optional[str] = None, family: Optional[str] = None) -> Iterable: """ Initialize a Person """ if not (given or middle or family): raise ValueError("all arguments are empty or None") query = {} if given is not None: query["given"] = given if middle is not None: query["middle"] = middle if family is not None: query["family"] = family for p in self.collection.find(query): person = Person(p["family"], p["given"], p["middle"]) person._id = p["_id"] person.created_time = p["created_time"] yield person
def test_full_name_null_middle(self): person = Person("Curie", "Marie", None) full_name = person.full_name() self.assertEqual("Marie Curie", full_name)
def test_full_name_last_only(self): person = Person("Einstein", None, None) full_name = person.full_name() self.assertEqual("Einstein", full_name)
def test_full_name_last_only() -> None: person = Person(None, None, "Einstein") assert "Einstein" == person.full_name()
def test_full_name(self): person = Person("Curie", "Marie", "Skłodowska") full_name = person.full_name() self.assertEqual("Marie Skłodowska Curie", full_name)
def test_eq_instances_equal(self): p1 = Person("Curie", "Marie", "Skłodowska") p2 = Person("Curie", "Marie", "Skłodowska") self.assertTrue(p1 != p2) # created_time attributes are (almost certainly) different
def test_str(self): person = Person("Curie", "Marie", "Skłodowska") person_str = str(person) self.assertEqual("Marie Skłodowska Curie", person_str)
def test_eq_instances_not_equal() -> None: p1 = Person("Marie", None, "Curie") p2 = Person("Marie", "Skłodowska", "Curie") assert p1 != p2 # "!=" calls p1.__ne__(p2)
def test_init_all_args_empty(self): with self.assertRaisesRegex(ValueError, r"[Aa]rg.*[Ee]mpty"): Person("", "", "")
def test_eq_instances_are_exact_copies() -> None: p1 = Person("Marie", "Skłodowska", "Curie") p2 = copy.deepcopy(p1) assert p1 == p2 # "==" calls p1.__eq__(p2)
def test_eq_instances_equal() -> None: p1 = Person("Marie", "Skłodowska", "Curie") p2 = Person("Marie", "Skłodowska", "Curie") assert p1 != p2 # created_time attributes are (almost certainly) different
def test_init_all_args_empty() -> None: with raises(ValueError, match=r"[Aa]rg.*[Ee]mpty"): Person("", "", "")
def test_full_name_middle_only() -> None: person = Person(None, "Skłodowska", None) assert "Skłodowska" == person.full_name()
def test_full_name_first_only() -> None: person = Person("Aristotle", None, None) assert "Aristotle" == person.full_name()
def test_full_name_first_only(self): person = Person(None, "Aristotle", None) full_name = person.full_name() self.assertEqual("Aristotle", full_name)
def test_str() -> None: person = Person("Marie", "Skłodowska", "Curie") assert "Marie Skłodowska Curie" == str(person)
def test_full_name_middle_only(self): person = Person(None, None, "Skłodowska") full_name = person.full_name() self.assertEqual("Skłodowska", full_name)
def test_created_time(self): person = Person("Curie", "Marie", "Skłodowska") self.assertTrue(person.created_time <= datetime.utcnow())
def test_eq_instances_are_exact_copies(self): p1 = Person("Curie", "Marie", "Skłodowska") p2 = copy.deepcopy(p1) self.assertTrue(p1 == p2) # "==" calls p1.__eq__(p2))
def test_full_name() -> None: person = Person("Marie", "Skłodowska", "Curie") assert "Marie Skłodowska Curie" == person.full_name()
def test_eq_instances_not_equal(self): p1 = Person("Curie", "Marie", None) p2 = Person("Curie", "Marie", "Skłodowska") self.assertTrue(p1 != p2) # "!=" calls p1.__ne__(p2)
def test_init(self): person = Person("Curie", "Marie", None) self.assertEqual("Marie", person.given_name) self.assertEqual("", person.middle_name) self.assertEqual("Curie", person.family_name)
def test_init() -> None: person = Person("Marie", None, "Curie") assert "Marie" == person.given assert "" == person.middle assert "Curie" == person.family
def test_full_name_null_middle() -> None: person = Person("Marie", None, "Curie") assert "Marie Curie" == person.full_name()
def test_insert(self): person = Person(None, None, None) self.dao.insert(person) self.assertIsNotNone(person._id)
def test_created_time() -> None: person = Person("Marie", "Skłodowska", "Curie") assert person.created_time <= datetime.utcnow()