Пример #1
0
    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)
Пример #2
0
    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)
Пример #3
0
 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)
Пример #4
0
 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)
Пример #5
0
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)
Пример #6
0
    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
Пример #8
0
    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)
Пример #9
0
    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)
Пример #10
0
    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")
Пример #11
0
    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?")
Пример #13
0
    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")
Пример #14
0
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)
Пример #15
0
    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")
Пример #16
0
    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)
Пример #17
0
    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)
Пример #18
0
    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)
Пример #19
0
    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?")
Пример #20
0
    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")
Пример #21
0
    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')
Пример #22
0
    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)
Пример #23
0
    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)