def testloadRolesCompatibilities(self): self.assertGreater(len(GlobalRoleList.roles), 0, 'The roles have not been defined') role1 = GlobalRoleList.role_from_desc('Steward') role2 = GlobalRoleList.role_from_desc('Cook') role1.compatibilities.add(role2) role2.compatibilities.add(role1) role1 = GlobalRoleList.role_from_desc('Baker') role2 = GlobalRoleList.role_from_desc('Fisherman') role1.compatibilities.add(role2) role2.compatibilities.add(role1) self.saver.createTables() self.saver.populateTables() GlobalRoleList.clear() self.saver.loadRoles() role1 = GlobalRoleList.role_from_desc('Baker') role2 = GlobalRoleList.role_from_desc('Fisherman') self.assertTrue(role1.compatible_with(role2)) role1 = GlobalRoleList.role_from_desc('Fisherman') role2 = GlobalRoleList.role_from_desc('Steward') self.assertFalse(role1.compatible_with(role2)) role1 = GlobalRoleList.role_from_desc('Baker') role2 = GlobalRoleList.role_from_desc('Cook') self.assertFalse(role1.compatible_with(role2)) role1 = GlobalRoleList.role_from_desc('Steward') role2 = GlobalRoleList.role_from_desc('Cook') self.assertTrue(role1.compatible_with(role2))
def testInvalidLoadPopulation(self): GlobalRoleList.clear() GlobalRoleList.add_role(Role('Doctor', 'D', 10)) GlobalRoleList.add_role(Role('GP', 'G', 8)) GlobalRoleList.add_role(Role('Nurse', 'N', 10)) GlobalRoleList.add_role(Role('Cook', 'C', 7)) GlobalRoleList.add_role(Role('Reception', 'R', 5)) loader = PopulationSavingObject([], 'test_invalid_population_sheet.xls') self.assertRaises(ExcellImportExportError, loader.load)
def _loadInRolesTables(self): _c = self._connection.cursor() GlobalRoleList.clear() for row in _c.execute('SELECT * FROM Roles ORDER BY priority'): GlobalRoleList.add_role(Role(row[0], row[2], row[1])) for row in _c.execute('SELECT * FROM RolesCompatibility'): role1 = GlobalRoleList.role_from_desc(row[0]) role2 = GlobalRoleList.role_from_desc(row[1]) role1.compatibilities.add(role2)
def testloadRoles(self): self.assertGreater(len(GlobalRoleList.roles), 0, 'The roles have not been defined') self.saver.createTables() self.saver.populateTables() GlobalRoleList.clear() self.assertEqual(len(GlobalRoleList.roles), 0) self.saver.loadRoles() self.assertGreater(len(GlobalRoleList.roles), 0, 'The roles have not been repopulated') role1 = GlobalRoleList.role_from_desc('Baker') role2 = GlobalRoleList.role_from_desc('Fisherman') self.assertFalse(role1.compatible_with(role2))
def tearDown(self): GlobalRoleList.clear()
def testLoadPopulation(self): GlobalRoleList.clear() GlobalRoleList.add_role(Role('Doctor', 'D', 10)) GlobalRoleList.add_role(Role('GP', 'G', 8)) GlobalRoleList.add_role(Role('Nurse', 'N', 10)) GlobalRoleList.add_role(Role('Cook', 'C', 7)) GlobalRoleList.add_role(Role('Reception', 'R', 5)) loader = PopulationSavingObject([], 'test_population_sheet.xls') loaded_population = loader.load() self.assertEqual(len(loaded_population), 6) loaded_person = loaded_population[0] self.assertEqual(loaded_person.name, 'Mary') self.assertEqual(loaded_person.address, 'A34') self.assertEqual(loaded_person.email, 'b') self.assertEqual(loaded_person.phone_number, '122') self.assertEqual(len(loaded_person.roles()), 2) self.assertTrue(loaded_person.suitable_for_role('D')) self.assertTrue(loaded_person.suitable_for_role('N')) self.assertFalse(loaded_person.suitable_for_role('C')) loaded_person = loaded_population[1] self.assertEqual(loaded_person.name, 'Jane') self.assertEqual(loaded_person.address, 'B32') self.assertEqual(loaded_person.email, 'g') self.assertEqual(loaded_person.phone_number, '463') self.assertEqual(len(loaded_person.roles()), 1) self.assertFalse(loaded_person.suitable_for_role('D')) self.assertTrue(loaded_person.suitable_for_role('G')) self.assertFalse(loaded_person.suitable_for_role('C')) loaded_person = loaded_population[2] self.assertEqual(loaded_person.name, 'Mick') self.assertEqual(len(loaded_person.roles()), 1) self.assertFalse(loaded_person.suitable_for_role('D')) self.assertTrue(loaded_person.suitable_for_role('C')) self.assertFalse(loaded_person.suitable_for_role('G')) loaded_person = loaded_population[3] self.assertEqual(loaded_person.name, 'John') self.assertEqual(len(loaded_person.roles()), 2) self.assertTrue(loaded_person.suitable_for_role('R')) self.assertTrue(loaded_person.suitable_for_role('N')) self.assertFalse(loaded_person.suitable_for_role('D')) loaded_person = loaded_population[4] self.assertEqual(loaded_person.name, 'Gaz') self.assertEqual(len(loaded_person.roles()), 1) self.assertFalse(loaded_person.suitable_for_role('D')) self.assertFalse(loaded_person.suitable_for_role('N')) self.assertTrue(loaded_person.suitable_for_role('C')) loaded_person = loaded_population[5] self.assertEqual(loaded_person.name, 'Toby') self.assertEqual(loaded_person.address, 'C16') self.assertEqual(loaded_person.email, '') self.assertEqual(loaded_person.phone_number, '400') self.assertEqual(len(loaded_person.roles()), 2) self.assertTrue(loaded_person.suitable_for_role('D')) self.assertTrue(loaded_person.suitable_for_role('G')) self.assertFalse(loaded_person.suitable_for_role('N'))