def test_init(self): p = self._get_polina() self.assertTrue(hasattr(p, "name")) self.assertTrue(hasattr(p, "surname")) self.assertTrue(hasattr(p, "sex")) self.assertTrue(hasattr(p, "bday")) with self.assertRaises(ValueError): Person("a", "b", "c", "1990/4/12") with self.assertRaises(ValueError): Person("a", "b", "c", 1990) with self.assertRaises(ValueError): Person("a", "b", "c", [])
def test_str(self): p = self._get_polina() self.assertEqual( str(p), "Polina Gagarina, female, 29 years" ) p = Person('Ivan', 'Ivanov', 'male', date(1989, 4, 26)) self.assertEqual( str(p), "Ivan Ivanov, male, 30 years" ) self.assertEqual( Person('A', 'B', 'male', date(1989, 4, 26)).__str__(), "A B, male, 30 years" ) self.assertEqual( str(Person('Cap', 'Ter', 'male', date(1989, 4, 26))), "Cap Ter, male, 30 years" ) for c in string.printable: p.name = c + c p.surname = c self.assertEqual( str(p), f"{c + c} {c}, male, 30 years" )
def test_eq(self): p = self._get_polina() self.assertEqual(p, p) self.assertNotEqual( p, Person("Polina", "Gagarina", "female", date(1992, 4, 12))) self.assertNotEqual( p, Person("Polina", "Gagarina", "male", date(1990, 4, 12))) self.assertNotEqual( p, Person("Polina", "Mareeva", "female", date(1990, 4, 12))) self.assertNotEqual( p, Person("Nadya", "Gagarina", "female", date(1990, 4, 12))) self.assertNotEqual( p, Person("Katya", "Gagarina", "female", date(1990, 4, 12))) self.assertNotEqual( p, Person("Mark", "Sobolev", "male", date(1999, 4, 12)))
def _get_polina(): return Person("Polina", "Gagarina", "female", date(1990, 4, 12))