Skip to content

Commit

Permalink
Merge pull request #3202 from uw-it-aca/qa
Browse files Browse the repository at this point in the history
Feat/muwm 5381 (#3196)
  • Loading branch information
fanglinfang authored Mar 7, 2025
2 parents 085efe1 + 5b95722 commit 0220d2f
Show file tree
Hide file tree
Showing 54 changed files with 390 additions and 35 deletions.
14 changes: 7 additions & 7 deletions docker/prod-values.yml
Original file line number Diff line number Diff line change
Expand Up @@ -280,7 +280,7 @@ environmentVariables:
- name: IASYSTEM_UW_TIMEOUT
value: "10"
- name: IASYSTEM_UW_POOL_SIZE
value: "20"
value: "25"

- name: IASYSTEM_UWB_ENV
value: PROD
Expand Down Expand Up @@ -315,14 +315,14 @@ environmentVariables:
- name: LIBCURRICS_POOL_SIZE
value: "30"
- name: LIBCURRICS_TIMEOUT
value: "7"
value: "5"

- name: LIBRARIES_ENV
value: PROD
- name: LIBRARIES_POOL_SIZE
value: "30"
- name: LIBRARIES_TIMEOUT
value: "7"
value: "5"

- name: MAILMAN_ENV
value: PROD
Expand All @@ -343,7 +343,7 @@ environmentVariables:
- name: PWS_ENV
value: PROD
- name: PWS_TIMEOUT
value: "10"
value: "7"
- name: PWS_POOL_SIZE
value: "50"

Expand All @@ -352,7 +352,7 @@ environmentVariables:
- name: SDBMYUW_POOL_SIZE
value: "30"
- name: SDBMYUW_TIMEOUT
value: "10"
value: "5"

- name: SWS_ENV
value: PROD
Expand All @@ -369,14 +369,14 @@ environmentVariables:
- name: UPASS_TIMEOUT
value: "10"
- name: UPASS_POOL_SIZE
value: "20"
value: "30"

- name: UWNETID_ENV
value: PROD
- name: UWNETID_POOL_SIZE
value: "40"
- name: UWNETID_TIMEOUT
value: "10"
value: "7"

- name: UWIDP_ENV
value: PROD
Expand Down
2 changes: 1 addition & 1 deletion myuw/dao/affiliation.py
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ def get_all_affiliations(request):
"hxt_viewer": is_hxt_viewer,
"alum_asso": is_alum_asso(request),
"alumni": is_alumni(request) and not_major_affi,
"retiree": is_retiree(request) and not_major_affi,
"retiree": is_retiree(request),
"past_employee": is_prior_employee(request) and not_major_affi,
"past_stud": is_prior_student(request) and not_major_affi,
"no_1st_class_affi": not_major_affi,
Expand Down
13 changes: 13 additions & 0 deletions myuw/dao/idcard_elig.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# Copyright 2025 UW-IT, University of Washington
# SPDX-License-Identifier: Apache-2.0

"""
This class interactes with the idcard eligibility web service.
"""

from uw_admin_systems.idcard import get_idcard_elig
from myuw.dao import get_netid_of_current_user


def get_idcard_eli(request):
return get_idcard_elig(get_netid_of_current_user(request)).json_data()
1 change: 1 addition & 0 deletions myuw/dao/student_profile.py
Original file line number Diff line number Diff line change
Expand Up @@ -169,6 +169,7 @@ def _has_only_dropped_degrees(first, second):
has_added = len(set(second) - set(first)) > 0
return has_dropped and not has_added


def _get_residency_change(terms, enrollments, current_resident_code):
# MUWM-5352
for term in terms:
Expand Down
2 changes: 1 addition & 1 deletion myuw/dao/upass.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
"""

from datetime import timedelta
from uw_upass import get_upass_status
from uw_admin_systems.upass import get_upass_status
from myuw.dao import get_netid_of_current_user
from myuw.dao.gws import is_student
from myuw.dao.term import (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,13 @@
"+1 425 555-1236"],
"Pagers":[],
"Name" : "Eos, James",
"Positions":[{
"EWPDept":"",
"EWPTitle":"",
"Primary":true}],
"Positions": [
{
"EWPDept": "University of Washington",
"EWPTitle": "Retiree",
"Primary": true
}
],
"PublishInDirectory": false,
"TouchDials":[],
"VoiceMails":[]},
Expand Down
6 changes: 3 additions & 3 deletions myuw/resources/pws/file/identity/v2/person/jeos/full.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,9 @@
"Pagers":[],
"Name" : "Eos, James",
"Positions":[{
"EWPDept":"",
"EWPTitle":"",
"Primary":true}],
"EWPDept": "University of Washington",
"EWPTitle": "Retiree",
"Primary": true}],
"PublishInDirectory": false,
"TouchDials":[],
"VoiceMails":[]},
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uwId":"bill","empCardElig":"Y","stdtCardElig":"N"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uwId":"billbot","empCardElig":"Y","stdtCardElig":"N"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uwId":"billgrad","empCardElig":"Y","stdtCardElig":"Y"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uwId":"billpce","empCardElig":"Y","stdtCardElig":"N"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uwId":"billsea","empCardElig":"Y","stdtCardElig":"N"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uwId":"billtac","empCardElig":"Y","stdtCardElig":"N"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uwId":"botgrad","empCardElig":"N","stdtCardElig":"Y"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uwId":"eight","empCardElig":"N","stdtCardElig":"Y"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uwId":"javg001","empCardElig":"N","stdtCardElig":"Y"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uwId":"javg002","empCardElig":"N","stdtCardElig":"Y"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uwId":"javg003","empCardElig":"N","stdtCardElig":"Y"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uwId":"javg004","empCardElig":"N","stdtCardElig":"Y"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uwId":"eight","empCardElig":"N","stdtCardElig":"Y"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uwId":"jeos","empCardElig":"R","stdtCardElig":"Y"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uwId":"jinter","empCardElig":"N","stdtCardElig":"N"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uwId":"jnew","empCardElig":"N","stdtCardElig":"N"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uwId":"jpce","empCardElig":"N","stdtCardElig":"N"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uwId":"retirestaff","empCardElig":"R","stdtCardElig":"N"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uwId":"seagrad","empCardElig":"N","stdtCardElig":"Y"}
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"uwId":"tacgrad","empCardElig":"N","stdtCardElig":"N"}
2 changes: 2 additions & 0 deletions myuw/templates/accounts.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
<myuw-tuition-fees></myuw-tuition-fees>
<!-- <myuw-medicine-account></myuw-medicine-account> -->
<myuw-hfs-sea></myuw-hfs-sea>
<myuw-idcard></myuw-idcard>
<myuw-husky></myuw-husky>
<myuw-hr-payroll></myuw-hr-payroll>
<myuw-library></myuw-library>
Expand All @@ -27,6 +28,7 @@
<myuw-tuition-fees></myuw-tuition-fees>
<!-- <myuw-medicine-account></myuw-medicine-account> -->
<myuw-hfs-sea></myuw-hfs-sea>
<myuw-idcard></myuw-idcard>
<myuw-husky></myuw-husky>
<myuw-hr-payroll></myuw-hr-payroll>
<myuw-library></myuw-library>
Expand Down
25 changes: 23 additions & 2 deletions myuw/templates/restclients/customform/upass/index.html
Original file line number Diff line number Diff line change
@@ -1,2 +1,23 @@
<h1>UPASS</h1>
{% include "restclients/customform/_common/netid.html" %}
<h1>Husky Card</h1>
<form method="post" action="{{form_action}}">
{% csrf_token %}
<p>
<label for="uwnetid">UW NetID:</label>
<input id="uwnetid" name="uwnetid" size="20" type="text">
</p>
<p>Find any of the following:</p>
<fieldset>
<div>
<input type="radio" id="res" name="res" value="idcard" />
<label for="res">Husky Card ID Eligibility</label>
</div>
<div>
<input type="radio" id="res" name="res" value="upass" />
<label for="res">UPASS Membership</label>
</div>
</fieldset>
<br />
<p>
<input value="Submit" type="submit">
</p>
</form>
4 changes: 3 additions & 1 deletion myuw/templates/supporttools/custom_sidebar_links.html
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ <h3>Web Services</h3>
</li>
{% endif %}

{% url 'myuw_rest_search' 'idcard_elig' 'index.html' as idcard_elig_url %}

{% url 'myuw_rest_search' 'book' 'iacourse.html' as iacourse_url %}
{% if iacourse_url %}
<li>
Expand Down Expand Up @@ -127,7 +129,7 @@ <h3>Web Services</h3>
{% url 'myuw_rest_search' 'upass' 'index.html' as upass_url %}
{% if upass_url %}
<li>
<a href="{{ upass_url }}">UPASS</a>
<a href="{{ upass_url }}">ID Card</a>
</li>
{% endif %}
<br />
Expand Down
2 changes: 1 addition & 1 deletion myuw/test/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
from uw_bookstore.util import fdao_bookstore_override
from uw_canvas.utilities import fdao_canvas_override
from uw_mailman.util import fdao_mailman_override
from uw_upass.util import fdao_upass_override
from uw_admin_systems.util import fdao_uw_admin_sys_override
from uw_hfs.util import fdao_hfs_override
from restclients_core.util.decorators import use_mock

Expand Down
2 changes: 1 addition & 1 deletion myuw/test/api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
fdao_hfs_override, fdao_gws_override,
fdao_pws_override, fdao_grad_override,
fdao_bookstore_override, fdao_canvas_override,
fdao_mailman_override, fdao_upass_override)
fdao_mailman_override, fdao_uw_admin_sys_override)
from django.urls import NoReverseMatch

VALIDATE = "myuw.authorization.validate_netid"
Expand Down
31 changes: 31 additions & 0 deletions myuw/test/api/test_idcard_elig.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Copyright 2025 UW-IT, University of Washington
# SPDX-License-Identifier: Apache-2.0

from datetime import datetime
import json
from myuw.test.api import (
MyuwApiTest, require_url, fdao_uw_admin_sys_override)


@fdao_uw_admin_sys_override
@require_url("myuw_idcard_elig_api")
class TestIDcardApi(MyuwApiTest):

def test_normal(self):
self.set_user('javerage')
response = self.get_response_by_reverse('myuw_idcard_elig_api')
self.assertEqual(response.status_code, 200)
self.assertEqual(
json.loads(response.content.decode("UTF-8")),
{
"not_eligible": False,
"employee_eligible": True,
"student_eligible": True,
"retiree_eligible": False,
},
)

def test_error_404(self):
self.set_user('noexist')
response = self.get_response_by_reverse('myuw_idcard_elig_api')
self.assertEqual(response.status_code, 404)
4 changes: 2 additions & 2 deletions myuw/test/api/test_upass.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@
from datetime import datetime
import json
from myuw.test.api import (
MyuwApiTest, require_url, fdao_upass_override,
MyuwApiTest, require_url, fdao_uw_admin_sys_override,
fdao_sws_override, fdao_gws_override)


@fdao_upass_override
@fdao_uw_admin_sys_override
@fdao_sws_override
@fdao_gws_override
@require_url('myuw_upass_api')
Expand Down
6 changes: 6 additions & 0 deletions myuw/test/dao/test_affiliation.py
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,12 @@ def test_is_retiree(self):
self.assertTrue(affiliations["past_stud"])
self.assertTrue(affiliations["no_1st_class_affi"])

now_request = get_request_with_user("jeos")
affiliations = get_all_affiliations(now_request)
self.assertTrue(affiliations["retiree"])
self.assertTrue(affiliations["student"])
self.assertFalse(affiliations["employee"])

def test_is_pce_stud(self):
now_request = get_request_with_user('jpce')
affiliations = get_all_affiliations(now_request)
Expand Down
29 changes: 29 additions & 0 deletions myuw/test/dao/test_idcard.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
# Copyright 2025 UW-IT, University of Washington
# SPDX-License-Identifier: Apache-2.0

from django.test import TestCase
from restclients_core.exceptions import DataFailureException
from myuw.dao.idcard_elig import get_idcard_eli
from myuw.test import (
fdao_uw_admin_sys_override, get_request_with_user)


@fdao_uw_admin_sys_override
class TestIDcardDao(TestCase):

def test_get_idcard_eli(self):
req = get_request_with_user("javerage")
status = get_idcard_eli(req)
self.assertEqual(status, {
"not_eligible": False,
"employee_eligible": True,
"student_eligible": True,
"retiree_eligible": False})

req = get_request_with_user("jpce")
status = get_idcard_eli(req)
self.assertEqual(status, {
"not_eligible": True,
"employee_eligible": False,
"student_eligible": False,
"retiree_eligible": False})
5 changes: 5 additions & 0 deletions myuw/test/dao/test_pws.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,11 @@ def test_is_retiree(self):
self.assertTrue(is_alumni(req))
self.assertTrue(is_prior_student(req))

req = get_request_with_user("jeos")
self.assertTrue(is_retiree(req))
self.assertTrue(is_alumni(req))
self.assertTrue(is_student(req))

def test_is_prior_employee(self):
req = get_request_with_user('jpce')
self.assertTrue(is_prior_employee(req))
Expand Down
4 changes: 2 additions & 2 deletions myuw/test/dao/test_upass.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,11 @@
from restclients_core.exceptions import DataFailureException
from myuw.dao.upass import get_upass, in_summer_display_window
from myuw.test import (
fdao_upass_override, get_request_with_user,
fdao_uw_admin_sys_override, get_request_with_user,
get_request_with_date, fdao_sws_override, fdao_gws_override)


@fdao_upass_override
@fdao_uw_admin_sys_override
@fdao_sws_override
@fdao_gws_override
class TestUPassDao(TestCase):
Expand Down
4 changes: 2 additions & 2 deletions myuw/test/views/test_errors.py
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ def test_no_access(self):
self.assertEqual(
response.content,
(
b"<p>This is a test environment of MyUW, "
b"its access is limited to specific people. To request access, "
b"<p>This is a test environment of MyUW, its access "
b"is limited to specific people. To request access, "
b'please contact the <a href="https://it.uw.edu/help/uw/'
b'">UW-IT Service Center</a>.</p>'
),
Expand Down
Loading

0 comments on commit 0220d2f

Please sign in to comment.