def test_person(): person = Person('Debelak', 'Peter', 'M', 'Orange', '1/2/2018') assert person.last_name == 'Debelak' assert person.first_name == 'Peter' assert person.gender == 'M' assert person.favorite_color == 'Orange' assert person.birth_date == date(2018, 1, 2) assert person.is_valid() assert person.error is None
def test_formatted_people(): person1 = Person('Debelak', 'Peter', 'M', 'Light Blue', '1/1/2018') person2 = Person('Bebelak', 'Peter', 'M', 'Orange', '12/12/2018') person3 = Person('Aebelak', 'Peter', 'M', 'Orange', '1/31/2018') person4 = Person('Cebelak', 'Peter', 'M', 'Orange', '1/31/2018') people = People() people.add_person(person1) people.add_person(person2) people.add_person(person3) people.add_person(person4) formatted = formatted_people(people.sorted_by_last_name()) assert formatted[0] == \ ' Last Name | First Name | Gender | Favorite Color | Birth Date ' assert formatted[1] == \ ' Aebelak | Peter | M | Orange | 1/31/2018 ' assert formatted[2] == \ ' Bebelak | Peter | M | Orange | 12/12/2018 ' assert formatted[4] == \ ' Debelak | Peter | M | Light Blue | 1/1/2018 '
def test_missing_birth_date(): person = Person('Debelak', 'Peter', 'M', 'Orange', None) assert person.is_valid() is False assert person.error == 'Missing required field: birth_date'
def test_missing_gender(): person = Person('Debelak', 'Peter', None, 'Orange', '1/2/2018') assert person.is_valid() is False assert person.error == 'Missing required field: gender'
def test_missing_favorite_color(): person = Person('Debelak', 'Peter', 'M', '', '1/2/2018') assert person.is_valid() is False assert person.error == 'Missing required field: favorite_color'
def test_missing_first_name(): person = Person('Debelak', '', 'M', 'Orange', '1/2/2018') assert person.is_valid() is False assert person.error == 'Missing required field: first_name'
def test_missing_last_name(): person = Person(None, 'Peter', 'M', 'Orange', '1/2/2018') assert person.is_valid() is False assert person.error == 'Missing required field: last_name'
def test_invalid_gender(): person = Person('Debelak', 'Peter', 'H', 'Orange', '1/2/2018') assert person.is_valid() is False assert person.error == 'Invalid gender'
def test_non_date_date(): person = Person('Debelak', 'Peter', 'M', 'Orange', 'hello') assert person.is_valid() is False with pytest.raises(InvalidDate): person.birth_date
def test_invalid_date(): person = Person('Debelak', 'Peter', 'M', 'Orange', '2/30/2018') assert person.is_valid() is False with pytest.raises(InvalidDate): person.birth_date