def test_threaded_caching(self): with self.settings(RESTCLIENTS_SWS_DAO_CLASS='restclients.dao_implementation.sws.File', RESTCLIENTS_PWS_DAO_CLASS='restclients.dao_implementation.pws.File', RESTCLIENTS_DAO_CACHE_CLASS='restclients.cache_implementation.TimeSimpleCache'): term = get_current_term() get_schedule_by_regid_and_term('9136CCB8F66711D5BE060004AC494FFE', term)
def test_threaded_caching(self): with self.settings(RESTCLIENTS_SWS_DAO_CLASS= 'restclients.dao_implementation.sws.File', RESTCLIENTS_PWS_DAO_CLASS= 'restclients.dao_implementation.pws.File', RESTCLIENTS_DAO_CACHE_CLASS= 'restclients.cache_implementation.TimeSimpleCache'): term = get_current_term() get_schedule_by_regid_and_term('9136CCB8F66711D5BE060004AC494FFE', term)
def schedule_for_regid_and_term(self, regid, term, include_instructor_not_on_time_schedule=True): deprecation( "Use restclients.sws.registration.get_schedule_by_regid_and_term") from restclients.sws.registration import get_schedule_by_regid_and_term return get_schedule_by_regid_and_term(regid, term, include_instructor_not_on_time_schedule)
def _get_schedule(regid, term): """ @return a restclients.models.sws.ClassSchedule object Return the actively enrolled sections for the current user in the given term/quarter """ if regid is None or term is None: return None logid = ('get_schedule_by_regid_and_term ' + str(regid) + ',' + str(term.year) + ',' + term.quarter) timer = Timer() try: schedule = get_schedule_by_regid_and_term(regid, term, False) # XXX - 2015 workaround for MUWM-3390. # We want something different for 2016 - MUWM-3391 non_early_start_sections = [] for section in schedule.sections: if EARLY_FALL_START != section.institute_name: non_early_start_sections.append(section) schedule.sections = non_early_start_sections return schedule finally: log_resp_time(logger, logid, timer)
def test_get_books_by_schedule(self): books = Bookstore() term = get_current_term() schedule = get_schedule_by_regid_and_term( 'AA36CCB8F66711D5BE060004AC494FFE', term) schedule_books = books.get_books_for_schedule(schedule) self.assertEquals(len(schedule_books), 2) self.assertEqual(len(schedule_books['13833']), 0) self.assertEqual(len(schedule_books['13830']), 2)
def test_instructor_list(self): with self.settings( RESTCLIENTS_SWS_DAO_CLASS='restclients.dao_implementation.sws.File', RESTCLIENTS_PWS_DAO_CLASS='restclients.dao_implementation.pws.File'): term = get_current_term() schedule = get_schedule_by_regid_and_term("BB000000000000000000000000009994", term) self.assertEquals(len(schedule.sections), 1, "Has 1 section") instructors = schedule.sections[0].meetings[0].instructors
def test_get_schedule_by_regid_and_term(self): with self.settings( RESTCLIENTS_SWS_DAO_CLASS='restclients.dao_implementation.sws.File', RESTCLIENTS_PWS_DAO_CLASS='restclients.dao_implementation.pws.File'): term = Term(quarter="spring", year=2013) class_schedule = get_schedule_by_regid_and_term( '9136CCB8F66711D5BE060004AC494FFE', term) for section in class_schedule.sections: if section.section_label() == '2013,spring,TRAIN,100/A': self.assertEquals(len(section.get_instructors()), 1) self.assertEquals(section.student_credits, Decimal("%s" % 1.0)) self.assertEquals(section.student_grade, "X") self.assertEquals(section.get_grade_date_str(), None) self.assertTrue(section.is_primary_section) self.assertEquals(section.is_auditor, False) if section.section_label() == '2013,spring,PHYS,121/AC': self.assertEquals(section.student_credits, Decimal("%s" % 3.0)) self.assertEquals(section.student_grade, "4.0") self.assertEquals(section.get_grade_date_str(), "2013-06-11") self.assertFalse(section.is_primary_section) self.assertEquals(section.is_auditor, False) class_schedule = get_schedule_by_regid_and_term( '9136CCB8F66711D5BE060004AC494FFE', term, False) for section in class_schedule.sections: if section.section_label() == '2013,spring,TRAIN,100/A': self.assertEquals(len(section.get_instructors()), 0) class_schedule = get_schedule_by_regid_and_term( '12345678901234567890123456789012', term) for section in class_schedule.sections: if section.section_label() == '2013,spring,,MATH,125/G': self.assertEquals(section.student_credits, Decimal("%s" % 5.0)) self.assertEquals(section.student_grade, "3.5") self.assertEquals(section.is_auditor, True) self.assertTrue(section.is_primary_section)
def test_verba_link(self): books = Bookstore() term = get_current_term() schedule = get_schedule_by_regid_and_term( 'AA36CCB8F66711D5BE060004AC494FFE', term) verba_link = books.get_verba_link_for_schedule(schedule) self.assertEquals( ("http://uw-seattle.verbacompare.com/m?" + "section_id=AB12345&quarter=spring"), verba_link, "Seattle student has seattle link")
def test_instructor_list(self): with self.settings(RESTCLIENTS_SWS_DAO_CLASS= 'restclients.dao_implementation.sws.File', RESTCLIENTS_PWS_DAO_CLASS= 'restclients.dao_implementation.pws.File'): term = get_current_term() schedule = get_schedule_by_regid_and_term( "BB000000000000000000000000009994", term) self.assertEquals(len(schedule.sections), 1, "Has 1 section") instructors = schedule.sections[0].meetings[0].instructors
def test_instructor_list(self): with self.settings( RESTCLIENTS_SWS_DAO_CLASS='restclients.dao_implementation.sws.File', RESTCLIENTS_PWS_DAO_CLASS='restclients.dao_implementation.pws.File'): term = get_current_term() schedule = get_schedule_by_regid_and_term("BB000000000000000000000000000004", term) self.assertEquals(len(schedule.sections), 1, "Has 1 section") instructors = schedule.sections[0].meetings[0].instructors self.assertEquals(len(instructors), 1, "Only has the 1 instructor for independent study?") self.assertEquals(instructors[0].uwregid, 'FBB38FE46A7C11D5A4AE0004AC494FFE', "Only has the 1 instructor for independent study?")
def test_verba_link(self): with self.settings( RESTCLIENTS_BOOK_DAO_CLASS='restclients.dao_implementation.book.File', RESTCLIENTS_SWS_DAO_CLASS='restclients.dao_implementation.sws.File', RESTCLIENTS_PWS_DAO_CLASS='restclients.dao_implementation.pws.File', ): books = Bookstore() term = get_current_term() schedule = get_schedule_by_regid_and_term('AA36CCB8F66711D5BE060004AC494FFE', term) verba_link = books.get_verba_link_for_schedule(schedule) self.assertEquals("http://uw-seattle.verbacompare.com/m?section_id=AB12345&quarter=spring", verba_link, "Seattle student has seattle link")
def _get_schedule(regid, term): """ @return a restclients.models.sws.ClassSchedule object Return the actively enrolled sections for the current user in the given term/quarter """ if regid is None or term is None: return None logid = ('get_schedule_by_regid_and_term ' + str(regid) + ',' + str(term.year) + ',' + term.quarter) timer = Timer() try: return get_schedule_by_regid_and_term(regid, term, False) finally: log_resp_time(logger, logid, timer)
def test_get_books_by_schedule(self): with self.settings( RESTCLIENTS_BOOK_DAO_CLASS='restclients.dao_implementation.book.File', RESTCLIENTS_SWS_DAO_CLASS='restclients.dao_implementation.sws.File', RESTCLIENTS_PWS_DAO_CLASS='restclients.dao_implementation.pws.File', ): books = Bookstore() term = get_current_term() schedule = get_schedule_by_regid_and_term('AA36CCB8F66711D5BE060004AC494FFE', term) schedule_books = books.get_books_for_schedule(schedule) self.assertEquals(len(schedule_books), 2) self.assertEqual(len(schedule_books['13833']), 0) self.assertEqual(len(schedule_books['13830']), 2)
def test_get_schedule_by_regid_and_term(self): with self.settings( RESTCLIENTS_SWS_DAO_CLASS='restclients.dao_implementation.sws.File', RESTCLIENTS_PWS_DAO_CLASS='restclients.dao_implementation.pws.File'): term = Term(quarter="spring", year=2013) class_schedule = get_schedule_by_regid_and_term( 'FE36CCB8F66711D5BE060004AC494FCE', term, transcriptable_course="no") for section in class_schedule.sections: if section.section_label() == '2013,spring,ESS,107/A': self.assertEquals(len(section.get_instructors()), 1) self.assertEquals(section.student_credits, Decimal("%s" % 3.0)) self.assertEquals(section.student_grade, "X") self.assertEquals(section.get_grade_date_str(), None) self.assertTrue(section.is_primary_section) self.assertEquals(section.is_auditor, False)
def test_dupe_slns(self): books = Bookstore() term = get_current_term() schedule = get_schedule_by_regid_and_term( 'AA36CCB8F66711D5BE060004AC494FFE', term) schedule.sections.append(schedule.sections[0]) schedule.sections.append(schedule.sections[0]) schedule.sections.append(schedule.sections[0]) schedule.sections.append(schedule.sections[0]) schedule.sections.append(schedule.sections[0]) verba_link = books.get_verba_url(schedule) self.assertEquals( verba_link, '/myuw/myuw_mobile_v.ubs?quarter=spring&sln1=13830&sln2=13833') schedule_books = books.get_books_for_schedule(schedule) self.assertEquals(len(schedule_books), 2)
def test_instructor_list(self): with self.settings(RESTCLIENTS_SWS_DAO_CLASS= 'restclients.dao_implementation.sws.File', RESTCLIENTS_PWS_DAO_CLASS= 'restclients.dao_implementation.pws.File'): term = get_current_term() schedule = get_schedule_by_regid_and_term( "BB000000000000000000000000000004", term) self.assertEquals(len(schedule.sections), 1, "Has 1 section") instructors = schedule.sections[0].meetings[0].instructors self.assertEquals( len(instructors), 1, "Only has the 1 instructor for independent study?") self.assertEquals( instructors[0].uwregid, 'FBB38FE46A7C11D5A4AE0004AC494FFE', "Only has the 1 instructor for independent study?")
def test_sched(self): with self.settings( RESTCLIENTS_BOOK_DAO_CLASS='restclients.dao_implementation.book.File', RESTCLIENTS_SWS_DAO_CLASS='restclients.dao_implementation.sws.File', RESTCLIENTS_PWS_DAO_CLASS='restclients.dao_implementation.pws.File', ): books = Bookstore() term = get_current_term() schedule = get_schedule_by_regid_and_term('AA36CCB8F66711D5BE060004AC494FFE', term) book_data = books.get_books_for_schedule(schedule) self.assertEquals(len(book_data), 2, "Has data for 2 sections") self.assertEquals(len(book_data["13830"]), 0, "No books for sln 13830") self.assertEquals(len(book_data["13833"]), 1, "one book for sln 13833") book = book_data["13833"][0] self.assertEquals(book.price, 175.00, "Has the right book price")
def test_dupe_slns(self): with self.settings( RESTCLIENTS_BOOK_DAO_CLASS='restclients.dao_implementation.book.File', RESTCLIENTS_SWS_DAO_CLASS='restclients.dao_implementation.sws.File', RESTCLIENTS_PWS_DAO_CLASS='restclients.dao_implementation.pws.File', ): books = Bookstore() term = get_current_term() schedule = get_schedule_by_regid_and_term('AA36CCB8F66711D5BE060004AC494FFE', term) schedule.sections.append(schedule.sections[0]) schedule.sections.append(schedule.sections[0]) schedule.sections.append(schedule.sections[0]) schedule.sections.append(schedule.sections[0]) schedule.sections.append(schedule.sections[0]) verba_link = books.get_verba_url(schedule) self.assertEquals(verba_link, '/myuw/myuw_mobile_v.ubs?quarter=spring&sln1=13830&sln2=13833') books_link = books.get_books_url(schedule) self.assertEquals(books_link, '/myuw/myuw_mobile_beta.ubs?quarter=spring&sln1=13830&sln2=13833')
def test_dupe_slns(self): with self.settings( RESTCLIENTS_BOOK_DAO_CLASS='restclients.dao_implementation.book.File', RESTCLIENTS_SWS_DAO_CLASS='restclients.dao_implementation.sws.File', RESTCLIENTS_PWS_DAO_CLASS='restclients.dao_implementation.pws.File', ): books = Bookstore() term = get_current_term() schedule = get_schedule_by_regid_and_term('AA36CCB8F66711D5BE060004AC494FFE', term) schedule.sections.append(schedule.sections[0]) schedule.sections.append(schedule.sections[0]) schedule.sections.append(schedule.sections[0]) schedule.sections.append(schedule.sections[0]) schedule.sections.append(schedule.sections[0]) verba_link = books.get_verba_url(schedule) self.assertEquals(verba_link, '/myuw/myuw_mobile_v.ubs?quarter=spring&sln1=13830&sln2=13833') schedule_books = books.get_books_for_schedule(schedule) self.assertEquals(len(schedule_books), 2)
def test_sws_schedule_data(self): with self.settings( RESTCLIENTS_SWS_DAO_CLASS='restclients.dao_implementation.sws.File', RESTCLIENTS_PWS_DAO_CLASS='restclients.dao_implementation.pws.File'): #Valid data, shouldn't throw exceptions term = get_previous_term() get_schedule_by_regid_and_term('9136CCB8F66711D5BE060004AC494FFE', term) term = get_current_term() get_schedule_by_regid_and_term('9136CCB8F66711D5BE060004AC494FFE', term) term = get_next_term() get_schedule_by_regid_and_term('9136CCB8F66711D5BE060004AC494FFE', term) term = get_term_by_year_and_quarter(2012, 'summer') get_schedule_by_regid_and_term('9136CCB8F66711D5BE060004AC494FFE', term) term = get_current_term() #Bad data, should throw exceptions self.assertRaises(DataFailureException, get_schedule_by_regid_and_term, "9136CCB8F66711D5BE060004AC494FFF", term) self.assertRaises(DataFailureException, get_schedule_by_regid_and_term, "9136CCB8F66711D5BE060004AC494FFX", term) self.assertRaises(DataFailureException, get_schedule_by_regid_and_term, "javerage", term) self.assertRaises(DataFailureException, get_schedule_by_regid_and_term, "", term) self.assertRaises(DataFailureException, get_schedule_by_regid_and_term, " ", term) term.year = None self.assertRaises(DataFailureException, get_schedule_by_regid_and_term, "9136CCB8F66711D5BE060004AC494FFE", term) term.year = 1929 self.assertRaises(DataFailureException, get_schedule_by_regid_and_term, "9136CCB8F66711D5BE060004AC494FFE", term) term.year = 2399 self.assertRaises(DataFailureException, get_schedule_by_regid_and_term, "9136CCB8F66711D5BE060004AC494FFE", term) term.year = 0 self.assertRaises(DataFailureException, get_schedule_by_regid_and_term, "9136CCB8F66711D5BE060004AC494FFE", term) term.year = -2012 self.assertRaises(DataFailureException, get_schedule_by_regid_and_term, "9136CCB8F66711D5BE060004AC494FFE", term) term.quarter = "spring" self.assertRaises(DataFailureException, get_schedule_by_regid_and_term, "9136CCB8F66711D5BE060004AC494FFE", term) term.quarter = "fall" self.assertRaises(DataFailureException, get_schedule_by_regid_and_term, "9136CCB8F66711D5BE060004AC494FFE", term) term.quarter = "" self.assertRaises(DataFailureException, get_schedule_by_regid_and_term, "9136CCB8F66711D5BE060004AC494FFE", term) term.quarter = " " self.assertRaises(DataFailureException, get_schedule_by_regid_and_term, "9136CCB8F66711D5BE060004AC494FFE", term) term.quarter = "Spring" self.assertRaises(DataFailureException, get_schedule_by_regid_and_term, "9136CCB8F66711D5BE060004AC494FFE", term)