示例#1
0
    def test_duplicate_seminar_different_convenor(self):
        system = EMS()
        user = system.get_user('4119998')
        seminar = (1,1,'Test Seminar',4119993,'Testing','2018-12-10 22:00:00',\
        'UNSW','2019-01-01 22:00:00','2019-01-30 22:00:00','2018-12-01 22:00:00',1,100,2)
        dbInserter.insert_Seminar(seminar)
        session = (1,'Hi','Tommy','Hi',50,0,1,1)
        dbInserter.insert_Session(session)
        session = (2,'Bye','Tommy','Bye',50,0,1,1)
        dbInserter.insert_Session(session)

        seminar = system.create_seminar(user, 'Test','tested',\
        '2018-12-10 22:00:00','UNSW Law Library','2019-01-01 22:00:00','2019-01-30 22:00:00',\
        '2018-12-1 22:00:00',1)

        self.assertTrue(seminar, 1)

        self.assertEqual(system.create_session(seminar, 'Hi','Hi','Tommy',50), 1)
        self.assertEqual(system.create_session(seminar, 'Bye','Bye','Tommy',50), 1)
        self.assertTrue(len(seminar.sessions) == 2)
        self.assertEqual(system.add_seminar(seminar), 1)
        self.assertEqual(system.add_sessions(seminar), 1)

        seminar_list = dbHandler.select_all_products("Seminar")
        session_list = dbHandler.select_all_products("Session")
        self.assertTrue(len(seminar_list) == 2)
        self.assertTrue(len(session_list) == 4)
        sem1 = (2,1,'Test',4119998,'tested','2018-12-10 22:00:00','UNSW Law Library',\
        '2019-01-01 22:00:00','2019-01-30 22:00:00','2018-12-01 22:00:00',1,100,2)
        self.assertEqual(seminar_list[1], sem1)
        session3 = (3,'Hi','Tommy','Hi',50,0,2,1)
        session4 = (4,'Bye','Tommy','Bye',50,0,2,1)
        self.assertEqual(session_list[2], session3)
        self.assertEqual(session_list[3], session4)
示例#2
0
    def test_successful_create_seminar(self):
        system = EMS()
        user = system.get_user('4119993')

        sem = (1,1,'Test',4119993,'Testing','2018-12-10 22:00:00',\
        'UNSW','2019-01-01 22:00:00','2019-01-30 22:00:00','2018-12-01 22:00:00',1,100,2)
        session1 = (1,'Hi','Hi','Hi',50,1,1,1)
        session2 = (2,'Bye','Bye','Bye',50,1,1,1)

        seminar = system.create_seminar(user, 'Test','Testing',\
        '2018-12-10 22:00:00','UNSW','2019-01-01 22:00:00','2019-01-30 22:00:00',\
        '2018-12-01 22:00:00',1)

        self.assertEqual(system.create_session(seminar, 'Hi','Hi','Hi', 50), 1)
        self.assertEqual(system.create_session(seminar, 'Bye','Bye','Bye',50), 1)
        self.assertTrue(len(seminar.sessions) == 2)
        self.assertEqual(system.add_seminar(seminar), 1)
        self.assertEqual(system.add_sessions(seminar), 1)

        seminar_list = dbHandler.select_all_products("Seminar")
        session_list = dbHandler.select_all_products("Session")
        self.assertTrue(seminar_list != [])
        self.assertTrue(session_list != [])
        self.assertEqual(seminar_list[0], sem)
        self.assertEqual(session_list[0], session1)
        self.assertEqual(session_list[1], session2)
示例#3
0
    def test_invalid_num_sessions(self):
        system = EMS()
        user = system.get_user('4119993')

        seminar = system.create_seminar(user, 'Test','Testing',\
        '2018-12-10 22:00:00','UNSW','2019-01-01 22:00:00','2019-01-30 22:00:00',\
        '2018-12-1 22:00:00',1)

        self.assertEqual(system.create_session(seminar, 'Hi','Hi','Hi', 50), 1)
        self.assertTrue(len(seminar.sessions) == 1)
        self.assertEqual(system.add_seminar(seminar), 0)

        seminar_list = dbHandler.select_all_products("Seminar")
        session_list = dbHandler.select_all_products("Session")
        self.assertTrue(seminar_list == [])
        self.assertTrue(session_list == [])
示例#4
0
 def events_list(self, event_type):
     """
     Produces a list of all events regradless of the status
     Input: event_type(string)
     Output: List(event)
     """
     events = dbHandler.select_all_products(event_type)
     eventList = []
     for event in events:
         eventList.append(self.converter(event_type, event))
     return eventList
示例#5
0
    def test_duplicate_seminar(self):
        system = EMS()
        user = system.get_user('4119993')
        seminar = (1,1,'Test Seminar',4119993,'Testing','2018-12-10 22:00:00','UNSW','2019-01-01 22:00:00','2019-01-30 22:00:00','2018-12-1 22:00:00',1,100,2)
        dbInserter.insert_Seminar(seminar)
        session = (1,'Hi','Tommy','Hi',50,1,1,1)
        dbInserter.insert_Session(session)
        session = (2,'Bye','Tommy','Bye',50,1,1,1)
        dbInserter.insert_Session(session)

        seminar = system.create_seminar(user, 'Test','tested',\
        '2018-12-10 22:00:00','UNSW Law Library','2019-01-01 22:00:00','2019-01-30 22:00:00',\
        '2018-12-1 22:00:00',1)

        self.assertTrue(seminar, 0)

        seminar_list = dbHandler.select_all_products("Seminar")
        session_list = dbHandler.select_all_products("Session")
        self.assertTrue(len(seminar_list) == 1)
        self.assertTrue(len(session_list) == 2)
示例#6
0
 def add_user(self, name, zID, email, password, role):
     """
     Adds Users
     Input: {name, email, password, role}->string, {zID}->int
     Output: int
     """
     user_list = dbHandler.select_all_products('User')
     for user in user_list:
         if email in user:
             return 0
     user = (name, zID, email, password, role)
     dbInserter.insert_User(user)
     return 1
示例#7
0
    def test_active_register_seminar(self):
        system = EMS()
        user = system.get_user('6119988')
        date_format = "%Y-%m-%d %H:%M:%S"
        yesterday = str(datetime.strftime(datetime.now() - timedelta(1), date_format))
        tomorrow = str(datetime.strftime(datetime.now() + timedelta(1), date_format))
        seminar = (1,1,'Test Seminar',4119993,'Testing','2018-12-10 22:00:00','UNSW',yesterday,tomorrow,'2018-12-1 22:00:00',1,100,0)
        dbInserter.insert_Seminar(seminar)
        session = (1,'Hi','Tommy','Hi',50,0,1,1)
        dbInserter.insert_Session(session)
        session = (2,'Bye','Tommy','Bye',50,0,1,1)
        dbInserter.insert_Session(session)

        test_sess = system.get_event('Session', 1)

        with pytest.raises(Exception) as e_info:
            updated = system.update_attendees('register', test_sess, 'Session', user.email)

        seminar_registration = dbHandler.select_all_products("User_Seminar")
        self.assertEqual(seminar_registration, [])
        session_registration = dbHandler.select_all_products("User_Session")
        self.assertEqual(session_registration, [])
示例#8
0
    def test_successful_register_seminar(self):
        system = EMS()
        user = system.get_user('6119988')
        seminar = (1,1,'Test Seminar',4119993,'Testing','2018-12-10 22:00:00','UNSW','2019-01-01 22:00:00','2019-01-30 22:00:00','2018-12-1 22:00:00',1,100,0)
        dbInserter.insert_Seminar(seminar)
        session = (1,'Hi','Tommy','Hi',50,0,1,1)
        dbInserter.insert_Session(session)
        session = (2,'Bye','Tommy','Bye',50,0,1,1)
        dbInserter.insert_Session(session)

        test_sess = system.get_event('Session', 1)

        self.assertTrue(system.update_attendees('register', test_sess, 'Session', user.email) != 0)
        test_sess = system.get_event('Session',1)
        self.assertEqual(test_sess.noAttendees, 1)
        session1 = (1,'Hi','Tommy','Hi',50,1,1,1)
        session_list = dbHandler.select_all_products("Session")
        self.assertEqual(session_list[0], session1)

        seminar_registration = dbHandler.select_all_products("User_Seminar")
        self.assertEqual(seminar_registration[0], ('*****@*****.**',1,1))
        session_registration = dbHandler.select_all_products("User_Session")
        self.assertEqual(session_registration[0], ('*****@*****.**',1,1,1))
示例#9
0
 def add_sessions(self, seminar):
     """
     Creates a session entry in the database
     Input: {seminar}->seminar object
     Output: N/A
     """
     SessionID = len(dbHandler.select_all_products('Session'))
     for session in seminar.sessions:
         SessionID += 1
         data = (SessionID, session.topic, session.presenter, session.detail,\
         session.capacity, session.noAttendees, seminar.event_id, session.status)
         dbInserter.insert_Session(data)
         self.update_attendees('register', session, "Session",
                               session.presenter)
     return 1
示例#10
0
    def createCourse(self, user, name, detail, deregister, capacity, venue,
                     start_date, end_date, early_bird, register_fee):
        """
        Creates a course entry in the database
        Input: {user}->user object, {name, detail, venue, deregister,
        start_date, end_date}->string, {capacity}->int
        Output: boolean value to confirm success or failure
        """
        if isinstance(start_date, str):
            date_format = "%Y-%m-%d %H:%M:%S"
            start_date = datetime.strptime(start_date, date_format)
            end_date = datetime.strptime(end_date, date_format)
            deregister = datetime.strptime(deregister, date_format)
            early_bird = datetime.strptime(Early_Bird, date_format)
        if capacity < 1:
            raise capacityError("The capacity must at least be 1.")
        elif datetime.now() > start_date:
            raise startDateError(
                "The start date must before the current date.")
        elif early_bird > deregister:
            raise EarlyBirdError(
                "The early bird period must be before the deregister period.")
        elif end_date < start_date:
            raise periodError(
                period, "The start date must before or equal to the end date.")
        elif start_date < deregister:
            raise deregisterError(
                d_period, "The deregister period cannot after the start date.")
        elif user.role != 'trainer':
            raise invalidCreator("Unauthorised Creator")
        elif register_fee < 0:
            raise invalidFee("Register fee must at least be 0.")
        else:
            courseList = dbHandler.select_all_products('Course')
            CourseID = len(courseList) + 1
            for course in courseList:
                if user.zID in course and name in course and course[1] == 1:
                    return 0

            Status = 1
            noAttendees = 0
            data = (CourseID, Status, name, user.zID, detail, deregister, capacity, \
            noAttendees, venue, start_date, end_date, early_bird, register_fee)
            dbInserter.insert_Course(data)
            return 1
示例#11
0
 def create_seminar(self, user, name, detail, deregister, venue, start_date,
                    end_date, early_bird, register_fee):
     """
     Creates a seminar object stored in system temporarily
     Input: {user}->user object, {name, detail, venue, deregister,
     start_date, end_date}->string, {capacity}->int
     Output: boolean value confirm success or failure
     """
     if isinstance(start_date, str):
         date_format = "%Y-%m-%d %H:%M:%S"
         start_date = datetime.strptime(start_date, date_format)
         end_date = datetime.strptime(end_date, date_format)
         deregister = datetime.strptime(deregister, date_format)
         early_bird = datetime.strptime(early_bird, date_format)
     if datetime.now() > start_date:
         raise startDateError(
             "The start date must before the current date.")
     elif early_bird > deregister:
         raise EarlyBirdError(
             "The early bird period must be before the deregister period.")
     elif end_date < start_date:
         raise periodError(
             period,
             "The start date must br before or equal to the end date.")
     elif start_date < deregister < 0:
         raise deregisterError(
             d_period,
             "The deregister period cannot be after the start date.")
     elif user.role != 'trainer':
         raise invalidCreator("Unauthorised Creator")
     elif register_fee < 0:
         raise invalidFee("Register fee must at least be 0.")
     else:
         seminarList = dbHandler.select_all_products('Seminar')
         SeminarID = len(seminarList) + 1
         for seminar in seminarList:
             if user.zID in seminar and name in seminar and seminar[1] == 1:
                 return 0
         Status = 1
         info = (SeminarID, Status, name, user.zID, detail, deregister, venue,\
         start_date, end_date, early_bird, register_fee)
         new_seminar = self.converter('Seminar', info)
         self.tmpSeminar = new_seminar
         return new_seminar
示例#12
0
    def test_close_registrations(self):
        system = EMS()
        user = system.get_user('4119998')
        seminar = (1,0,'Test Seminar',4119993,'Testing','2018-12-10 22:00:00','UNSW','2019-01-01 22:00:00','2019-01-30 22:00:00','2018-12-1 22:00:00',1,100,0)
        dbInserter.insert_Seminar(seminar)
        session1 = (1,'Hi','Tommy','Hi',50,0,1,0)
        dbInserter.insert_Session(session1)
        session2 = (2,'Bye','Tommy','Bye',50,0,1,0)
        dbInserter.insert_Session(session2)

        test_sess = system.get_event('Session', 1)

        with pytest.raises(Exception) as e_info:
            updated = system.update_attendees('register', test_sess, 'Session', user.email)

        test_sess = system.get_event('Session',1)
        self.assertEqual(test_sess.noAttendees, 0)
        session_list = dbHandler.select_all_products("Session")
        self.assertEqual(session_list[0], session1)