Skip to content

Commit d659a70

Browse files
authored
Merge pull request #3028 from uw-it-aca/qa
* point qa to idp-eval for oidc * test pod ENV is dev * Fix/muwm 5318 (#3027) * Resolve MUWM-5318 * adjust minReplicas
2 parents d39ccfc + 15efeb7 commit d659a70

File tree

9 files changed

+75
-56
lines changed

9 files changed

+75
-56
lines changed

docker/prod-values.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
autoscaling:
22
enabled: true
3-
minReplicas: 8
4-
maxReplicas: 80
3+
minReplicas: 3
4+
maxReplicas: 100
55
targetAverageUtilization: 100
66
resources:
77
limits:

myuw/dao/calendar.py

+5-10
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,12 @@
22
# SPDX-License-Identifier: Apache-2.0
33

44
import re
5-
import pytz
65
from datetime import timedelta, datetime, time
76
from urllib.parse import quote_plus, urlencode
8-
from django.utils import timezone
7+
from uw_sws import SWS_TIMEZONE
98
from restclients_core.exceptions import DataFailureException
109
from uw_trumba import get_calendar_by_name
11-
from myuw.util.settings import get_calendar_time_zone
12-
from myuw.dao.term import get_comparison_date
10+
from myuw.dao.term import get_comparison_datetime_with_tz
1311
from myuw.dao.calendar_mapping import get_calendars_for_current_user
1412

1513

@@ -20,9 +18,7 @@
2018

2119

2220
def api_request(request):
23-
current_date = get_comparison_date(request)
24-
current_date = datetime.combine(current_date, timezone.now().time())
25-
current_date = pytz.utc.localize(current_date)
21+
current_date = get_comparison_datetime_with_tz(request)
2622
calendar_ids = get_calendars_for_current_user(request)
2723
return get_events(calendar_ids, current_date)
2824

@@ -199,6 +195,5 @@ def parse_event_location(event):
199195
def _get_date(date):
200196
if hasattr(date, 'hour'):
201197
return date
202-
midnight = time(hour=0, minute=0,
203-
tzinfo=pytz.timezone(get_calendar_time_zone()))
204-
return datetime.combine(date, midnight)
198+
datetime_naive = datetime.combine(date, time(hour=0, minute=0))
199+
return SWS_TIMEZONE.localize(datetime_naive) # MUWM-5318

myuw/resources/calendar/file/calendars/5_current.ics

+49
Original file line numberDiff line numberDiff line change
@@ -119,4 +119,53 @@ CATEGORIES:Organic Seminars
119119
UID:http://uid.trumba.com/event/1107241160
120120
END:VEVENT
121121

122+
BEGIN:VEVENT
123+
SUMMARY:Thanksgiving Day
124+
DTSTART;VALUE=DATE:20131128
125+
DTEND;VALUE=DATE:20131129
126+
X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
127+
URL:https://www.washington.edu/students/reg/1314cal.html#Q3
128+
X-TRUMBA-CUSTOMFIELD;NAME="Event Type";ID=21;TYPE=number:Important Dates
129+
/Deadlines
130+
X-TRUMBA-CUSTOMFIELD;NAME="Event interval";ID=30051;TYPE=CustomAsset:Sin
131+
gle day event
132+
X-TRUMBA-CUSTOMFIELD;NAME="Year";ID=30147;TYPE=CustomAsset:2013
133+
X-TRUMBA-CUSTOMFIELD;NAME="Quarter";ID=30148;TYPE=CustomAsset:Autumn
134+
X-TRUMBA-CUSTOMFIELD;NAME="Event Types";ID=30073;TYPE=CustomAsset:Academ
135+
ics
136+
X-TRUMBA-CUSTOMFIELD;NAME="Type of important dates";ID=30149;TYPE=Custom
137+
Asset:Holidays
138+
DTSTAMP:20130110T124546Z
139+
DESCRIPTION:Event interval: Single day event<br>Year: 2013<br>Quarter: A
140+
utumn<br>Event Types: Academics<br>Link: https://www.washington.edu/stud
141+
ents/reg/2324cal.html#Q3<br><br>No classes. Most University offices and
142+
buildings are closed. Check with specific offices to confirm.
143+
CATEGORIES:Holidays
144+
UID:http://uid.trumba.com/event/164159383
145+
END:VEVENT
146+
147+
BEGIN:VEVENT
148+
SUMMARY:Native American Heritage Day
149+
DTSTART;VALUE=DATE:20131129
150+
DTEND;VALUE=DATE:20131130
151+
X-MICROSOFT-CDO-ALLDAYEVENT:TRUE
152+
URL:https://www.washington.edu/students/reg/1314cal.html#Q3
153+
X-TRUMBA-CUSTOMFIELD;NAME="Event Type";ID=21;TYPE=number:Important Dates
154+
/Deadlines
155+
X-TRUMBA-CUSTOMFIELD;NAME="Event interval";ID=30051;TYPE=CustomAsset:Sin
156+
gle day event
157+
X-TRUMBA-CUSTOMFIELD;NAME="Year";ID=30147;TYPE=CustomAsset:2013
158+
X-TRUMBA-CUSTOMFIELD;NAME="Quarter";ID=30148;TYPE=CustomAsset:Autumn
159+
X-TRUMBA-CUSTOMFIELD;NAME="Event Types";ID=30073;TYPE=CustomAsset:Academ
160+
ics
161+
X-TRUMBA-CUSTOMFIELD;NAME="Type of important dates";ID=30149;TYPE=Custom
162+
Asset:Holidays
163+
DTSTAMP:20130110T124509Z
164+
DESCRIPTION:Event interval: Single day event<br>Year: 2013<br>Quarter: A
165+
utumn<br>Event Types: Academics<br>Link: https://www.washington.edu/stud
166+
ents/reg/2324cal.html#Q3<br><br>No classes. Most University offices and
167+
buildings are closed. Check with specific offices to confirm.
168+
CATEGORIES:Holidays
169+
UID:http://uid.trumba.com/event/164159384
170+
END:VEVENT
122171
END:VCALENDAR

myuw/test/api/test_dept_calendar.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,8 @@ def test_javerage_cal_apr15(self):
3939
'21160%26view%3Devent'
4040
)
4141
self.assertTrue(event_two['is_all_day'])
42-
self.assertEqual(event_two['start'], '2013-04-18T00:00:00-07:53')
43-
self.assertEqual(event_two['end'], '2013-04-18T00:00:00-07:53')
42+
self.assertEqual(event_two['start'], '2013-04-18T00:00:00-07:00')
43+
self.assertEqual(event_two['end'], '2013-04-18T00:00:00-07:00')
4444

4545
def test_javerage_cal_feb15(self):
4646
'''Test javerage's deptcal on date with no events'''

myuw/test/dao/test_calendar.py

+13-6
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,10 @@
11
# Copyright 2023 UW-IT, University of Washington
22
# SPDX-License-Identifier: Apache-2.0
33

4-
import json
5-
import pytz
64
from unittest import skipIf
7-
from datetime import date, datetime
5+
from datetime import datetime
86
from django.test import TestCase
7+
from uw_sws import SWS_TIMEZONE
98
from myuw.dao.calendar import get_events
109

1110

@@ -14,7 +13,7 @@
1413

1514
class TestCalendar(TestCase):
1615
def setUp(self):
17-
self.now = datetime(2013, 4, 15, 0, 0, 0, tzinfo=pytz.utc)
16+
self.now = datetime(2013, 4, 15, 0, 0, 0, tzinfo=SWS_TIMEZONE)
1817

1918
def test_far_future(self):
2019
cal = {'far_future': None}
@@ -74,10 +73,18 @@ def test_active_cals(self):
7473
self.assertEqual(event_response['active_cals'][0]['title'],
7574
"Department of Five Events")
7675

77-
def test_all_day_1(self):
76+
def test_pst_pdt(self):
77+
# MUWM-5318
7878
cal = {'5_current': None}
7979
event_response = get_events(cal, self.now)
80-
self.assertTrue(event_response['events'][3]['is_all_day'])
80+
self.assertFalse(event_response['events'][0]['is_all_day'])
81+
self.assertEqual(event_response['events'][0]['start'],
82+
'2013-04-16T16:00:00-07:00')
83+
self.now = datetime(2013, 11, 15, 0, 0, 0, tzinfo=SWS_TIMEZONE)
84+
event_response = get_events(cal, self.now)
85+
self.assertTrue(event_response['events'][0]['is_all_day'])
86+
self.assertEqual(event_response['events'][0]['start'],
87+
'2013-11-28T00:00:00-08:00')
8188

8289
def test_no_location(self):
8390
cal = {'5_current': None}

myuw/test/util/test_settings.py

+2-4
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from django.test import TestCase
66
from django.conf import settings
77
from myuw.util.settings import (
8-
get_calendar_time_zone, get_myuwclass_url, get_myuw_test_access_group,
8+
get_myuwclass_url, get_myuw_test_access_group,
99
get_mailman_courserequest_recipient, get_google_search_key,
1010
get_myuw_admin_group, get_myuw_override_group, get_myuw_astra_group_stem,
1111
get_disable_actions_when_override, get_enabled_features, get_logout_url,
@@ -15,8 +15,7 @@
1515
class TestSetting(TestCase):
1616

1717
def test_default(self):
18-
with self.settings(TRUMBA_CALENDAR_TIMEZONE='America/Los_Angeles',
19-
MAILMAN_COURSEREQUEST_RECIPIENT="",
18+
with self.settings(MAILMAN_COURSEREQUEST_RECIPIENT="",
2019
GOOGLE_SEARCH_KEY="",
2120
LOGOUT_URL="/user_logout",
2221
MYUW_SKIP_ACCESS_CHECK=False,
@@ -30,7 +29,6 @@ def test_default(self):
3029
CRONJOB_RECIPIENT="mycron",
3130
CRONJOB_SENDER="my"):
3231

33-
self.assertEqual(get_calendar_time_zone(), 'America/Los_Angeles')
3432
self.assertEqual(get_mailman_courserequest_recipient(), "")
3533
self.assertEqual(get_google_search_key(), "")
3634
self.assertEqual(get_logout_url(), "/user_logout")

myuw/util/settings.py

-5
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,6 @@
44
from django.conf import settings
55

66

7-
def get_calendar_time_zone():
8-
return getattr(settings, 'TRUMBA_CALENDAR_TIMEZONE',
9-
'America/Los_Angeles')
10-
11-
127
def get_mailman_courserequest_recipient():
138
return getattr(settings, 'MAILMAN_COURSEREQUEST_RECIPIENT', None)
149

myuw_vue/components/home/events/list-events.vue

+2-9
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
<ul class="list-unstyled mb-0 myuw-text-md">
33
<li v-for="(event, i) in events" :key="i" class="mb-2">
44
<strong>
5-
{{ acalDateFormat(event.start_date, event.end_date) }}
5+
{{ formatDateRange(event.start_date, event.end_date) }}
66
</strong>
77
<a
88
v-out="'View event details'"
@@ -48,19 +48,12 @@ export default {
4848
};
4949
},
5050
methods: {
51-
acalDateFormat(d1, d2) {
52-
let formattedDate = d1.format('MMMM D');
53-
if (d1.format('D') !== d2.format('D')) {
54-
formattedDate += d2.format(' - D');
55-
}
56-
return formattedDate;
57-
},
5851
generateLabel(event) {
5952
let label = '';
6053
6154
if (event.start_date && event.end_date) {
6255
label += `${
63-
this.acalDateFormat(event.start_date, event.end_date)
56+
this.formatDateRange(event.start_date, event.end_date)
6457
}. ${event.start_date.format('h:mm A')}. `;
6558
}
6659

myuw_vue/tests/events-card.test.js

-18
Original file line numberDiff line numberDiff line change
@@ -69,24 +69,6 @@ describe('Event Store and Card', () => {
6969
expect(wrapper.find('h2').text()).toEqual('Events');
7070
});
7171

72-
it('acalDateFormat', () => {
73-
axios.get.mockResolvedValue({data: mockEvents, status: 200});
74-
const wrapper = mount(ListEvents, {
75-
store,
76-
localVue,
77-
propsData: {
78-
events: [],
79-
}
80-
});
81-
82-
expect(
83-
wrapper.vm.acalDateFormat(dayjs('2020-08-19'), dayjs('2020-08-19'))
84-
).toEqual('August 19');
85-
expect(
86-
wrapper.vm.acalDateFormat(dayjs('2020-08-19'), dayjs('2020-08-20'))
87-
).toEqual('August 19 - 20');
88-
});
89-
9072
it('Future Cal Render', () => {
9173
axios.get.mockResolvedValue({
9274
data: { 'future_active_cals': mockEvents['future_active_cals'] },

0 commit comments

Comments
 (0)