def getPeopleByShiftJSON(shiftFK): list = _getPeopleByShift(shiftFK) resultJSON = '{"Workers":' counter = 0 if list.count() > 0: resultJSON += '[' for shiftPerson in list: person = models.Person.query.filter_by(entityFK=shiftPerson.personFK).first() personJSON = controllers.employeeToJSON(person) if counter > 0: resultJSON += ',' resultJSON += personJSON counter += 1 resultJSON += ']' else: resultJSON += '"None"' resultJSON += '}' return resultJSON
def test__checkForDuplicateEmployee(self): # Define an Person Class testEmp = models.Person() testEmp.username = '******' testEmp.password = '******' testEmp.firstname = 'VedryPrivate' testEmp.lastname = 'BetchdakuKun' testEmp.entity = models.Entity() testEmp.entity.type = models.TYPE_EMPLOYEE # Check if there is a duplicate and it should return with false isDuplicate = controllers._checkForDuplicateEmployee(testEmp) self.assertFalse(isDuplicate) #Test employeeToJSON testEmpJSON = controllers.employeeToJSON(testEmp) resultDict = json.loads(testEmpJSON) result = controllers.registerEmployee(resultDict, self.db) resultDict = json.loads(result) self.assertEqual(resultDict['username'], testEmp.username) # Check if there is a duplicate username and should be there. isDuplicate = controllers._checkForDuplicateEmployee(testEmp) self.assertTrue(isDuplicate)
def test_registerEmployee(self): # Make emp empty to test if it gets successfully assiged as Person object emp = None # emp should be empty self.assertIsNone(emp); emp = models.Person() # Check if emp is not empty self.assertIsNotNone(emp) # Assign values to this person object emp.username = '******' emp.password = '******' emp.firstname = 'Elyse' emp.lastname = 'Goodall' emp.entity = models.Entity() emp.entity.type = models.TYPE_EMPLOYEE # addr should be empty to begin with addr = None self.assertIsNone(addr); #Create address instance addr = models.Address() # Check if addr is not empty self.assertIsNotNone(addr) # Assign values to addr object addr.address1 = '242 Lipton' addr.address2 = '' addr.address3 = '' addr.city = 'WPG' addr.province = 'MB' addr.country = 'Canada' addr.postalcode = 'R3M2X6' addr.isprimary = True # Attach the address instance to the employee emp.entity.addresses.append(addr) # Create a contact instance for phone contactP = None self.assertIsNone(contactP) contactP = models.Contact() self.assertIsNotNone(contactP) contactP.type = models.TYPE_PHONE contactP.value = '18001234567' contactP.isprimary = False emp.entity.contacts.append(contactP) # Create a contact instanace for Email contactE = None self.assertIsNone(contactE) contactE = models.Contact() self.assertIsNotNone(contactE) contactE.type = models.TYPE_EMAIL contactE.value = '*****@*****.**' contactE.isprimary = False emp.entity.contacts.append(contactE) # emp should not be None self.assertIsNotNone(emp) # Register the employee empJSON = controllers.employeeToJSON(emp) self.assertIsNotNone(empJSON) resultDict = json.loads(empJSON) result = controllers.registerEmployee(resultDict, self.db) # Check if everything successfully gets registered check = json.loads(result) found = False for key,value in check.iteritems(): if(key == 'result'): found = True self.assertEqual('True', value) emp2 = models.Person.query.filter_by(username = emp.username).first() # Get the FK emp.entityFK = emp2.entityFK # Make sure that emp2 should not be null self.assertNotEqual(emp2, None) # emp and emp2 SHOULD NOT BE THE SAME OBJECT self.assertIsNot(emp, emp2) # emp2 should be Person class since we created from emp self.assertIsInstance(emp, type(emp2), msg="emp and emp2 are not the same Person class") self.assertNotIsInstance(emp2, type('Person'), msg="emp2 is not Person class") # These values should be equal if everything correctly saved self.assertEqual(emp2.firstname, 'Elyse') self.assertEqual(emp2.lastname, 'Goodall') self.assertEqual(emp2.password, '123456') # Check the address (emp and emp2 addresses should be equal) for a1,a2 in zip(emp2.entity.addresses, emp.entity.addresses): self.assertEqual(a1.address1, a2.address1) self.assertEqual(a1.address2, a2.address2) self.assertEqual(a1.address3, a2.address3) self.assertEqual(a1.city, a2.city) self.assertEqual(a1.province, a2.province) self.assertEqual(a1.country, a2.country) self.assertEqual(a1.postalcode, a2.postalcode) self.assertEqual(a1.isprimary, a2.isprimary) # Check the contacts (emp2 and emp contacts should be equal) for c1,c2 in zip(emp2.entity.contacts, emp.entity.contacts): self.assertEqual(c1.type, c2.type) self.assertEqual(c1.value, c2.value) self.assertEqual(c1.isprimary, c2.isprimary) self.resetDB()