def update_member(member_id): """ Updates a member on a team """ content = request.json try: if content["type"] == "manager": member1 = Manager(content['f_name'], content['l_name'], content['address'], content['phone'], content['position'], content['salary'], content["type"]) member1.member_id = member_id member_mgr.update(member1) response = app.response_class( response="ok", status=200 ) return response elif content["type"] == "player": member1 = Player(content['f_name'], content['l_name'], content['address'], content['phone'], content['position'], content['jersey_number'], content['wage'], content["type"]) member1.member_id = member_id member_mgr.update(member1) response = app.response_class( response="ok", status=200 ) return response except KeyError: print("Wrong JSON format") except ValueError as e: response = app.response_class( response=str(e), status=400 ) return response
def add_member(): """ Adds a member to a team """ content = request.json try: if content['type'] == 'manager': member1 = Manager(content['f_name'], content['l_name'], content['address'], content['phone'], content['position'], content['salary'], content['type']) num = member_mgr.add_member(member1) response = app.response_class( response="New member ID: %s" % (str(num)), status=200 ) elif content['type'] == 'player': member1 = Player(content['f_name'], content['l_name'], content['address'], content['phone'], content['position'], content['jersey_number'], content['wage'], content["type"]) num = member_mgr.add_member(member1) response = app.response_class( response="New member ID: %s" % (str(num)), status=200 ) else: raise ValueError('JSON object invalid') except ValueError as e: response = app.response_class( response=str(e), status=400 ) return response
def test_get_member(self): """ 030A - valid Soccer Team member return by id """ manager = Manager('M2.F NAME', 'M2.L NAME', 'M2.ADDR', 'M2.PHONE', 'M2.POSITION', 60000, "manager") player = Player('P1.F NAME', 'P1.L NAME', 'P1.ADDR', 'P1.PHONE', 'P1.POSITION', 41, 50.1, 'player') id = self.member_mgr.add_member(manager) temp_student = self.member_mgr.get_member(id) self.assertEqual(manager.member_id, temp_student.member_id) id = self.member_mgr.add_member(player) temp_student = self.member_mgr.get_member(id) self.assertEqual(player.member_id, temp_student.member_id)
def test_add_member(self): """ 020A - Successfully add member to soccer team """ manager = Manager('M2.F NAME', 'M2.L NAME', 'M2.ADDR', 'M2.PHONE', 'M2.POSITION', 60000, "manager") player = Player('P1.F NAME', 'P1.L NAME', 'P1.ADDR', 'P1.PHONE', 'P1.POSITION', 41, 50.1, 'player') self.member_mgr.add_member(manager) all_points = self.member_mgr.get_team_members() self.assertEqual(len(all_points), 1) self.member_mgr.add_member(player) all_points = self.member_mgr.get_team_members() self.assertEqual(len(all_points), 2)
def test_get_team_members(self): """ 040A - Successful Soccer Team List Member Retrieval """ manager = Manager('M2.F NAME', 'M2.L NAME', 'M2.ADDR', 'M2.PHONE', 'M2.POSITION', 60000, "manager") player = Player('P1.F NAME', 'P1.L NAME', 'P1.ADDR', 'P1.PHONE', 'P1.POSITION', 41, 50.1, 'player') members = self.member_mgr.get_team_members() self.assertEqual(len(members), 0) self.member_mgr.add_member(manager) self.member_mgr.add_member(player) students = self.member_mgr.get_team_members() self.assertEqual(len(students), 2)
def test_update_member(self): """ 060A - Successfully update to member in soccer team """ manager = Manager('M1.F NAME', 'M2.L NAME', 'M2.ADDR', 'M2.PHONE', 'M2.POSITION', 60000, "manager") manager2 = Manager('M2.F NAME', 'M2.L NAME', 'M2.ADDR', 'M2.PHONE', 'M2.POSITION', 60000, "manager") manager2.member_id = 1 self.assertEqual(len(self.member_mgr.get_team_members()), 0, "There should be no members in the list") id_m = self.member_mgr.add_member(manager) initial_details = manager.get_details() self.assertEqual(self.member_mgr.get_member(id_m).get_details(), initial_details, "Member details should match") self.member_mgr.update(manager2) self.assertNotEqual(self.member_mgr.get_member(1).get_details(), initial_details, "Member details should match") self.assertEqual(self.member_mgr.get_member(1).get_details(), manager2.get_details(), "Member details should match")
def test_delete_member(self): """ 070A - Successfully delete member in soccer team""" manager = Manager('M2.F NAME', 'M2.L NAME', 'M2.ADDR', 'M2.PHONE', 'M2.POSITION', 60000, "manager") player = Player('P1.F NAME', 'P1.L NAME', 'P1.ADDR', 'P1.PHONE', 'P1.POSITION', 41, 50.1, 'player') self.assertEqual(len(self.member_mgr.get_team_members()), 0, "There should be no members in the list") self.member_mgr.add_member(player) self.assertEqual(len(self.member_mgr.get_team_members()), 1, "There should be 1 member in the list") self.member_mgr.delete(player.member_id) self.assertEqual(len(self.member_mgr.get_team_members()), 0, "There should be no members in the list") """ Manager delete """ self.assertEqual(len(self.member_mgr.get_team_members()), 0, "There should be no members in the list") self.member_mgr.add_member(manager) self.assertEqual(len(self.member_mgr.get_team_members()), 1, "There should be 1 member in the list") self.member_mgr.delete(manager.member_id) self.assertEqual(len(self.member_mgr.get_team_members()), 0, "There should be no members in the list")
class TestManager(TestCase): """ Unit Tests for the Manager Class """ # This mocks the builtin file open method in python always return '1' for the file data (we don't care # since we are mocking the csv reader as well. NO_ID = 0 TEST_F_NAME = 'TEST BOB' TEST_L_NAME = 'TEST SMITH' TEST_ADDRESS = 'TEST STREET' TEST_PHONE = 'TEST 6041234521' TEST_MNGR_POSITION = 'TEST MANAGER POSITION' TEST_SALARY = 50000 @patch('builtins.open', mock_open(read_data='1')) def setUp(self): """ Creates a test fixture before each test method is run """ self.logPoint() self.test_manager = Manager(self.NO_ID, self.TEST_F_NAME, self.TEST_L_NAME, self.TEST_ADDRESS, self.TEST_PHONE, self.TEST_MNGR_POSITION, self.TEST_SALARY) def test_manager(self): """ 010A - Valid Construction of the manager """ self.assertIsNotNone(self.test_manager, "Test readings must be defined") def test_invalid_temperature_sensor_parameter(self): """ 010B - Invalid Construction of the manager """ #Must reject an undefined Manager parameters with self.assertRaises(ValueError): Manager(None, "Matt", "Lam", "Address", "911", "position", 99999) with self.assertRaises(ValueError): Manager(1, None, "Lam", "Address", "911", "position", 99999) with self.assertRaises(ValueError): Manager(1, "Matt", None, "Address", "911", "position", 99999) with self.assertRaises(ValueError): Manager(1, "Matt", "Lam", None, "911", "position", 99999) with self.assertRaises(ValueError): Manager(1, "Matt", "Lam", "Address", None, "position", 99999) with self.assertRaises(ValueError): Manager(1, "Matt", "Lam", "Address", "911", None, 99999) with self.assertRaises(ValueError): Manager(1, "Matt", "Lam", "Address", "911", "position", None) #Must reject an empty Manager parameters with self.assertRaises(ValueError): Manager("", "Matt", "Lam", "Address", "911", "position", 99999) with self.assertRaises(ValueError): Manager(1, "", "Lam", "Address", "911", "position", 99999) with self.assertRaises(ValueError): Manager(1, "Matt", "", "Address", "911", "position", 99999) with self.assertRaises(ValueError): Manager(1, "Matt", "Lam", "", "911", "position", 99999) with self.assertRaises(ValueError): Manager(1, "Matt", "Lam", "Address", "", "position", 99999) with self.assertRaises(ValueError): Manager(1, "Matt", "Lam", "Address", "911", "", 99999) with self.assertRaises(ValueError): Manager(1, "Matt", "Lam", "Address", "911", "position", "") def test_get_id(self): """ 020A - Valid Manager Id return """ self.assertEqual(self.test_manager.get_id(), self.NO_ID) def test_set_id(self): """ 030A - Valid Manager Id Change """ test_id = 5 self.test_manager.set_id(test_id) self.assertEqual(self.test_manager.get_id(), test_id) self.test_manager.set_id(self.NO_ID) self.assertEqual(self.test_manager.get_id(), self.NO_ID) def test_get_first_name(self): """ 040A - Valid Manager First Name return """ self.assertEqual(self.test_manager.get_first_name(), self.TEST_F_NAME) def test_get_last_name(self): """ 050A - Valid Manager Last Name return """ self.assertEqual(self.test_manager.get_last_name(), self.TEST_L_NAME) def test_get_address(self): """ 060A - Valid Manager Address return """ self.assertEqual(self.test_manager.get_address(), self.TEST_ADDRESS) def test_get_phone_number(self): """ 070A - Valid Manager Phone return """ self.assertEqual(self.test_manager.get_phone_number(), self.TEST_PHONE) def test_get_manager_position(self): """ 080A - Valid Manager Position return """ self.assertEqual(self.test_manager.get_manager_position(), self.TEST_MNGR_POSITION) def test_salary(self): """ 090A - Valid Manager Salary return """ self.assertEqual(self.test_manager.get_salary(), self.TEST_SALARY) def test_to_dict(self): """ 10A - Valid Dictionary Return """ dict = {} dict['id'] = self.test_manager.get_id() dict['f_name'] = self.TEST_F_NAME dict['l_name'] = self.TEST_L_NAME dict['address'] = self.TEST_ADDRESS dict['phone'] = self.TEST_PHONE dict['manager_position'] = self.TEST_MNGR_POSITION dict['salary'] = self.TEST_SALARY dict['type'] = self.test_manager.get_type() self.assertEqual(dict, self.test_manager.to_dict(), 'Manager Dictionary must be the same') def tearDown(self): """ Prints a log point when test is finished """ self.logPoint() def logPoint(self): """ Utility function used for module functions and class methods """ current_test = self.id().split('.')[-1] calling_function = inspect.stack()[1][3] print('in %s - %s()' % (current_test, calling_function))
def test_invalid_temperature_sensor_parameter(self): """ 010B - Invalid Construction of the manager """ #Must reject an undefined Manager parameters with self.assertRaises(ValueError): Manager(None, "Matt", "Lam", "Address", "911", "position", 99999) with self.assertRaises(ValueError): Manager(1, None, "Lam", "Address", "911", "position", 99999) with self.assertRaises(ValueError): Manager(1, "Matt", None, "Address", "911", "position", 99999) with self.assertRaises(ValueError): Manager(1, "Matt", "Lam", None, "911", "position", 99999) with self.assertRaises(ValueError): Manager(1, "Matt", "Lam", "Address", None, "position", 99999) with self.assertRaises(ValueError): Manager(1, "Matt", "Lam", "Address", "911", None, 99999) with self.assertRaises(ValueError): Manager(1, "Matt", "Lam", "Address", "911", "position", None) #Must reject an empty Manager parameters with self.assertRaises(ValueError): Manager("", "Matt", "Lam", "Address", "911", "position", 99999) with self.assertRaises(ValueError): Manager(1, "", "Lam", "Address", "911", "position", 99999) with self.assertRaises(ValueError): Manager(1, "Matt", "", "Address", "911", "position", 99999) with self.assertRaises(ValueError): Manager(1, "Matt", "Lam", "", "911", "position", 99999) with self.assertRaises(ValueError): Manager(1, "Matt", "Lam", "Address", "", "position", 99999) with self.assertRaises(ValueError): Manager(1, "Matt", "Lam", "Address", "911", "", 99999) with self.assertRaises(ValueError): Manager(1, "Matt", "Lam", "Address", "911", "position", "")
def setUp(self): """ Creates a test fixture before each test method is run """ self.logPoint() self.test_manager = Manager(self.NO_ID, self.TEST_F_NAME, self.TEST_L_NAME, self.TEST_ADDRESS, self.TEST_PHONE, self.TEST_MNGR_POSITION, self.TEST_SALARY)