def test_preclude_delete_all(self): ''' Tests deleting all preclusions of specific module. ''' if not self.preclude_delete_all_tested: model.add_module(self.test_preclude_code, self.test_module_name, self.test_module_desc, self.test_module_mc, self.test_module_status) model.add_module(self.test_preclude_code2, self.test_module_name, self.test_module_desc, self.test_module_mc, self.test_module_status) model.add_preclusion(self.test_module_code, self.test_preclude_code) model.add_preclusion(self.test_module_code, self.test_preclude_code2) outcome = model.delete_all_preclusions(self.test_module_code) assert_true(outcome) preclude_info_1 = model.get_preclusion(self.test_preclude_code) preclude_info_2 = model.get_preclusion(self.test_preclude_code2) preclude_info_3 = model.get_preclusion(self.test_module_code) model.delete_module(self.test_preclude_code) model.delete_module(self.test_preclude_code2) assert_true(len(preclude_info_1) == 0) assert_true(len(preclude_info_2) == 0) assert_true(len(preclude_info_3) == 0) return
def setUp(self): ''' Add dummy modules and mountings into database ''' self.test_module_CRD() self.module_CRD_tested = True model.add_module(self.test_module_code, self.test_module_name, self.test_module_desc, self.test_module_mc, self.test_module_status) self.test_fixed_mounting_CRD() self.fixed_mounting_CRD_tested = True self.test_tenta_mounting_CRD() self.tenta_mounting_CRD_tested = True model.add_tenta_mounting(self.test_module_code, self.test_module_tenta_mounting_s1, self.test_module_quota1) self.test_prereq_CRD() self.prereq_CRD_tested = True self.test_prereq_delete_all() self.prereq_delete_all_tested = True self.test_preclude_CRD() self.preclude_CRD_tested = True self.test_preclude_delete_all() self.preclude_delete_all_tested = True self.test_starred_CRD() self.starred_CRD_tested = True
def test_preclude_CRD(self): ''' Tests creating, reading and deleting of preclusions. ''' if not self.preclude_CRD_tested: model.add_module(self.test_preclude_code, self.test_module_name, self.test_module_desc, self.test_module_mc, self.test_module_status) outcome = model.add_preclusion(self.test_module_code, self.test_preclude_code) assert_true(outcome) # Module should not preclude itself check outcome = model.add_preclusion(self.test_preclude_code, self.test_preclude_code) assert_false(outcome) # Modules should mutually preclude each other preclude_info = model.get_preclusion(self.test_module_code) assert_true(preclude_info is not None) assert_equal(self.test_preclude_code, preclude_info[0][0]) preclude_info = model.get_preclusion(self.test_preclude_code) assert_true(preclude_info is not None) assert_equal(self.test_module_code, preclude_info[0][0]) model.delete_preclusion(self.test_module_code, self.test_preclude_code) model.delete_module(self.test_preclude_code) # After deleting preclusion, it should not exist preclude_info = model.get_preclusion(self.test_module_code) assert_true(len(preclude_info) == 0) return
def test_prereq_delete_all(self): ''' Tests deleting all prerequisites of specific module. ''' if not self.prereq_delete_all_tested: model.add_module(self.test_prereq_code, self.test_module_name, self.test_module_desc, self.test_module_mc, self.test_module_status) model.add_module(self.test_prereq2_code, self.test_module_name, self.test_module_desc, self.test_module_mc, self.test_module_status) model.add_prerequisite(self.test_module_code, self.test_prereq_code, self.test_prereq_index) model.add_prerequisite(self.test_module_code, self.test_prereq2_code, self.test_prereq2_index) outcome = model.delete_all_prerequisite(self.test_module_code) assert_true(outcome) model.delete_module(self.test_prereq_code) model.delete_module(self.test_prereq2_code) prereq_info = model.get_prerequisite(self.test_module_code) assert_true(len(prereq_info) == 0) return
def test_query_module_taken_together_specified_mod_specified_aysem(self): ''' Tests querying the list of modules taken together with specified module in the specified semester ''' # Add some dummy students and modules model.add_student('dummyYr1A', 1) model.add_module('AAA1111', 'Dummy 1', 'Description', 4, 'Active') model.add_module('AAA1112', 'Dummy 2', 'Description', 4, 'Active') model.add_student_plan('dummyYr1A', True, 'AAA1111', 'AY 17/18 Sem 2') model.add_student_plan('dummyYr1A', True, 'AAA1112', 'AY 17/18 Sem 2') list_of_mod_taken_together = \ model.get_mod_taken_together_with_mod_and_aysem('AAA1111', 'AY 17/18 Sem 2') required_list = [('AAA1111', 'Dummy 1', 'AAA1112', 'Dummy 2', 1)] assert_equal(len(list_of_mod_taken_together), len(required_list)) assert_equal(sorted(list_of_mod_taken_together), sorted(required_list)) assert_true( self.is_count_in_non_ascending_order(list_of_mod_taken_together)) # Clean up database model.delete_all_plans_of_student('dummyYr1A') model.delete_module('AAA1111') model.delete_module('AAA1112') model.delete_student('dummyYr1A')
def test_query_module_before_internship(self): ''' Tests querying the list of modules taken before internship, in AY/Sem with people doing internship in. ''' # Add some modules and dummy students required_dummy = ('AAA1111', 'Dummy for Intern', 1) model.add_student('dummyYr1A', 1) model.add_module('AAA1111', 'Dummy for Intern', 'Description', 4, 'Active') model.add_student_plan('dummyYr1A', True, 'AAA1111', 'AY 16/17 Sem 2') model.add_student_plan('dummyYr1A', True, self.INTERN_MOD, self.INTERN_SEM) # Get list of modules taken before internship list_of_modules_before_internship = model.get_mod_before_intern( self.INTERN_SEM) assert required_dummy in list_of_modules_before_internship # Clean up database model.delete_all_plans_of_student('dummyYr1A') model.delete_module('AAA1111') model.delete_student('dummyYr1A') # Test that required dummy no longer in list list_of_modules_before_internship = model.get_mod_before_intern( self.INTERN_SEM) assert required_dummy not in list_of_modules_before_internship
def test_query_module_before_internship_with_mod_after_internship(self): ''' Tests querying the list of modules taken before internship, in AY/Sem with people doing internship in, and with some modules taken after or during aysem of internship ''' # Get list of modules before internship list_of_modules_before_internship = model.get_mod_before_intern( self.INTERN_SEM) # Add some dummy students and plans. They should not affect the list model.add_student('dummyYr1A', 1) model.add_module('AAA1111', 'Dummy with Intern', 'Description', 4, 'Active') model.add_module('AAA1112', 'Dummy after Intern', 'Description', 4, 'Active') model.add_student_plan('dummyYr1A', True, 'AAA1111', self.INTERN_SEM) model.add_student_plan('dummyYr1A', True, self.INTERN_MOD, self.INTERN_SEM) model.add_student_plan('dummyYr1A', True, 'AAA1112', 'AY 17/18 Sem 2') # Get new list of modules before internship. It should remain unchanged. new_list_of_modules_before_internship = model.get_mod_before_intern( self.INTERN_SEM) assert_equal(len(list_of_modules_before_internship), len(new_list_of_modules_before_internship)) assert_equal(sorted(list_of_modules_before_internship), sorted(new_list_of_modules_before_internship)) # Clean up database model.delete_all_plans_of_student('dummyYr1A') model.delete_module('AAA1111') model.delete_module('AAA1112') model.delete_student('dummyYr1A')
def setUp(self): ''' Sets up the 'app.py' fixture ''' self.middleware = [] self.test_app = TestApp(APP.wsgifunc(*self.middleware)) session.set_up(self.test_app) model.add_module(self.DUMMY_MODULE_CODE, self.DUMMY_MODULE_NAME, self.DUMMY_MODULE_NAME, 1, "New")
def test_is_existing_module(self): ''' Tests if is_existing_module() function is working correctly. ''' current_test_module_code = "ZZ7654" assert_false(model.is_existing_module(current_test_module_code)) model.add_module(current_test_module_code, "Exist Module", "I describe myself", 4, "New") assert_true(model.is_existing_module(current_test_module_code)) model.delete_module(current_test_module_code)
def setUp(self): ''' Add dummy modules and mountings into database ''' self.module_overview_handler = ViewMod() self.mounting_view_handler = IndividualModule() self.current_ay = model.get_current_ay() self.next_ay = self.get_next_ay(self.current_ay) # Dummy modules model.add_module('BB1001', 'Dummy Module 1', 'This module is mounted in both sems in both AYs.', 1, 'Active') model.add_module('BB1002', 'Dummy Module 2', 'This module is mounted in sem 1 only, in both AYs.', 2, 'Active') model.add_module('BB1003', 'Dummy Module 3', 'This module is mounted in sem 2 only, in both AYs.', 3, 'Active') model.add_module( 'BB1004', 'Dummy Module 4', 'This module is not mounted in any sem, in both AYs.', 4, 'Active') # Dummy fixed mountings model.add_fixed_mounting('BB1001', self.current_ay + ' Sem 1', 10) model.add_fixed_mounting('BB1001', self.current_ay + ' Sem 2', 20) model.add_fixed_mounting('BB1002', self.current_ay + ' Sem 1', 30) model.add_fixed_mounting('BB1003', self.current_ay + ' Sem 2', 40) # Dummy tentative mountings model.add_tenta_mounting('BB1001', self.next_ay + ' Sem 1', 10) model.add_tenta_mounting('BB1001', self.next_ay + ' Sem 2', 20) model.add_tenta_mounting('BB1002', self.next_ay + ' Sem 1', 30) model.add_tenta_mounting('BB1003', self.next_ay + ' Sem 2', 40)
def setUp(self): ''' Add dummy modules and mountings into database, Then retrieve all fixed module mountings from database ''' self.fixed_mounting_handler = Fixed() self.current_ay = model.get_current_ay() model.add_module('BB1001', 'Dummy Module 1', 'This module is mounted in both semesters.', 1, 'Active') model.add_module('BB1002', 'Dummy Module 2', 'This module is mounted in semester 1 only.', 2, 'Active') model.add_module('BB1003', 'Dummy Module 3', 'This module is mounted in semester 2 only.', 3, 'Active') model.add_module( 'BB1004', 'Dummy Module 4', 'This module is mounted in not mounted in any semester.', 4, 'Active') model.add_fixed_mounting('BB1001', self.current_ay + ' Sem 1', 10) model.add_fixed_mounting('BB1001', self.current_ay + ' Sem 2', 20) model.add_fixed_mounting('BB1002', self.current_ay + ' Sem 1', 30) model.add_fixed_mounting('BB1003', self.current_ay + ' Sem 2', 40) self.fixed_mounting_handler.populate_module_code_and_name() self.fixed_mounting_handler.populate_module_ay_sem_data() assert_true(len(self.fixed_mounting_handler.full_mounting_plan) > 0)
def test_add_mod_with_repeat_code(self): ''' Tests that adding of module with duplicated code will fail. ''' # Not duplicate code --> success outcome = model.add_module("AA2222", "Dummy Module", "Dummy Description", 1, "New") assert_true(outcome) # Duplicate code --> fail outcome = model.add_module(self.test_module_code, self.test_module_name, self.test_module_desc, self.test_module_mc, "New") assert_false(outcome) model.delete_module("AA2222")
def test_list_students_take_module_empty(self): ''' Tests querying the list of students who plan to take a certain mod in a specified semester, where these are no students planning to take the module. ''' model.add_module('AAA1111', 'Dummy Module', 'Description', 4, 'Active') list_of_students_take_mod = \ model.get_list_students_take_module('AAA1111', 'AY 17/18 Sem 1') required_list = [] # Clean up database model.delete_module('AAA1111') assert_equal(len(list_of_students_take_mod), len(required_list)) assert_equal(sorted(list_of_students_take_mod), sorted(required_list))
def setUp(self): ''' Add dummy modules, mountings and student planners into database ''' # Dummy modules model.add_module('PT1001', 'Dummy Module 1', "Dummy Module 1", 1, 'Active') model.add_module('PT1002', 'Dummy Module 2', "Dummy Module 2", 2, 'Active') model.add_module('PT1003', 'Dummy Module 3', "Dummy Module 3", 3, 'Active') model.add_module('PT1004', 'Dummy Module 4', "Dummy Module 4", 4, 'Active') model.add_module('PT1005', 'Dummy Module 5', "Dummy Module 5", 5, 'Active') model.add_fixed_mounting('PT1001', self.current_ay+' Sem 1', 10) model.add_fixed_mounting('PT1001', self.current_ay+' Sem 2', 15) model.add_fixed_mounting('PT1002', self.current_ay+' Sem 2', 20) model.add_tenta_mounting('PT1001', self.next_ay+' Sem 1', 10) model.add_tenta_mounting('PT1002', self.next_ay+' Sem 2', 20) model.add_tenta_mounting('PT1003', self.next_ay+' Sem 1', 30) model.add_tenta_mounting('PT1003', self.next_ay+' Sem 2', 35) model.add_tenta_mounting('PT1004', self.next_ay+' Sem 2', 40) model.add_tenta_mounting('PT1005', self.next_ay+' Sem 1', 50) model.add_student_plan('D1000000A', True, 'PT1001', self.current_ay+' Sem 1') model.add_student_plan('D1000000A', True, 'PT1002', self.current_ay+' Sem 2') model.add_student_plan('D2000000A', True, 'PT1001', self.current_ay+' Sem 1') model.add_student_plan('D2000000A', False, 'PT1002', self.current_ay+' Sem 2') model.add_student_plan('D1000000A', False, 'PT1003', self.next_ay+' Sem 1') model.add_student_plan('D3000000A', False, 'PT1001', self.current_ay+' Sem 1') model.add_student_plan('D3000000A', False, 'PT1004', self.next_ay+' Sem 2') model.add_student_plan('D5000000A', True, 'PT1001', self.current_ay+' Sem 1') model.add_student_plan('D5000001A', True, 'PT1001', self.current_ay+' Sem 1') model.add_student_plan('D5000002A', True, 'PT1001', self.current_ay+' Sem 2') model.add_student_plan('D5000000A', False, 'PT1005', self.next_ay+' Sem 1') model.add_student_plan('D5000001A', False, 'PT1005', self.next_ay+' Sem 1') model.add_student_plan('D5000002A', False, 'PT1005', self.next_ay+' Sem 1') model.add_student_plan('D5000003A', False, 'PT1005', self.next_ay+' Sem 1') model.add_student_plan('D5000004A', False, 'PT1005', self.next_ay+' Sem 1')
def test_query_oversubscribed_modules(self): ''' Tests querying the list of oversubscribed modules. ''' # To simulate an oversubscribed module, add a module with 0 quota, # then add a student who wants to take the module. model.add_student('dummyYr1A', 1) model.add_module('AAA1111', 'Test Module', 'Description', 4, 'Active') model.add_student_plan('dummyYr1A', False, 'AAA1111', 'AY 17/18 Sem 1') list_of_oversub_mod = model.get_oversub_mod() oversubscribed_module = ('AAA1111', 'Test Module', 'AY 17/18 Sem 1', '?', 1) # Clean up the database model.delete_all_plans_of_student('dummyYr1A') model.delete_module("AAA1111") model.delete_student('dummyYr1A') # Test for presence of oversubscribed module assert oversubscribed_module in list_of_oversub_mod
def setUp(self): ''' Add dummy modules and mountings into database ''' self.fixed_mounting_handler = Fixed() self.current_ay = model.get_current_ay() self.tentative_mounting_handler = Tentative() self.next_ay = self.get_next_ay(self.current_ay) self.selected_tenta_mountings = \ model.get_all_tenta_mounted_modules_of_selected_ay(self.next_ay) # Dummy modules model.add_module('BB1001', 'Dummy Module 1', 'This module is mounted in both sems in both AYs.', 1, 'Active') model.add_module('BB1002', 'Dummy Module 2', 'This module is mounted in sem 1 only, in both AYs.', 2, 'Active') model.add_module('BB1003', 'Dummy Module 3', 'This module is mounted in sem 2 only, in both AYs.', 3, 'Active') model.add_module('BB1004', 'Dummy Module 4', 'This module is not mounted in any sem, in both AYs.', 4, 'Active') model.add_module('BB9999', 'Dummy Module X', 'This module is mounted 20 years in the future!', 0, 'Active') # Dummy fixed mountings model.add_fixed_mounting('BB1001', self.current_ay+' Sem 1', 10) model.add_fixed_mounting('BB1001', self.current_ay+' Sem 2', 20) model.add_fixed_mounting('BB1002', self.current_ay+' Sem 1', 30) model.add_fixed_mounting('BB1003', self.current_ay+' Sem 2', 40) self.load_fixed_full_mounting_plan() # Dummy tentative mountings model.add_tenta_mounting('BB1001', self.next_ay+' Sem 1', 10) model.add_tenta_mounting('BB1001', self.next_ay+' Sem 2', 20) model.add_tenta_mounting('BB1002', self.next_ay+' Sem 1', 30) model.add_tenta_mounting('BB1003', self.next_ay+' Sem 2', 40) model.add_tenta_mounting('BB9999', 'AY 36/37 Sem 1', 999) self.load_tenta_full_mounting_plan()
def test_query_module_taken_together_entire_list(self): ''' Tests querying the list of modules taken together in the same semester ''' # Add some dummy students and modules model.add_student('dummyYr1A', 1) model.add_module('AAA1111', 'Dummy 1', 'Description', 4, 'Active') model.add_module('AAA1112', 'Dummy 2', 'Description', 4, 'Active') model.add_module('AAA1113', 'Dummy 3', 'Description', 4, 'Active') model.add_student_plan('dummyYr1A', True, 'AAA1111', 'AY 17/18 Sem 1') model.add_student_plan('dummyYr1A', True, 'AAA1112', 'AY 17/18 Sem 1') model.add_student_plan('dummyYr1A', True, 'AAA1112', 'AY 17/18 Sem 2') model.add_student_plan('dummyYr1A', True, 'AAA1113', 'AY 17/18 Sem 2') list_of_mod_taken_together = \ model.get_all_mods_taken_together() assert_true( self.is_count_in_non_ascending_order(list_of_mod_taken_together)) assert ('AAA1111', 'Dummy 1', 'AAA1112', 'Dummy 2', 'AY 17/18 Sem 1', 1) in list_of_mod_taken_together assert ('AAA1112', 'Dummy 2', 'AAA1113', 'Dummy 3', 'AY 17/18 Sem 2', 1) in list_of_mod_taken_together # Clean up database model.delete_all_plans_of_student('dummyYr1A') model.delete_module('AAA1111') model.delete_module('AAA1112') model.delete_module('AAA1113') model.delete_student('dummyYr1A')
def test_module_CRD(self): ''' Tests creating, reading and deleting of modules. ''' if not self.module_CRD_tested: model.add_module(self.test_module_code, self.test_module_name, self.test_module_desc, self.test_module_mc, self.test_module_status) module_info = model.get_module(self.test_module_code) assert_true(module_info is not None) assert_equal(self.test_module_code, module_info[0]) assert_equal(self.test_module_name, module_info[1]) assert_equal(self.test_module_desc, module_info[2]) assert_equal(self.test_module_mc, module_info[3]) assert_equal(self.test_module_status, module_info[4].rstrip()) model.delete_module(self.test_module_code) module_info = model.get_module(self.test_module_code) assert_true(module_info is None) return
def test_query_module_taken_together_specified_mod(self): ''' Tests querying the list of modules taken together with specified module in the same semester ''' # Add some dummy students and modules model.add_student('dummyYr1A', 1) model.add_module('AAA1111', 'Dummy 1', 'Description', 4, 'Active') model.add_module('AAA1112', 'Dummy 2', 'Description', 4, 'Active') model.add_student_plan('dummyYr1A', True, 'AAA1111', 'AY 17/18 Sem 2') model.add_student_plan('dummyYr1A', True, 'AAA1112', 'AY 17/18 Sem 2') list_of_mod_taken_together = \ model.get_mod_taken_together_with('AAA1111') # Clean up database model.delete_all_plans_of_student('dummyYr1A') model.delete_module('AAA1111') model.delete_module('AAA1112') model.delete_student('dummyYr1A') assert ('AAA1111', 'Dummy 1', 'AAA1112', 'Dummy 2', 'AY 17/18 Sem 2', 1) in list_of_mod_taken_together
def test_query_oversubscribed_modules_reworked(self): ''' Tests querying the list of oversubscribed modules. (This test uses the reworked function) ''' # To simulate an oversubscribed module, add a module with 0 quota, # then add a student who wants to take the module. oversub_handler = OversubModule() model.add_student('dummyYr1A', 1) model.add_module('AAA1111', 'Test Module', 'Description', 4, 'Active') model.add_student_plan('dummyYr1A', False, 'AAA1111', 'AY 17/18 Sem 1') list_of_oversub_mod = oversub_handler.GET("AY 17/18 Sem 1") oversubscribed_module = ('AAA1111', 'Test Module', 'AY 17/18 Sem 1', '-', 1, 1) # Clean up the database model.delete_all_plans_of_student('dummyYr1A') model.delete_module("AAA1111") model.delete_student('dummyYr1A') # Test for presence of oversubscribed module assert oversubscribed_module in list_of_oversub_mod
def test_prereq_CRD(self): ''' Tests creating, reading and deleting of prerequisites. ''' if not self.prereq_CRD_tested: model.add_module(self.test_prereq_code, self.test_module_name, self.test_module_desc, self.test_module_mc, self.test_module_status) model.add_prerequisite(self.test_module_code, self.test_prereq_code, self.test_prereq_index) prereq_info = model.get_prerequisite(self.test_module_code) assert_true(prereq_info is not None) assert_equal(self.test_prereq_index, prereq_info[0][0]) assert_equal(self.test_prereq_code, prereq_info[0][1]) model.delete_prerequisite(self.test_module_code, self.test_prereq_code) model.delete_module(self.test_prereq_code) prereq_info = model.get_prerequisite(self.test_module_code) assert_true(len(prereq_info) == 0) return
def POST(self): ''' Handles the submitting of the add module form ''' #get module values from form try: data = web.input() module_code = data.code.upper() module_name = data.name module_desc = data.description module_mc = data.mc #string is valid if not (model.check_code(module_code) and model.check_name(module_name) and model.check_mcs(module_mc)): return model.outcome_invalid() outcome = model.add_module(module_code, module_name, module_desc, module_mc, 'New') return Outcome().POST("add_module", outcome, module_code) except AttributeError: return Outcome().POST("add_module", False, None)
def setUp(self): ''' Populate database and perform testing ''' model.add_module(self.test_module_code, self.test_module_name, self.test_module_desc, self.test_module_mc, self.test_module_status) model.add_module(self.test_prereq_code, self.test_module_name, self.test_module_desc, self.test_module_mc, self.test_module_status) model.add_module(self.test_prereq2_code, self.test_module_name, self.test_module_desc, self.test_module_mc, self.test_module_status) model.add_module(self.test_prereq3_code, self.test_module_name, self.test_module_desc, self.test_module_mc, self.test_module_status) self.test_no_prereq_to_one_prereq() self.no_prereq_to_one_prereq_tested = True self.test_prereq_to_one_prereq() self.prereq_to_one_prereq_tested = True self.test_no_prereq_to_no_prereq() self.no_prereq_to_no_prereq_tested = True self.test_prereq_to_no_prereq() self.prereq_to_no_prereq_tested = True self.test_no_prereq_to_multiple_prereq() self.no_prereq_to_multiple_prereq_tested = True self.test_prereq_to_multiple_prereq() self.prereq_to_multiple_prereq_tested = True self.test_edit_prereq_duplicate_modules() self.edit_prereq_duplicate_tested = True self.test_edit_prereq_non_existent_modules() self.edit_prereq_non_existent_tested = True self.test_edit_prereq_already_in_preclusion() self.edit_prereq_already_in_preclusion = True self.test_edit_prereq_multiple_errors() self.edit_prereq_multiple_errors_tested = True
def setUp(self): ''' Add dummy modules and mountings into database ''' # Dummy modules self.DUMMY_MODULE_CODE_1 = 'BB1001' self.DUMMY_MODULE_CODE_2 = 'BB1002' self.DUMMY_MODULE_CODE_3 = 'BB1003' model.add_module(self.DUMMY_MODULE_CODE_1, 'Dummy Module 1', "Dummy Module", 1, 'Active') model.add_module(self.DUMMY_MODULE_CODE_2, 'Dummy Module 2', "Dummy Module", 2, 'Active') model.add_module(self.DUMMY_MODULE_CODE_3, 'Dummy Module 3', "Dummy Module", 3, 'Active') # Dummy mountings self.DUMMY_QUOTA_0 = None self.DUMMY_QUOTA_1 = 10 self.DUMMY_QUOTA_2 = 20 self.DUMMY_QUOTA_3 = 30 model.add_fixed_mounting(self.DUMMY_MODULE_CODE_1, self.current_ay+' Sem 1', self.DUMMY_QUOTA_1) model.add_tenta_mounting(self.DUMMY_MODULE_CODE_1, self.next_ay+' Sem 1', self.DUMMY_QUOTA_1) model.add_fixed_mounting(self.DUMMY_MODULE_CODE_2, self.current_ay+' Sem 2', self.DUMMY_QUOTA_2) model.add_tenta_mounting(self.DUMMY_MODULE_CODE_2, self.next_ay+' Sem 2', self.DUMMY_QUOTA_2) model.add_fixed_mounting(self.DUMMY_MODULE_CODE_3, self.current_ay+' Sem 1', self.DUMMY_QUOTA_3) model.add_tenta_mounting(self.DUMMY_MODULE_CODE_3, self.next_ay+' Sem 1', self.DUMMY_QUOTA_3) model.add_fixed_mounting(self.DUMMY_MODULE_CODE_3, self.current_ay+' Sem 2', self.DUMMY_QUOTA_0) model.add_tenta_mounting(self.DUMMY_MODULE_CODE_3, self.next_ay+' Sem 2', self.DUMMY_QUOTA_0)
def setUp(self): ''' Add dummy modules and mountings into database ''' # Dummy modules model.add_module('BB1001', 'Dummy Module 1', "This module's quota is NOT modified", 1, 'Active') model.add_module('BB1002', 'Dummy Module 2', "This module's quota for sem 1 is modified", 2, 'Active') model.add_module('BB1003', 'Dummy Module 3', "This module's quota for sem 2 is modified", 3, 'Active') model.add_module('BB1004', 'Dummy Module 4', "This module's quota for sem 1 has become specified", 4, 'Active') model.add_module('BB1005', 'Dummy Module 5', "This module's quota for sem 2 has become unspecified", 5, 'Active') model.add_module('BB1006', 'Dummy Module 6', "This module's quota for both sem 1 & 2 have been modified", 6, 'Active') model.add_module('BB2001', 'Dummy Module 1', "This module is unmounted from sem 1", 1, 'Active') model.add_module('BB2002', 'Dummy Module 2', "This module is remounted in sem 2", 2, 'Active') model.add_module('BB2003', 'Dummy Module 3', "This module is changed from mounted in sem 1 to sem 2", 3, 'Active') model.add_module('BB2004', 'Dummy Module 4', "This module's mounting is modified but quota is not modified", 4, 'Active') model.add_module('BB3001', 'Dummy Module 1', "This module's quota is modified and will be restored", 1, 'Active') model.add_module('BB3002', 'Dummy Module 2', "This module's quota has been specified and will be restored" +\ "to unspecified", 2, 'Active') model.add_module('BB3003', 'Dummy Module 3', "This module's has been mounted and will be restored to unmounted", 3, 'Active') model.add_module('BB3004', 'Dummy Module 4', "This module's has been unmounted and will be restored to mounted", 4, 'Active') model.add_module('BB3005', 'Dummy Module 5', "This module's name will be restored", 5, 'Active') model.add_module('BB3006', 'Dummy Module 6', "This module's name, description and MC will be restored", 6, 'Active') # Dummy fixed mountings model.add_fixed_mounting('BB1001', self.current_ay+' Sem 1', 10) model.add_fixed_mounting('BB1001', self.current_ay+' Sem 2', 10) model.add_fixed_mounting('BB1002', self.current_ay+' Sem 1', 20) model.add_fixed_mounting('BB1002', self.current_ay+' Sem 2', 20) model.add_fixed_mounting('BB1003', self.current_ay+' Sem 1', 30) model.add_fixed_mounting('BB1003', self.current_ay+' Sem 2', 30) model.add_fixed_mounting('BB1004', self.current_ay+' Sem 1', None) model.add_fixed_mounting('BB1004', self.current_ay+' Sem 2', None) model.add_fixed_mounting('BB1005', self.current_ay+' Sem 1', 50) model.add_fixed_mounting('BB1005', self.current_ay+' Sem 2', 50) model.add_fixed_mounting('BB1006', self.current_ay+' Sem 1', 60) model.add_fixed_mounting('BB1006', self.current_ay+' Sem 2', 60) model.add_fixed_mounting('BB2001', self.current_ay+' Sem 1', 10) model.add_fixed_mounting('BB2001', self.current_ay+' Sem 2', 10) model.add_fixed_mounting('BB2002', self.current_ay+' Sem 1', 20) model.add_fixed_mounting('BB2003', self.current_ay+' Sem 1', 30) model.add_fixed_mounting('BB2004', self.current_ay+' Sem 1', None) model.add_fixed_mounting('BB3001', self.current_ay+' Sem 1', 10) model.add_fixed_mounting('BB3002', self.current_ay+' Sem 1', None) model.add_fixed_mounting('BB3004', self.current_ay+' Sem 2', 40) # Dummy tentative mountings model.add_tenta_mounting('BB1001', self.next_ay+' Sem 1', 10) model.add_tenta_mounting('BB1001', self.next_ay+' Sem 2', 10) model.add_tenta_mounting('BB1002', self.next_ay+' Sem 1', 999) model.add_tenta_mounting('BB1002', self.next_ay+' Sem 2', 20) model.add_tenta_mounting('BB1003', self.next_ay+' Sem 1', 30) model.add_tenta_mounting('BB1003', self.next_ay+' Sem 2', 999) model.add_tenta_mounting('BB1004', self.next_ay+' Sem 1', 999) model.add_tenta_mounting('BB1004', self.next_ay+' Sem 2', None) model.add_tenta_mounting('BB1005', self.next_ay+' Sem 1', 50) model.add_tenta_mounting('BB1005', self.next_ay+' Sem 2', None) model.add_tenta_mounting('BB1006', self.next_ay+' Sem 1', 999) model.add_tenta_mounting('BB1006', self.next_ay+' Sem 2', None) model.add_tenta_mounting('BB2001', self.next_ay+' Sem 2', 10) model.add_tenta_mounting('BB2002', self.next_ay+' Sem 1', 20) model.add_tenta_mounting('BB2002', self.next_ay+' Sem 2', 20) model.add_tenta_mounting('BB2003', self.next_ay+' Sem 2', 30) model.add_tenta_mounting('BB2004', self.next_ay+' Sem 1', None) model.add_tenta_mounting('BB2004', self.next_ay+' Sem 2', None) model.add_tenta_mounting('BB3001', self.next_ay+' Sem 1', 999) model.add_tenta_mounting('BB3002', self.next_ay+' Sem 1', 999) model.add_tenta_mounting('BB3003', self.next_ay+' Sem 2', 999) # Dummy module backup model.store_original_module_info('BB3005', 'Original Module Name', "This module's name will be restored", 5) model.store_original_module_info('BB3006', 'Original Module Name', "Original Module Description", 0)