def test_last_final_exam_day(self): # spring now_request = self.get_request_for_date('2013-06-14') values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_after_last_day_of_classes"]) self.assertTrue(values["is_before_end_of_finals_week"]) now = get_comparison_datetime(now_request) self.assertTrue(is_before_eof_finals_week(now, now_request)) self.assertFalse(is_before_last_day_of_classes(now, now_request)) now_request = self.get_request_for_date('2013-06-15') values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_before_end_of_finals_week"]) self.assertFalse(values["is_before_last_day_of_classes"]) now = get_comparison_datetime(now_request) self.assertFalse(is_before_eof_finals_week(now, now_request)) # autumn values = self.get_visibility_for_date('2013-12-13') self.assertTrue(values["is_before_end_of_finals_week"]) now_request = self.get_request_for_date('2013-12-14') values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_before_end_of_finals_week"]) now = get_comparison_datetime(now_request) self.assertFalse(is_before_eof_finals_week(now, now_request)) # winter values = self.get_visibility_for_date('2013-03-22') self.assertTrue(values["is_before_end_of_finals_week"]) now_request = self.get_request_for_date('2013-03-23') values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_before_end_of_finals_week"]) now = get_comparison_datetime(now_request) self.assertFalse(is_before_eof_finals_week(now, now_request))
def test_day_after_last_day_of_classes(self): with self.settings(RESTCLIENTS_SWS_DAO_CLASS=FDAO_SWS): now_request = RequestFactory().get("/") now_request.session = {} # spring now_request.session["myuw_override_date"] = "2013-06-08" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_grade_submission_deadline"]) self.assertTrue(values["is_after_last_day_of_classes"]) self.assertTrue( values["is_after_start_of_registration_display_period"]) self.assertTrue(values["is_before_end_of_finals_week"]) # This is a poorly named value - it's really last day + 1 self.assertFalse(values["is_before_last_day_of_classes"]) self.assertTrue( values["is_before_end_of_registration_display_period"]) # 2013 winter after now_request.session = {} now_request.session["myuw_override_date"] = "2013-03-16" now = get_now(now_request) self.assertTrue( is_after_last_day_of_classes(now, now_request)) self.assertFalse( is_before_last_day_of_classes(now, now_request))
def test_day_before_last_day_of_classes(self): with self.settings(RESTCLIENTS_SWS_DAO_CLASS=FDAO_SWS): now_request = RequestFactory().get("/") now_request.session = {} now_request.session["myuw_override_date"] = "2013-06-06" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_grade_submission_deadline"]) self.assertFalse(values["is_after_last_day_of_classes"]) self.assertTrue( values["is_after_start_of_registration_display_period"]) self.assertTrue(values["is_before_end_of_finals_week"]) self.assertTrue(values["is_before_last_day_of_classes"]) self.assertTrue( values["is_before_end_of_registration_display_period"]) now = get_now(now_request) self.assertTrue(is_before_last_day_of_classes(now, now_request)) self.assertTrue( is_after_bof_and_before_eof_reg_period(now, now_request)) # winter now_request.session = {} now_request.session["myuw_override_date"] = "2013-03-14" now = get_now(now_request) self.assertTrue( is_before_last_day_of_classes(now, now_request)) self.assertFalse( is_after_last_day_of_classes(now, now_request))
def test_is_after_7d_before_last_instruction(self): with self.settings(RESTCLIENTS_SWS_DAO_CLASS=FDAO_SWS): now_request = RequestFactory().get("/") # spring now_request.session = {} now_request.session["myuw_override_date"] = "2013-05-30" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_7d_before_last_instruction"]) now_request = RequestFactory().get("/") now_request.session = {} now_request.session["myuw_override_date"] = "2013-05-31" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_after_7d_before_last_instruction"]) now_request = RequestFactory().get("/") now_request.session = {} now_request.session["myuw_override_date"] = "2013-06-24" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_7d_before_last_instruction"]) # summer a-term now_request = RequestFactory().get("/") now_request.session = {} now_request.session["myuw_override_date"] = "2012-07-10" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_7d_before_last_instruction"]) now_request = RequestFactory().get("/") now_request.session = {} now_request.session["myuw_override_date"] = "2012-07-11" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_after_7d_before_last_instruction"]) # b-term start now_request = RequestFactory().get("/") now_request.session = {} now_request.session["myuw_override_date"] = "2012-07-19" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_7d_before_last_instruction"]) # summer b-term or full-term now_request = RequestFactory().get("/") now_request.session = {} now_request.session["myuw_override_date"] = "2012-08-09" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_7d_before_last_instruction"]) now_request = RequestFactory().get("/") now_request.session = {} now_request.session["myuw_override_date"] = "2012-08-10" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_after_7d_before_last_instruction"]) now_request = RequestFactory().get("/") now_request.session = {} now_request.session["myuw_override_date"] = "2012-08-22" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_7d_before_last_instruction"])
def test_js_overrides(self): now_request = self.get_request_for_date('2013-04-01') # Swapping one true, and one false value # from the test_first_day test now_request.session["myuw_after_submission"] = True now_request.session["myuw_after_reg"] = False values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_after_grade_submission_deadline"]) self.assertFalse(values["is_after_last_day_of_classes"]) self.assertFalse( values["is_after_start_of_registration_display_period"]) self.assertTrue(values["is_before_end_of_finals_week"]) self.assertTrue(values["is_before_last_day_of_classes"]) self.assertFalse( values["is_before_end_of_registration_display_period"])
def test_day_on_last_day_of_classes(self): now_request = self.get_request_for_date('2013-06-07') values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_grade_submission_deadline"]) self.assertFalse(values["is_after_last_day_of_classes"]) self.assertTrue( values["is_after_start_of_registration_display_period"]) self.assertTrue(values["is_before_end_of_finals_week"]) # This is a poorly named value - it's really last day + 1 self.assertTrue(values["is_before_last_day_of_classes"]) self.assertTrue(values["is_before_end_of_registration_display_period"]) now = get_comparison_datetime(now_request) self.assertTrue(is_before_last_day_of_classes(now, now_request)) self.assertFalse(is_after_last_day_of_classes(now, now_request)) self.assertTrue( is_after_bof_and_before_eof_reg_period(now, now_request))
def test_13_days_before_period1_registration(self): with self.settings(RESTCLIENTS_SWS_DAO_CLASS=FDAO_SWS): # Using winter term dates, because spring/summer dates # are too close together now_request = RequestFactory().get("/") now_request.session = {} now_request.session["myuw_override_date"] = "2013-02-02" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_grade_submission_deadline"]) self.assertFalse(values["is_after_last_day_of_classes"]) self.assertTrue( values["is_after_start_of_registration_display_period"]) self.assertTrue(values["is_before_end_of_finals_week"]) # This is a poorly named value - it's really last day + 1 self.assertTrue(values["is_before_last_day_of_classes"]) self.assertTrue( values["is_before_end_of_registration_display_period"])
def test_day_of_grade_submission_deadline(self): with self.settings(RESTCLIENTS_SWS_DAO_CLASS=FDAO_SWS): now_request = RequestFactory().get("/") now_request.session = {} # We need to test in winter, because spring's grade submission # deadline is replaced to test grade submission now_request.session["myuw_override_date"] = "2013-03-26" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_grade_submission_deadline"]) self.assertTrue(values["is_after_last_day_of_classes"]) self.assertFalse( values["is_after_start_of_registration_display_period"]) self.assertFalse(values["is_before_end_of_finals_week"]) # This is a poorly named value - it's really last day + 1 self.assertFalse(values["is_before_last_day_of_classes"]) self.assertFalse( values["is_before_end_of_registration_display_period"])
def test_day_on_last_day_of_classes(self): now_request = self.get_request_for_date('2013-06-07') values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_grade_submission_deadline"]) self.assertFalse(values["is_after_last_day_of_classes"]) self.assertTrue( values["is_after_start_of_registration_display_period"]) self.assertTrue(values["is_before_end_of_finals_week"]) # This is a poorly named value - it's really last day + 1 self.assertTrue(values["is_before_last_day_of_classes"]) self.assertTrue( values["is_before_end_of_registration_display_period"]) now = get_comparison_datetime(now_request) self.assertTrue( is_before_last_day_of_classes(now, now_request)) self.assertFalse( is_after_last_day_of_classes(now, now_request)) self.assertTrue( is_after_bof_and_before_eof_reg_period(now, now_request))
def test_last_final_exam_day(self): with self.settings(RESTCLIENTS_SWS_DAO_CLASS=FDAO_SWS): now_request = RequestFactory().get("/") # spring now_request.session = {} now_request.session["myuw_override_date"] = "2013-06-14" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_after_last_day_of_classes"]) self.assertTrue(values["is_before_end_of_finals_week"]) now = get_comparison_datetime(now_request) self.assertTrue(is_before_eof_finals_week(now, now_request)) self.assertFalse(is_before_last_day_of_classes(now, now_request)) now_request = RequestFactory().get("/") now_request.session = {} now_request.session["myuw_override_date"] = "2013-06-15" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_before_end_of_finals_week"]) self.assertFalse(values["is_before_last_day_of_classes"]) now = get_comparison_datetime(now_request) self.assertFalse(is_before_eof_finals_week(now, now_request)) # autumn now_request = RequestFactory().get("/") now_request.session = {} now_request.session["myuw_override_date"] = "2013-12-13" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_end_of_finals_week"]) now_request = RequestFactory().get("/") now_request.session = {} now_request.session["myuw_override_date"] = "2013-12-14" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_before_end_of_finals_week"]) now = get_comparison_datetime(now_request) self.assertFalse(is_before_eof_finals_week(now, now_request)) # winter now_request = RequestFactory().get("/") now_request.session = {} now_request.session["myuw_override_date"] = "2013-03-22" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_end_of_finals_week"]) now_request = RequestFactory().get("/") now_request.session = {} now_request.session["myuw_override_date"] = "2013-03-23" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_before_end_of_finals_week"]) now = get_comparison_datetime(now_request) self.assertFalse(is_before_eof_finals_week(now, now_request))
def test_js_overrides(self): with self.settings(RESTCLIENTS_SWS_DAO_CLASS=FDAO_SWS): now_request = RequestFactory().get("/") now_request.session = {} now_request.session["myuw_override_date"] = "2013-04-01" # Swapping one true, and one false value # from the test_first_day test now_request.session["myuw_after_submission"] = True now_request.session["myuw_after_reg"] = False values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_after_grade_submission_deadline"]) self.assertFalse(values["is_after_last_day_of_classes"]) self.assertFalse( values["is_after_start_of_registration_display_period"]) self.assertTrue(values["is_before_end_of_finals_week"]) self.assertTrue(values["is_before_last_day_of_classes"]) self.assertFalse( values["is_before_end_of_registration_display_period"])
def add_session_context(request, context): if "myuw_override_date" in request.session: context["myuw_override_date"] = request.session["myuw_override_date"] for val in DATE_KEYS: if val in request.session: if request.session[val] is True: context["%s_true" % val] = True else: context["%s_false" % val] = True else: context["%s_unset" % val] = True now_request = RequestFactory().get("/") now_request.session = {} context["values_used"] = get_card_visibilty_date_values(request) now = datetime.now() default = get_default_date() used_date = datetime(default.year, default.month, default.day, now.hour, now.minute, now.second) context["values_now"] = get_values_by_date(used_date, now_request)
def index(request, year=None, quarter=None, summer_term=None): netid = UserService().get_user() if not netid: log_invalid_netid_response(logger, timer) return invalid_session() if _is_mobile(request): # On mobile devices, all students get the current myuw. Non-students # are sent to the legacy site. if not is_student(): return redirect_to_legacy_site() else: # On the desktop, we're migrating users over. There are 2 classes of # users - mandatory and opt-in switchers. The mandatory users, who # are users who haven't been at the UW long enough to be accustomed to # the existing myuw. # The other class of users can opt to use the legacy myuw instead. # Check to see if they have a set preference, and if not, keep them on # the new version if not is_mandatory_switch_user(): if is_optin_switch_user(): if has_legacy_preference(): return redirect_to_legacy_site() else: return redirect_to_legacy_site() timer = Timer() logger = logging.getLogger('myuw.views.page.index') context = { "year": year, "quarter": quarter, "summer_term": summer_term, "home_url": "/", "err": None, "user": { "netid": None, "affiliations": get_all_affiliations(request) }, "card_display_dates": get_card_visibilty_date_values(request), } context["user"]["session_key"] = request.session.session_key log_session(netid, request.session.session_key, request) my_uwemail_forwarding = get_email_forwarding_for_current_user() if my_uwemail_forwarding is not None and my_uwemail_forwarding.is_active(): c_user = context["user"] c_user["email_is_uwgmail"] = my_uwemail_forwarding.is_uwgmail() c_user["email_is_uwlive"] = my_uwemail_forwarding.is_uwlive() context["user"]["netid"] = netid if year is None or quarter is None: cur_term = get_current_quarter(request) if cur_term is None: context["err"] = "No current quarter data!" log_data_not_found_response(logger, timer) else: context["year"] = cur_term.year context["quarter"] = cur_term.quarter else: pass log_success_response_with_affiliation(logger, timer, request) return render_to_response("index.html", context, context_instance=RequestContext(request))
def test_is_before_eof_7days_of_term(self): values = self.get_visibility_for_date('2013-03-26') self.assertFalse(values["is_after_grade_submission_deadline"]) self.assertFalse(values["is_before_eof_7days_of_term"]) # spring values = self.get_visibility_for_date('2013-03-27') self.assertTrue(values["is_before_eof_7days_of_term"]) now_request = self.get_request_for_date('2013-04-08') values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_eof_7days_of_term"]) now = get_comparison_datetime(now_request) self.assertTrue(is_before_eof_7d_after_class_start(now, now_request)) now_request = self.get_request_for_date('2013-04-09') values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_before_eof_7days_of_term"]) now = get_comparison_datetime(now_request) self.assertFalse(is_before_eof_7d_after_class_start(now, now_request)) now_request = self.get_request_for_date('2012-08-21') values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_grade_submission_deadline"]) # autumn values = self.get_visibility_for_date('2012-08-22') self.assertTrue(values["is_before_eof_7days_of_term"]) now_request = self.get_request_for_date('2012-10-01') values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_eof_7days_of_term"]) now = get_comparison_datetime(now_request) self.assertTrue(is_before_eof_7d_after_class_start(now, now_request)) now_request = self.get_request_for_date('2012-10-02') values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_before_eof_7days_of_term"]) now = get_comparison_datetime(now_request) self.assertFalse(is_before_eof_7d_after_class_start(now, now_request)) values = self.get_visibility_for_date('2012-12-18') self.assertFalse(values["is_after_grade_submission_deadline"]) # winter values = self.get_visibility_for_date('2012-12-19') self.assertTrue(values["is_before_eof_7days_of_term"]) now_request = self.get_request_for_date('2013-01-14') values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_eof_7days_of_term"]) now = get_comparison_datetime(now_request) self.assertTrue(is_before_eof_7d_after_class_start(now, now_request)) now_request = self.get_request_for_date('2013-01-15') values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_before_eof_7days_of_term"]) now = get_comparison_datetime(now_request) self.assertFalse(is_before_eof_7d_after_class_start(now, now_request)) values = self.get_visibility_for_date('2012-06-12') self.assertFalse(values["is_after_grade_submission_deadline"]) # summer values = self.get_visibility_for_date('2012-06-13') self.assertTrue(values["is_before_eof_7days_of_term"]) now_request = self.get_request_for_date('2012-06-25') values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_eof_7days_of_term"]) now = get_comparison_datetime(now_request) self.assertTrue(is_before_eof_7d_after_class_start(now, now_request)) # A-term, Full-term now_request = self.get_request_for_date('2012-06-26') values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_before_eof_7days_of_term"]) now = get_comparison_datetime(now_request) self.assertFalse(is_before_eof_7d_after_class_start(now, now_request)) # B-term now_request = self.get_request_for_date('2012-07-26') values = get_card_visibilty_date_values(now_request) now = get_comparison_datetime(now_request) self.assertFalse(is_before_eof_7d_after_class_start(now, now_request))
def get_visibility_for_date(self, date): now_request = self.get_request_for_date(date) values = get_card_visibilty_date_values(now_request) return values
def test_first_day(self): # spring, before grade submission values = self.get_visibility_for_date('2013-03-26') self.assertTrue(values["is_after_last_day_of_classes"]) self.assertFalse(values["is_after_grade_submission_deadline"]) self.assertFalse(values["is_before_first_day_of_term"]) # spring, after grade submission now_request = self.get_request_for_date('2013-03-27') values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_last_day_of_classes"]) self.assertTrue(values["is_after_grade_submission_deadline"]) self.assertTrue(values["is_before_first_day_of_term"]) now = get_comparison_datetime(now_request) self.assertTrue(is_before_bof_term(now, now_request)) # spring, before instruction begins now_request = self.get_request_for_date('2013-03-31') values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_first_day_of_term"]) now = get_comparison_datetime(now_request) self.assertTrue(is_before_bof_term(now, now_request)) # spring, instruction begins now_request = self.get_request_for_date('2013-04-01') values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_grade_submission_deadline"]) self.assertFalse(values["is_after_last_day_of_classes"]) self.assertFalse( values["is_after_start_of_registration_display_period"]) self.assertTrue(values["is_before_end_of_finals_week"]) self.assertTrue(values["is_before_last_day_of_classes"]) self.assertFalse( values["is_before_end_of_registration_display_period"]) self.assertFalse(values["is_before_first_day_of_term"]) now = get_comparison_datetime(now_request) self.assertFalse(is_before_bof_term(now, now_request)) # autumn values = self.get_visibility_for_date('2012-08-21') self.assertTrue(values["is_after_last_day_of_classes"]) self.assertFalse(values["is_after_grade_submission_deadline"]) self.assertFalse(values["is_before_first_day_of_term"]) values = self.get_visibility_for_date('2012-08-22') self.assertFalse(values["is_after_last_day_of_classes"]) self.assertTrue(values["is_after_grade_submission_deadline"]) self.assertTrue(values["is_before_first_day_of_term"]) values = self.get_visibility_for_date('2012-09-24') self.assertFalse(values["is_before_first_day_of_term"]) values = self.get_visibility_for_date('2012-09-23') self.assertTrue(values["is_before_first_day_of_term"]) # winter values = self.get_visibility_for_date('2013-12-17') self.assertTrue(values["is_after_last_day_of_classes"]) self.assertFalse(values["is_after_grade_submission_deadline"]) values = self.get_visibility_for_date('2013-12-18') self.assertFalse(values["is_after_last_day_of_classes"]) self.assertTrue(values["is_after_grade_submission_deadline"]) values = self.get_visibility_for_date('2013-01-07') self.assertFalse(values["is_before_first_day_of_term"]) values = self.get_visibility_for_date('2013-01-06') self.assertTrue(values["is_before_first_day_of_term"]) # summer values = self.get_visibility_for_date('2012-06-12') self.assertTrue(values["is_after_last_day_of_classes"]) self.assertFalse(values["is_after_grade_submission_deadline"]) values = self.get_visibility_for_date('2012-06-13') self.assertFalse(values["is_after_last_day_of_classes"]) self.assertTrue(values["is_after_grade_submission_deadline"]) values = self.get_visibility_for_date('2012-06-18') self.assertFalse(values["is_before_first_day_of_term"]) values = self.get_visibility_for_date('2012-06-17') self.assertTrue(values["is_before_first_day_of_term"])
def test_is_before_eof_7days_of_term(self): values = self.get_visibility_for_date('2013-03-26') self.assertFalse(values["is_after_grade_submission_deadline"]) self.assertFalse(values["is_before_eof_7days_of_term"]) # spring values = self.get_visibility_for_date('2013-03-27') self.assertTrue(values["is_before_eof_7days_of_term"]) now_request = self.get_request_for_date('2013-04-08') values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_eof_7days_of_term"]) now = get_comparison_datetime(now_request) self.assertTrue( is_before_eof_7d_after_class_start(now, now_request)) now_request = self.get_request_for_date('2013-04-09') values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_before_eof_7days_of_term"]) now = get_comparison_datetime(now_request) self.assertFalse( is_before_eof_7d_after_class_start(now, now_request)) now_request = self.get_request_for_date('2012-08-21') values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_grade_submission_deadline"]) # autumn values = self.get_visibility_for_date('2012-08-22') self.assertTrue(values["is_before_eof_7days_of_term"]) now_request = self.get_request_for_date('2012-10-01') values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_eof_7days_of_term"]) now = get_comparison_datetime(now_request) self.assertTrue( is_before_eof_7d_after_class_start(now, now_request)) now_request = self.get_request_for_date('2012-10-02') values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_before_eof_7days_of_term"]) now = get_comparison_datetime(now_request) self.assertFalse( is_before_eof_7d_after_class_start(now, now_request)) values = self.get_visibility_for_date('2012-12-18') self.assertFalse(values["is_after_grade_submission_deadline"]) # winter values = self.get_visibility_for_date('2012-12-19') self.assertTrue(values["is_before_eof_7days_of_term"]) now_request = self.get_request_for_date('2013-01-14') values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_eof_7days_of_term"]) now = get_comparison_datetime(now_request) self.assertTrue( is_before_eof_7d_after_class_start(now, now_request)) now_request = self.get_request_for_date('2013-01-15') values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_before_eof_7days_of_term"]) now = get_comparison_datetime(now_request) self.assertFalse( is_before_eof_7d_after_class_start(now, now_request)) values = self.get_visibility_for_date('2012-06-12') self.assertFalse(values["is_after_grade_submission_deadline"]) # summer values = self.get_visibility_for_date('2012-06-13') self.assertTrue(values["is_before_eof_7days_of_term"]) now_request = self.get_request_for_date('2012-06-25') values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_eof_7days_of_term"]) now = get_comparison_datetime(now_request) self.assertTrue( is_before_eof_7d_after_class_start(now, now_request)) # A-term, Full-term now_request = self.get_request_for_date('2012-06-26') values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_before_eof_7days_of_term"]) now = get_comparison_datetime(now_request) self.assertFalse( is_before_eof_7d_after_class_start(now, now_request)) # B-term now_request = self.get_request_for_date('2012-07-26') values = get_card_visibilty_date_values(now_request) now = get_comparison_datetime(now_request) self.assertFalse( is_before_eof_7d_after_class_start(now, now_request))
def test_myplan_peak_loads(self): with self.settings(RESTCLIENTS_SWS_DAO_CLASS=FDAO_SWS): now_request = RequestFactory().get("/") now_request.session = {} now_request.session["myuw_override_date"] = "2013-04-14 06:00:00" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["myplan_peak_load"]) now_request.session = {} now_request.session["myuw_override_date"] = "2013-04-15 05:29:59" now = get_comparison_datetime(now_request) self.assertFalse(during_myplan_peak_load(now, now_request)) now_request.session = {} now_request.session["myuw_override_date"] = "2013-04-15 05:30:00" now = get_comparison_datetime(now_request) self.assertTrue(during_myplan_peak_load(now, now_request)) now_request.session = {} now_request.session["myuw_override_date"] = "2013-04-16 06:29:00" now = get_comparison_datetime(now_request) self.assertTrue(during_myplan_peak_load(now, now_request)) now_request.session = {} now_request.session["myuw_override_date"] = "2013-05-10 06:29:00" now = get_comparison_datetime(now_request) self.assertTrue(during_myplan_peak_load(now, now_request)) now_request.session = {} now_request.session["myuw_override_date"] = "2013-05-10 06:30:00" now = get_comparison_datetime(now_request) self.assertTrue(during_myplan_peak_load(now, now_request)) now_request.session = {} now_request.session["myuw_override_date"] = "2013-05-22 06:30:00" now = get_comparison_datetime(now_request) self.assertTrue(during_myplan_peak_load(now, now_request)) now_request.session = {} now_request.session["myuw_override_date"] = "2013-05-23 06:29:00" now = get_comparison_datetime(now_request) self.assertTrue(during_myplan_peak_load(now, now_request)) now_request.session = {} now_request.session["myuw_override_date"] = "2013-06-23 06:30:01" now = get_comparison_datetime(now_request) self.assertFalse(during_myplan_peak_load(now, now_request)) now_request.session = {} now_request.session["myuw_override_date"] = "2013-02-15 06:00:00" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["myplan_peak_load"]) now_request.session = {} now_request.session["myuw_override_date"] = "2013-04-15 06:00:00" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["myplan_peak_load"]) now_request.session = {} now_request.session["myuw_override_date"] = "2013-05-11 06:00:00" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["myplan_peak_load"]) now_request.session = {} now_request.session["myuw_override_date"] = "2013-06-23 06:00:00" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["myplan_peak_load"])
def test_is_before_eof_7days_of_term(self): with self.settings(RESTCLIENTS_SWS_DAO_CLASS=FDAO_SWS): now_request = RequestFactory().get("/") now_request.session = {} now_request.session["myuw_override_date"] = "2013-03-26" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_grade_submission_deadline"]) self.assertFalse(values["is_before_eof_7days_of_term"]) # spring now_request.session = {} now_request.session["myuw_override_date"] = "2013-03-27" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_eof_7days_of_term"]) now_request.session = {} now_request.session["myuw_override_date"] = "2013-04-08" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_eof_7days_of_term"]) now = get_now(now_request) self.assertTrue( is_before_eof_7d_after_class_start(now, now_request)) now_request.session = {} now_request.session["myuw_override_date"] = "2013-04-09" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_before_eof_7days_of_term"]) now = get_now(now_request) self.assertFalse( is_before_eof_7d_after_class_start(now, now_request)) # autumn now_request.session = {} now_request.session["myuw_override_date"] = "2012-08-21" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_grade_submission_deadline"]) now_request.session = {} now_request.session["myuw_override_date"] = "2012-08-22" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_eof_7days_of_term"]) now_request.session = {} now_request.session["myuw_override_date"] = "2012-10-01" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_eof_7days_of_term"]) now = get_now(now_request) self.assertTrue( is_before_eof_7d_after_class_start(now, now_request)) now_request.session = {} now_request.session["myuw_override_date"] = "2012-10-02" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_before_eof_7days_of_term"]) now = get_now(now_request) self.assertFalse( is_before_eof_7d_after_class_start(now, now_request)) now_request.session = {} now_request.session["myuw_override_date"] = "2012-12-18" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_grade_submission_deadline"]) # winter now_request.session = {} now_request.session["myuw_override_date"] = "2012-12-19" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_eof_7days_of_term"]) now_request.session = {} now_request.session["myuw_override_date"] = "2013-01-14" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_eof_7days_of_term"]) now = get_now(now_request) self.assertTrue( is_before_eof_7d_after_class_start(now, now_request)) now_request.session = {} now_request.session["myuw_override_date"] = "2013-01-15" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_before_eof_7days_of_term"]) now = get_now(now_request) self.assertFalse( is_before_eof_7d_after_class_start(now, now_request)) now_request.session = {} now_request.session["myuw_override_date"] = "2012-06-12" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_grade_submission_deadline"]) # summer now_request.session = {} now_request.session["myuw_override_date"] = "2012-06-13" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_eof_7days_of_term"]) now_request.session = {} now_request.session["myuw_override_date"] = "2012-06-25" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_eof_7days_of_term"]) now = get_now(now_request) self.assertTrue( is_before_eof_7d_after_class_start(now, now_request)) # A-term, Full-term now_request.session = {} now_request.session["myuw_override_date"] = "2012-06-26" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_before_eof_7days_of_term"]) now = get_now(now_request) self.assertFalse( is_before_eof_7d_after_class_start(now, now_request)) # B-term now_request.session = {} now_request.session["myuw_override_date"] = "2012-07-26" values = get_card_visibilty_date_values(now_request) now = get_now(now_request) self.assertFalse( is_before_eof_7d_after_class_start(now, now_request))
def test_first_day(self): with self.settings(RESTCLIENTS_SWS_DAO_CLASS=FDAO_SWS): now_request = RequestFactory().get("/") # spring before grade submission now_request.session = {} now_request.session["myuw_override_date"] = "2013-03-26" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_after_last_day_of_classes"]) self.assertFalse(values["is_after_grade_submission_deadline"]) self.assertFalse(values["is_before_first_day_of_term"]) # spring after grade submission now_request.session = {} now_request.session["myuw_override_date"] = "2013-03-27" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_last_day_of_classes"]) self.assertTrue(values["is_after_grade_submission_deadline"]) self.assertTrue(values["is_before_first_day_of_term"]) now = get_now(now_request) self.assertTrue(is_before_bof_term(now, now_request)) # spring before Instruction Begins now_request.session = {} now_request.session["myuw_override_date"] = "2013-03-31" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_first_day_of_term"]) now = get_now(now_request) self.assertTrue(is_before_bof_term(now, now_request)) # spring Instruction Begins now_request.session = {} now_request.session["myuw_override_date"] = "2013-04-01" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_grade_submission_deadline"]) self.assertFalse(values["is_after_last_day_of_classes"]) self.assertFalse( values["is_after_start_of_registration_display_period"]) self.assertTrue(values["is_before_end_of_finals_week"]) self.assertTrue(values["is_before_last_day_of_classes"]) self.assertFalse( values["is_before_end_of_registration_display_period"]) self.assertFalse(values["is_before_first_day_of_term"]) now = get_now(now_request) self.assertFalse(is_before_bof_term(now, now_request)) # autumn now_request.session = {} now_request.session["myuw_override_date"] = "2012-08-21" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_after_last_day_of_classes"]) self.assertFalse(values["is_after_grade_submission_deadline"]) self.assertFalse(values["is_before_first_day_of_term"]) now_request.session = {} now_request.session["myuw_override_date"] = "2012-08-22" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_last_day_of_classes"]) self.assertTrue(values["is_after_grade_submission_deadline"]) self.assertTrue(values["is_before_first_day_of_term"]) now_request.session = {} now_request.session["myuw_override_date"] = "2012-09-24" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_before_first_day_of_term"]) now_request.session = {} now_request.session["myuw_override_date"] = "2012-09-23" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_first_day_of_term"]) # winter now_request.session = {} now_request.session["myuw_override_date"] = "2013-12-17" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_after_last_day_of_classes"]) self.assertFalse(values["is_after_grade_submission_deadline"]) now_request.session = {} now_request.session["myuw_override_date"] = "2013-12-18" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_last_day_of_classes"]) self.assertTrue(values["is_after_grade_submission_deadline"]) now_request.session = {} now_request.session["myuw_override_date"] = "2013-01-07" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_before_first_day_of_term"]) now_request.session = {} now_request.session["myuw_override_date"] = "2013-01-06" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_first_day_of_term"]) # summer now_request.session = {} now_request.session["myuw_override_date"] = "2012-06-12" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_after_last_day_of_classes"]) self.assertFalse(values["is_after_grade_submission_deadline"]) now_request.session = {} now_request.session["myuw_override_date"] = "2012-06-13" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_after_last_day_of_classes"]) self.assertTrue(values["is_after_grade_submission_deadline"]) now_request.session = {} now_request.session["myuw_override_date"] = "2012-06-18" values = get_card_visibilty_date_values(now_request) self.assertFalse(values["is_before_first_day_of_term"]) now_request.session = {} now_request.session["myuw_override_date"] = "2012-06-17" values = get_card_visibilty_date_values(now_request) self.assertTrue(values["is_before_first_day_of_term"])
def index(request, year=None, quarter=None, summer_term=None): timer = Timer() netid = UserService().get_user() if not netid: log_invalid_netid_response(logger, timer) return invalid_session() if _is_mobile(request): # On mobile devices, all students get the current myuw. Non-students # are sent to the legacy site. try: if not is_student(): logger.info("%s not a student, redirect to legacy!" % netid) return redirect_to_legacy_site() except Exception: log_exception(logger, '%s is_student' % netid, traceback.format_exc()) logger.info("%s, redirected to legacy!" % netid) return redirect_to_legacy_site() else: if is_oldmyuw_user(): return redirect_to_legacy_site() context = { "year": year, "quarter": quarter, "summer_term": summer_term, "home_url": "/", "err": None, "user": { "netid": None, "affiliations": get_all_affiliations(request) }, "card_display_dates": get_card_visibilty_date_values(request), } context["user"]["session_key"] = request.session.session_key log_session(netid, request.session.session_key, request) try: my_uwemail_forwarding = get_email_forwarding_for_current_user() if my_uwemail_forwarding.is_active(): c_user = context["user"] c_user["email_is_uwgmail"] = my_uwemail_forwarding.is_uwgmail() c_user["email_is_uwlive"] = my_uwemail_forwarding.is_uwlive() except Exception: log_exception(logger, 'get_email_forwarding_for_current_user', traceback.format_exc()) pass context["user"]["netid"] = netid if year is None or quarter is None: cur_term = get_current_quarter(request) if cur_term is None: context["err"] = "No current quarter data!" else: context["year"] = cur_term.year context["quarter"] = cur_term.quarter else: pass log_success_response_with_affiliation(logger, timer, request) return render_to_response("index.html", context, context_instance=RequestContext(request))