Exemple #1
0
	def test_fellow_load_state(self):
		path = "db/"
		file_name = "mydb"
		file_ = file_name+".db"
		#clean up to avoid conflict between tests
		os.remove(path+file_)
		#clear memory stores
		self.clear_stores()
		#memory
		fellow1 = Fellow("osdflkjsd", "eksdlkfjk", "774881228", "Y")
		fellow1.register()
		Person.save_state(file_name)
		#clear memory stores
		self.clear_stores()
		#memory
		Person.load_state(file_name)
		fellow = Fellow.from_phone("774881228")
		#db
		engine = create_engine("sqlite:///"+path+file_, echo=False)
		Session = sessionmaker(bind=engine)
		session = Session()
		db_fellow = session.query(Person).filter_by(phonenumber="774881228").first()
		session.close()
		#compare
		full_fellow = [fellow.first_name, fellow.last_name, fellow.phone, fellow.type_, fellow.opt_in]
		full_db_fellow = [db_fellow.firstname, db_fellow.lastname, db_fellow.phonenumber, db_fellow.role, db_fellow.optin]
		self.assertEqual(full_db_fellow, full_fellow)
Exemple #2
0
	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])
Exemple #3
0
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_print_populated_room(self):
     self.clear_stores()
     office = Office("NDO")
     Dojo.add_room(office)
     fellow = Fellow("Xone", "Ndobile", "0856443334", "y")
     fellow.register()
     office.allocate_to(fellow)
     allocations = office.allocations()
     output = Room.members(allocations)
     self.assertEqual(output, " 0856443334, NDOBILE, XONE, FELLOW\n")
 def test_print_existing_allocations_to_screen(self):
     self.clear_stores()
     office = Office("NDO2")
     Dojo.add_room(office)
     fellow = Fellow("Xone2", "Ndobile2", "0856443324", "y")
     fellow.register()
     office.allocate_to(fellow)
     allocations_ = Room.all_allocations()
     output = Room.members(allocations_, room_tag=True)
     expected_output = " NDO2-OFFICE, 0856443324, NDOBILE2, XONE2, FELLOW\n"
     self.assertEqual(output, expected_output)
 def test_print_existing_allocations_to_default_file(self):
     self.clear_stores()
     office = Office("ND2")
     Dojo.add_room(office)
     fellow = Fellow("Xne2", "Ndoile2", "0868443324", "y")
     fellow.register()
     office.allocate_to(fellow)
     allocations_ = Room.all_allocations()
     expected_output = Room.members(allocations_, room_tag=True)
     Room.to_file(expected_output)
     path = "output/"
     f = open(path + "File.txt", "r")
     output = f.read()  #"NDO2-Office, 0856443324, NDOBILE2, XONE2, FELLOW"
     f.close()
     self.assertEqual(expected_output, output)
	def test_allocate_to_new_fellow_space(self):
		office = Office("staff"+"Foin")
		fellow = Fellow("staff"+"Neritus", "staff"+"Otieno", "0788934537", "Y")
		result = len(allocations)
		office.allocate_to(fellow)
		result_1 = len(allocations)
		self.assertEqual(result+1, result_1)
	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_print_existing_allocations_to_specific_file(self):
     self.clear_stores()
     office = Office("ND88")
     Dojo.add_room(office)
     fellow = Fellow("Xne88", "Ndoile88", "086800000", "y")
     fellow.register()
     office.allocate_to(fellow)
     allocations_ = Room.all_allocations()
     expected_output = Room.members(allocations_, room_tag=True)
     file_name = office.name + "-Allocations"
     Room.to_file(expected_output, file_name)
     path = "output/"
     f = open(path + file_name + ".txt", "r")
     output = f.read()
     f.close()
     self.assertEqual(expected_output, output)
	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_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
Exemple #12
0
def get_person(phone):
    try:
        return Fellow.from_phone(phone)
    except ValueError:
        pass
    try:
        return Staff.from_phone(phone)
    except ValueError:
        raise ValueError("specifed phone is unknown")
Exemple #13
0
	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_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_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_register_new_phone(self):
     fellow = Fellow("Standard", "SKIDH", "84900874855", "Y")
     initial_person_count = len(persons_detail)
     fellow.register()
     new_person_count = len(persons_detail)
     self.assertEqual(initial_person_count + 1, new_person_count)
 def test_register_phone_exists_error(self):
     fellow = Fellow("LIOLZ", "SKIDH", "8483664855", "Y")
     fellow.register()
     fellow_1 = Staff("LIOLZ", "SKIDH", "8483664855", "Y")
     with self.assertRaises(ValueError):
         fellow_1.register()
 def test_constructor_spaced_name(self):
     fellow = Fellow("ri ck", "Dir ede", "0794 838434", "Y")
     self.assertEqual(
         [fellow.first_name, fellow.last_name, fellow.phone, fellow.opt_in],
         ["RICK", "DIREDE", "0794838434", "Y"])
 def test_has_opt_in(self):
     fellow = Fellow("Randode", "Direde", "0794838434", "N")
     self.assertEqual(fellow.opt_in, "N")
 def test_has_phone(self):
     fellow = Fellow("Randode", "Direde", "0794838434", "N")
     self.assertEqual(fellow.phone, "0794838434")
 def test_has_last_name(self):
     fellow = Fellow("Randod", "Dired", "0994838434", "Y")
     self.assertEqual(fellow.last_name, "DIRED")
 def test_has_first_name(self):
     fellow = Fellow("Rando", "Dire", "0754838434", "Y")
     self.assertEqual(fellow.first_name, "RANDO")
 def test_constructor_no_argument(self):
     with self.assertRaises(TypeError):
         fellow = Fellow()
 def test_constructor_upper(self):
     fellow = Fellow("Lolz", "Skid", "8483774855", "Y")
     self.assertEqual(
         [fellow.first_name, fellow.last_name, fellow.phone, fellow.opt_in],
         ["LOLZ", "SKID", "8483774855", "Y"])
 def test_print_existing_unallocated_to_screen(self):
     self.clear_stores()
     office = Office("NDO4")
     Dojo.add_room(office)
     fellow = Fellow("Xone4", "Ndobile4", "0856443354", "y")
     fellow.register()
     office.allocate_to(fellow)
     fellow = Fellow("Xone5", "Ndobile6", "0856443009", "n")
     fellow.register()
     office.allocate_to(fellow)
     fellow = Fellow("Xone3", "Ndobile3", "0856443344", "y")
     fellow.register()
     output = Room.all_unallocated_persons()
     expected_output = "0856443344, NDOBILE3, XONE3, FELLOW\n"
     self.assertEqual(output, expected_output)
 def test_constructor_input_too_large(self):
     with self.assertRaises(ValueError):
         fellow = Fellow(
             "Theraininspainstaysmainlyontheplainwashingawaythegrain",
             "Diredes", "0794038434", "Y")