Example #1
0
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
Example #2
0
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
Example #3
0
    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)
Example #4
0
    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)
Example #5
0
    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)
Example #6
0
    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")
Example #7
0
    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")
Example #8
0
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))
Example #9
0
    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", "")
Example #10
0
 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)