def test_init_must_set_last_name_when_last_name_is_valid(): assert "Smith" == User("Bob", "Smith", "@").last_name
def test_init_must_set_id_when_id_is_specified(): id: uuid4 = uuid4() assert id == User("Bob", "Smith", "@", id).id
def test_init_must_set_first_name_when_first_name_is_valid(): assert "Bob" == User("Bob", "Smith", "@").first_name
def test_init_must_set_email_address_when_email_address_is_valid(): assert "@" == User("Bob", "Smith", "@").email_address
def test_init_must_raise_error_when_user_email_address_is_invalid(value: str): with pytest.raises(ValueError, match=f"email_address cannot be null: {value}"): User("Bob", "Smith", value)
def test_init_must_raise_error_when_last_name_is_invalid(value: str): with pytest.raises( ValueError, match=f"last_name cannot be null or whitespace: {value}"): User("Bob", value, "@")