def test_get_from_hash(): eig_1 = Eig(name="eig 1", project="project 1") eig_2 = Eig(name="eig 2", project="project 2") promo = Promo(promo_number=1, eigs=[eig_1, eig_2]) done = True meeting = Meeting(eig_1=eig_1, eig_2=eig_2, done=done) hash = f"{eig_1.get_hash()}_{eig_2.get_hash()}" meeting_from_hash = Meeting.get_from_hash(meeting_hash=hash, promo=promo, done=done) assert meeting == meeting_from_hash
def get_meeting_from_redis(meeting_hash: str, done: str, promo: Promo) -> Meeting: meeting_hash = meeting_hash.decode() done = done.decode() if done == "0": done = False else: done = True return Meeting.get_from_hash(meeting_hash=meeting_hash, done=done, promo=promo)
def read_history(promo: Promo, redis_server: Redis) -> MeetingSet: meeting_hashes = redis_server.sinter( f"meeting_history:{promo.promo_number}") meetings = [] for meeting_hash in meeting_hashes: meeting_hash = meeting_hash.decode() meetings.append( Meeting.get_from_hash(meeting_hash=meeting_hash, done=True, promo=promo)) return MeetingSet(meetings=meetings)