Skip to content

Commit

Permalink
Merge pull request #10 from uw-it-aca/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
fanglinfang committed Nov 21, 2018
2 parents 09afff5 + a40c464 commit ca06ed2
Show file tree
Hide file tree
Showing 9 changed files with 61 additions and 46 deletions.
6 changes: 3 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ before_script:
- pip install nose2
- pip install coverage
- pip install commonconf
- pip install python-coveralls
- pip install coveralls
script:
- pycodestyle uw_grad/ --exclude=uw_grad/tests
- pycodestyle uw_grad/
- coverage run --source=uw_grad uw_grad/test.py -v
after_script:
- coveralls
Expand All @@ -25,4 +25,4 @@ deploy:
secure: og2aSaURgwLh85l6ZvZUZ9JQpKOws2OF0OGpzMWbNvH9VT1JLW1roEbr5ocUhnWYpkOjt+YLDL8R6Id/8KbUuMi2RXrcstoXM9/SICtfceMHX+3tlx+YLX7Xtud5q9z+QcxurfpeHjfLHyAxbwz7GE2gkUOUwtSy4i403qcMJ5TAlCmoYZn6Jdce/0n+8j9aqeduryMPHJQ2Y/jQtqt4RcYIhk3ZYHoC2TLayKyZmMU+7XYqBmFoHNwVWVenSgOGK+iB/B1/ZRnjqOGG5kSz40wSRHAkYNRRz0nGSf7w9v4zRbNRsisiEMmXRvzpFAId3ekrKlIiNuMRvVUlKCkH1iC1ExZSh1txhAnVgz8gCocNMelqJQXhxsO4dxAHlxEQzAFHoQFTL8yHxSzbhhyq0cyzWtrOssRe6srFT6aViM4pGAUX6Hp3nR4H5oh83VQxO++tosOkalA80rLDhw5WCja4ETmTYOqCwWNlIgEcWBgSCQvpwds32UHUx/D7wIbX2U9Lqw9ij64tjIDTAKy2zcPhH6WhqL8OWR5jyrGz5Ug6YN1CUd4Scz0WmrlDodWQ9sk2iG2YNiLc/wERYHvDPcme5eCIi+21PBfMI/ZkTXZXNe3fmfXPPaU4IkUjT0OHAn+4qySr2mBHUaKb2Ne1Lw3ceRCHTs0uJ+CLcpxEJfM=
on:
tags: true
condition: $TRAVIS_PYTHON_VERSION = "3.6"
python: '3.6'
11 changes: 6 additions & 5 deletions uw_grad/committee.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
"""
Interfacing with the Grad Scho Committee Request API
Interfacing with the Grad School Committee Request API
"""
import logging
import json
from urllib.parse import urlencode
from uw_grad.models import GradCommitteeMember, GradCommittee
from uw_grad import get_resource, parse_datetime


PREFIX = "/services/students/v1/api/committee?id="
SUFFIX = "&status=active"
PREFIX = "/services/students/v1/api/committee"
logger = logging.getLogger(__name__)


def get_committee_by_syskey(system_key):
url = "%s%s%s" % (PREFIX, system_key, SUFFIX)
def get_committee_by_syskey(system_key, status="active"):
params = [("id", system_key), ("status", status), ]
url = "{}?{}".format(PREFIX, urlencode(params))
return _process_json(json.loads(get_resource(url)))


Expand Down
13 changes: 8 additions & 5 deletions uw_grad/degree.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,22 @@
"""
Interfacing with the Grad Scho Degree Request API
Interfacing with the Grad School Degree Request API
"""
import logging
import json
from urllib.parse import urlencode
from uw_grad.models import GradDegree
from uw_grad import get_resource, parse_datetime


PREFIX = "/services/students/v1/api/request?id="
SUFFIX = "&exclude_past_quarter=true"
PREFIX = "/services/students/v1/api/request"
logger = logging.getLogger(__name__)


def get_degree_by_syskey(system_key):
url = "%s%s%s" % (PREFIX, system_key, SUFFIX)
def get_degree_by_syskey(system_key, exclude_past_quarter=True):
params = [
("id", system_key),
("exclude_past_quarter", "true" if exclude_past_quarter else ""), ]
url = "{}?{}".format(PREFIX, urlencode(params))
return _process_json(json.loads(get_resource(url)))


Expand Down
7 changes: 4 additions & 3 deletions uw_grad/leave.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
"""
Interfacing with the GradScho Degree Request API
Interfacing with the GradSchool Degree Request API
"""
import logging
import json
from urllib.parse import urlencode
from uw_grad.models import GradLeave, GradTerm
from uw_grad import get_resource, parse_datetime


PREFIX = "/services/students/v1/api/leave?id="
PREFIX = "/services/students/v1/api/leave"
logger = logging.getLogger(__name__)


def get_leave_by_syskey(system_key):
url = "%s%s" % (PREFIX, system_key)
url = "{}?{}".format(PREFIX, urlencode([("id", system_key), ]))
return _process_json(json.loads(get_resource(url)))


Expand Down
48 changes: 24 additions & 24 deletions uw_grad/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -123,19 +123,19 @@ class GradCommitteeMember(models.Model):
status = models.CharField(max_length=64)

def __eq__(self, other):
return self.member_type == other.member_type and\
self.last_name == other.last_name and\
self.first_name == other.first_name
return (self.member_type == other.member_type and
self.last_name == other.last_name and
self.first_name == other.first_name)

def __ne__(self, other):
return self.member_type != other.member_type or\
self.last_name != other.last_name or\
self.first_name != other.first_name
return (self.member_type != other.member_type or
self.last_name != other.last_name or
self.first_name != other.first_name)

def __lt__(self, other):
return self.member_type == other.member_type and\
self.last_name < other.last_name or\
self.member_type < other.member_type
return (self.member_type == other.member_type and
self.last_name < other.last_name or
self.member_type < other.member_type)

def is_type_chair(self):
return self.member_type == self.CHAIR
Expand All @@ -147,29 +147,29 @@ def is_type_member(self):
return self.member_type == self.MEMBER

def is_reading_committee_member(self):
return self.reading_type is not None and\
self.reading_type == self.MEMBER
return (self.reading_type is not None and
self.reading_type == self.MEMBER)

def is_reading_committee_chair(self):
return self.reading_type is not None and\
self.reading_type == self.CHAIR
return (self.reading_type is not None and
self.reading_type == self.CHAIR)

def get_reading_display(self):
if self.is_reading_committee_chair() or\
self.is_reading_committee_member():
if (self.is_reading_committee_chair() or
self.is_reading_committee_member()):
return self.get_reading_type_display()
return None

def __str__(self):
return "%s: %s, %s: %s, %s: %s, %s: %s, %s: %s, %s: %s, %s: %s" %\
(
"member_type", self.member_type,
"reading_type", self.reading_type,
"last_name", self.last_name,
"first_name", self.first_name,
"dept", self.dept,
"email", self.email,
"status", self.status)
return ("member_type: {}, reading_type: {}, last_name: {}, "
"first_name: {}, dept: {}, email: {}, status: {}").format(
self.member_type,
self.reading_type,
self.last_name,
self.first_name,
self.dept,
self.email,
self.status)

def json_data(self):
return {
Expand Down
7 changes: 4 additions & 3 deletions uw_grad/petition.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,19 @@
"""
Interfacing with the Grad Scho Petition Request API
Interfacing with the Grad School Petition Request API
"""
import logging
import json
from urllib.parse import urlencode
from uw_grad.models import GradPetition
from uw_grad import get_resource, parse_datetime


PREFIX = "/services/students/v1/api/petition?id="
PREFIX = "/services/students/v1/api/petition"
logger = logging.getLogger(__name__)


def get_petition_by_syskey(system_key):
url = "%s%s" % (PREFIX, system_key)
url = "{}?{}".format(PREFIX, urlencode([("id", system_key), ]))
return _process_json(json.loads(get_resource(url)))


Expand Down
7 changes: 6 additions & 1 deletion uw_grad/tests/test_committee.py
Original file line number Diff line number Diff line change
Expand Up @@ -84,8 +84,13 @@ def test_get_committee_by_syskey(self):
"GSR")
member_json = json_data["members"][3]
self.assertEqual(member_json["member_type"],
None)
None)

def test_error(self):
# Not found syskey
self.assertRaises(DataFailureException,
get_committee_by_syskey, "0000000001")

# Not found status param
self.assertRaises(DataFailureException,
get_committee_by_syskey, "000083856", status="all")
6 changes: 6 additions & 0 deletions uw_grad/tests/test_degree.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,5 +38,11 @@ def test_get_request_by_regid(self):
self.assertTrue(degree.is_status_not_graduate())

def test_error(self):
# Not found syskey
self.assertRaises(DataFailureException,
get_degree_by_syskey, "000000001")

# Not found exclude_past_quarter param
self.assertRaises(
DataFailureException, get_degree_by_syskey,
"000083856", exclude_past_quarter=False)
2 changes: 0 additions & 2 deletions uw_grad/tests/test_petition.py
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ def test_get_petition_by_syskey(self):
self.assertEqual(json_data['gradschool_decision'],
"Pending")


petition = requests[2]
self.assertEqual(petition.dept_recommend, "withdraw")
self.assertEqual(petition.gradschool_decision, "withdraw")
Expand All @@ -62,7 +61,6 @@ def test_get_petition_by_syskey(self):
self.assertEqual(json_data['gradschool_decision'],
"Withdraw")


petition = requests[3]
self.assertEqual(petition.gradschool_decision, "withdrawn")
self.assertIsNone(petition.decision_date)
Expand Down

0 comments on commit ca06ed2

Please sign in to comment.