python-checkio/IceBase/party-invitations.py

53 lines
1.4 KiB
Python
Raw Normal View History

2019-12-20 17:23:34 +01:00
class Friend:
def __init__(self, name):
self.name = name
self.invite = None
def set_invite(self, date):
self.invite = date
def show_invite(self):
if self.invite is not None:
return self.invite
return "No party..."
class Party:
def __init__(self, name):
self.name = name
self.friends = []
def add_friend(self, friend: Friend):
self.friends.append(friend)
def send_invites(self, date: str):
for friend in self.friends:
friend.set_invite("{}: {}".format(self.name, date))
def del_friend(self, friend: Friend):
self.friends.remove(friend)
if __name__ == '__main__':
# These "asserts" using only for self-checking and not necessary for auto-testing
party = Party("Midnight Pub")
nick = Friend("Nick")
john = Friend("John")
lucy = Friend("Lucy")
chuck = Friend("Chuck")
party.add_friend(nick)
party.add_friend(john)
party.add_friend(lucy)
party.send_invites("Friday, 9:00 PM")
party.del_friend(nick)
party.send_invites("Saturday, 10:00 AM")
party.add_friend(chuck)
assert john.show_invite() == "Midnight Pub: Saturday, 10:00 AM"
assert lucy.show_invite() == "Midnight Pub: Saturday, 10:00 AM"
assert nick.show_invite() == "Midnight Pub: Friday, 9:00 PM"
assert chuck.show_invite() == "No party..."
print("Coding complete? Let's try tests!")