def test_allocate_to_new_fellow_space(self): livingspace = LivingSpace('Focuspoin') fellow = Fellow("Neritus", "Otieno", "0784334220", "Y") result = len(allocations) livingspace.allocate_to(fellow) result_1 = len(allocations) self.assertEqual(result+1, result_1)
def test_livingspace_load_state(self): path = "db/" file_name = "mydb" file_ = file_name+".db" #clean up to avoid conflict between tests os.remove(path+file_) self.clear_stores() #memory livingspace1 = LivingSpace('oju5nf89') LivingSpace.add(livingspace1) LivingSpace.save_state(file_name) #db engine = create_engine("sqlite:///"+path+file_, echo=False) Session = sessionmaker(bind=engine) session = Session() db_livingspace = session.query(Room).filter_by(roomname='oju5nf89'.upper()).first() #clear memory stores self.clear_stores() #memory LivingSpace.load_state(file_name) livingspace = LivingSpace.from_name('oju5nf89') #compare full_livingspace = [livingspace.name, livingspace.capacity, livingspace.type_] full_db_livingspace = [db_livingspace.roomname, db_livingspace.roomcapacity, db_livingspace.roomtype] session.close() self.assertEqual(full_db_livingspace, full_livingspace)
def test_allocations_load_state(self): path = "db/" file_name = "mydb" file_ = file_name+".db" #clean up to avoid conflict between tests os.remove(path+file_) self.clear_stores() #memory livingspace = LivingSpace('hwan') LivingSpace.add(livingspace) fellow = Fellow("onon", "ekek", "000009", "Y") fellow.register() livingspace.allocate_to(fellow) prev_allocations = Room.all_allocations().copy() Allocation.save_state(file_name) #clear memory stores self.clear_stores() empty_allocations = Room.all_allocations().copy() #db Allocation.load_state(file_name) loaded_allocations = Room.all_allocations().copy() #compare expected_output = ["HWAN", "LIVINGSPACE", "000009"] output = [prev_allocations[0], empty_allocations, loaded_allocations[0]] self.assertEqual(output, [expected_output, [], expected_output])
def create_room(room_name, room_type): try: room_input_index = 0 while room_input_index < len(room_name): room_type_curr = room_type[room_input_index].upper() room_name_curr = room_name[room_input_index].upper() if room_type_curr == "LIVINGSPACE": livingspace = LivingSpace(room_name_curr) LivingSpace.add(livingspace) print_pretty( " A living space called %s has been successfully created." % livingspace.name) elif room_type_curr == "OFFICE": office = Office(room_name_curr) Office.add(office) print_pretty( " An office called %s has been successfully created." % office.name) else: print_pretty( " The specified room type %s, is currently not supported." % room_type_curr) room_input_index += 1 except Exception as e: print_pretty(str(e))
def test_arrogate_from_existing_fellow(self): livingspace = LivingSpace('Focs') fellow = Fellow("Erits", "Teno", "0785534224", "Y") livingspace.allocate_to(fellow) allocated_1 = livingspace.has_allocation(fellow) livingspace.arrogate_from(fellow) allocated_2 = livingspace.has_allocation(fellow) self.assertEqual([allocated_1, allocated_2], [True, False])
def test_add_living_space(self): livingspace = LivingSpace('MySpace78') initial_room_count = len(Dojo.rooms()) initial_livingspace_count = len(LivingSpace.rooms()) LivingSpace.add(livingspace) new_room_count = len(Dojo.rooms()) new_livingspace_count = len(LivingSpace.rooms()) self.assertEqual([initial_room_count+1, initial_livingspace_count+1], [new_room_count, new_livingspace_count])
def test_add_new_room(self): room = LivingSpace("hl") initial_room_count = Dojo.room_count() initial_found_state = Dojo.has_room(room) Dojo.add_room(room) new_room_count = Dojo.room_count() new_found_state = Dojo.has_room(room) self.assertEqual([new_room_count, new_found_state], [initial_room_count + 1, not initial_found_state])
def test_allocate_to_fellow_no_space(self): livingspace = LivingSpace('Focusp') with self.assertRaises(ValueError): x = 0 while (x <= 7): suffix = str(x) fellow = Fellow("Neris"+suffix, "Oten"+suffix, "078433448"+suffix,"N") livingspace.allocate_to(fellow) x += 1
def add_person(first_name, last_name, phone, type_, opt_in="N"): try: type_ = type_.upper() if type_ == "FELLOW": fellow = Fellow(first_name, last_name, phone, opt_in) fellow.register() first_name = fellow.first_name last_name = fellow.last_name type_ = fellow.type_ available_offices = Office.available() if available_offices is False: print_pretty(" There are currently no available offices.") else: selection = random.choice(list(available_offices)) office = Office(selection) office.allocate_to(fellow) print_pretty( " The fellow: %s has been allocated to the office: %s." % (fellow.last_name, office.name)) if fellow.opt_in == "Y": available_livingspaces = LivingSpace.available() if available_livingspaces is False: print_pretty( " There are currently no available living spaces.") else: selection = random.choice(list(available_livingspaces)) livingspace = LivingSpace(selection) livingspace.allocate_to(fellow) print_pretty( " The fellow: %s has been allocated to the living space: %s." % (fellow.last_name, livingspace.name)) print_pretty(" A %s: %s %s has been successfully created." % (type_, first_name, last_name)) elif type_ == "STAFF": staff = Staff(first_name, last_name, phone, opt_in) staff.register() first_name = staff.first_name last_name = staff.last_name type_ = staff.type_ available_offices = Office.available() if available_offices is False: print_pretty(" There are currently no available offices.") else: selection = random.choice(list(available_offices)) office = Office(selection) office.allocate_to(staff) print_pretty( " The staff: %s has been allocated to the office: %s." % (staff.last_name, office.name)) print_pretty(" A %s: %s %s has been successfully created." % (type_, first_name, last_name)) else: print_pretty(" %s is currently not a supported role." % type_) #print(persons_detail) except Exception as e: print_pretty(str(e))
def test_remove_living_space(self): livingspace = LivingSpace('MySpace89') LivingSpace.add(livingspace) initial_room_count = len(Dojo.rooms()) initial_livingspace_count = len(LivingSpace.rooms()) LivingSpace.remove(livingspace) new_room_count = len(Dojo.rooms()) new_livingspace_count = len(LivingSpace.rooms()) self.assertEqual([initial_room_count-1, initial_livingspace_count-1], [new_room_count, new_livingspace_count])
def test_remove_existing_room(self): room = LivingSpace("xd") Dojo.add_room(room) initial_room_count = Dojo.room_count() initial_found_state = Dojo.has_room(room) Dojo.remove_room(room) new_room_count = Dojo.room_count() new_found_state = Dojo.has_room(room) self.assertEqual([new_room_count, new_found_state], [initial_room_count - 1, not initial_found_state])
def test_available_livingspace(self): result = LivingSpace.available() livingspace = LivingSpace('MyO55e80') LivingSpace.add(livingspace) fellow = Fellow("staff"+"Njsiritus", "staff"+"Otsdeno", "0700004537", "Y") livingspace.allocate_to(fellow) fellow = Fellow("staff"+"Njsiritus", "staff"+"Otsdeno", "0700005537", "Y") livingspace.allocate_to(fellow) fellow = Fellow("staff"+"Njsiritus", "staff"+"Otsdeno", "0700006537", "Y") livingspace.allocate_to(fellow) result_2 = LivingSpace.available() fellow = Fellow("staff"+"Njsiritus", "staff"+"Otsdeno", "0700007537", "Y") livingspace.allocate_to(fellow) fellow = Fellow("staff"+"Njsiritus", "staff"+"Otsdeno", "0700008537", "Y") livingspace.allocate_to(fellow) fellow = Fellow("staff"+"Njsiritus", "staff"+"Otsdeno", "0700009537", "Y") livingspace.allocate_to(fellow) result_3 = LivingSpace.available() self.assertTrue([result, result_3, type(result_2)], [False, False, "set"])
def test_allocations_save_state(self): path = "db/" file_name = "mydb" file_ = file_name+".db" #clean up to avoid conflict between tests os.remove(path+file_) self.clear_stores() #memory livingspace = LivingSpace('hwan') LivingSpace.add(livingspace) fellow = Fellow("onon", "ekek", "000009", "Y") fellow.register() livingspace.allocate_to(fellow) Allocation.save_state(file_name) #db engine = create_engine("sqlite:///"+path+file_, echo=False) Session = sessionmaker(bind=engine) session = Session() db_allocation = session.query(Allocation).first() #compare db_output = [db_allocation.roomname, db_allocation.roomtype, db_allocation.phonenumber] self.assertEqual(Room.all_allocations()[0], db_output) session.close()
def test_notinstance_of_Office(self): livingspace = LivingSpace('Mkuru') self.assertNotIsInstance(livingspace, Office)
def test_has_name(self): livingspace = LivingSpace("Rando") self.assertEqual(livingspace.name, "RANDO")
def test_allocate_to_new_staff_space(self): livingspace = LivingSpace('Focus') staff = Staff("Neritus", "Otieno", "0784334123") with self.assertRaises(TypeError): result = livingspace.allocate_to(staff)
def test_allocate_to_existing_fellow_space(self): livingspace = LivingSpace('Focuspo') fellow = Fellow("Nerits", "Oteno", "0784334222", "N") livingspace.allocate_to(fellow) with self.assertRaises(ValueError): livingspace.allocate_to(fellow)
def test_constructor_capitalize(self): livingspace = LivingSpace("Lolz") self.assertEqual(livingspace.name, "LOLZ")
def test_isinstance_of_room(self): livingspace = LivingSpace('Focuspoint') self.assertIsInstance(livingspace, Room)
def test_constructor_negative_integer(self): livingspace = LivingSpace(-23) self.assertEqual(livingspace.name, "23")
def test_constructor_negative_float(self): livingspace = LivingSpace(-2.3) self.assertEqual(livingspace.name, "2.3")
def test_constructor_spaced_name(self): livingspace = LivingSpace("ri ck") self.assertEqual(livingspace.name, "RI_CK")
def test_constructor_name_too_large(self): with self.assertRaises(ValueError): livingspace = LivingSpace("Theraininspainstaysmainlyontheplainwashingawaythegrain")
def test_constructor_none(self): with self.assertRaises(ValueError): livingspace = LivingSpace(None)
def test_add_an_existing_living_space(self): livingspace = LivingSpace('MySpace4545') LivingSpace.add(livingspace) with self.assertRaises(ValueError): LivingSpace.add(livingspace)
def test_capacity_is_six(self): livingspace = LivingSpace("Rand") self.assertEqual(livingspace.capacity, 6)
def test_print_empty_room(self): self.clear_stores() livingspace = LivingSpace("NDO1") with self.assertRaises(Exception): output = livingspace.allocations()
def test_constructor_empty_string(self): with self.assertRaises(ValueError): livingspace = LivingSpace("")