Skip to content

Commit

Permalink
Merge pull request #6 from uw-it-aca/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
jlaney committed Jan 18, 2018
2 parents 30d703d + f111d52 commit e0f3795
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 16 deletions.
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ python:
- '3.6'
before_script:
- pip install -e .
- pip install pep8
- pip install pycodestyle
- pip install nose2
- pip install coverage
- pip install commonconf
- pip install python-coveralls
script:
- pep8 uw_r25/ --exclude=uw_r25/tests
- pycodestyle uw_r25/ --exclude=uw_r25/tests
- coverage run --source=uw_r25 uw_r25/test.py -v
after_script:
- coveralls
Expand Down
7 changes: 7 additions & 0 deletions uw_r25/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,13 @@ def get_resource(url):
Issue a GET request to R25 with the given url
and return a response as an etree element.
"""

instance = R25_DAO().get_service_setting('INSTANCE')
if instance is not None:
url = "/r25ws/wrd/%s/run/%s" % (instance, url)
else:
url = "/r25ws/servlet/wrd/run/%s" % url

response = R25_DAO().getURL(url, {"Accept": "text/xml"})
if response.status != 200:
raise DataFailureException(url, response.status, response.data)
Expand Down
5 changes: 5 additions & 0 deletions uw_r25/dao.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,3 +11,8 @@ def service_name(self):

def service_mock_paths(self):
return [abspath(os.path.join(dirname(__file__), "resources"))]

def _custom_headers(self, method, url, headers, body):
basic_auth = self.get_service_setting('BASIC_AUTH')
if basic_auth is not None:
return {"Authorization": "Basic %s" % basic_auth}
8 changes: 4 additions & 4 deletions uw_r25/events.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,17 @@
from uw_r25.reservations import reservations_from_xml
try:
from urllib import urlencode, quote
except:
except ImportError:
from urllib.parse import urlencode, quote


def get_event_by_id(event_id):
url = "/r25ws/servlet/wrd/run/event.xml?event_id=%s" % event_id
url = "event.xml?event_id=%s" % event_id
return events_from_xml(get_resource(url))[0]


def get_event_by_alien_id(alien_id):
url = "/r25ws/servlet/wrd/run/event.xml?alien_uid=%s" % quote(alien_id)
url = "event.xml?alien_uid=%s" % quote(alien_id)
event = events_from_xml(get_resource(url))
return event[0] if event else None

Expand All @@ -24,7 +24,7 @@ def get_events(**kwargs):
Supported kwargs are listed at
http://knowledge25.collegenet.com/display/WSW/events.xml
"""
url = "/r25ws/servlet/wrd/run/events.xml"
url = "events.xml"
if len(kwargs):
url += "?%s" % urlencode(kwargs)

Expand Down
13 changes: 6 additions & 7 deletions uw_r25/reservations.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
from uw_r25.spaces import space_reservation_from_xml
try:
from urllib import urlencode
except:
except ImportError:
from urllib.parse import urlencode


def get_reservation_by_id(reservation_id):
url = "/r25ws/servlet/wrd/run/reservation.xml?rsrv_id=%s" % reservation_id
url = "reservation.xml?rsrv_id=%s" % reservation_id
return reservations_from_xml(get_resource(url))[0]


Expand All @@ -19,7 +19,7 @@ def get_reservations(**kwargs):
http://knowledge25.collegenet.com/display/WSW/reservations.xml
"""
kwargs["scope"] = "extended"
url = "/r25ws/servlet/wrd/run/reservations.xml"
url = "reservations.xml"
if len(kwargs):
url += "?%s" % urlencode(kwargs)

Expand All @@ -29,7 +29,7 @@ def get_reservations(**kwargs):
def reservations_from_xml(tree):
try:
profile_name = tree.xpath("r25:profile_name", namespaces=nsmap)[0].text
except:
except Exception:
profile_name = None

reservations = []
Expand Down Expand Up @@ -68,9 +68,8 @@ def reservations_from_xml(tree):
namespaces=nsmap)[0].text
try:
anode = cnode.xpath("r25:address", namespaces=nsmap)[0]
reservation.contact_email = anode.xpath("r25:email",
namespaces=nsmap)
[0].text
reservation.contact_email = anode.xpath(
"r25:email", namespaces=nsmap)[0].text
except IndexError:
reservation.contact_email = None

Expand Down
6 changes: 3 additions & 3 deletions uw_r25/spaces.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@
from uw_r25 import nsmap, get_resource
try:
from urllib import urlencode
except:
except ImportError:
from urllib.parse import urlencode


def get_space_by_id(space_id):
url = "/r25ws/servlet/wrd/run/space.xml?space_id=%s" % space_id
url = "space.xml?space_id=%s" % space_id
return spaces_from_xml(get_resource(url))[0]


Expand All @@ -17,7 +17,7 @@ def get_spaces(**kwargs):
Supported kwargs are listed at
http://knowledge25.collegenet.com/display/WSW/spaces.xml
"""
url = "/r25ws/servlet/wrd/run/spaces.xml"
url = "spaces.xml"
if len(kwargs):
url += "?%s" % urlencode(kwargs)

Expand Down
14 changes: 14 additions & 0 deletions uw_r25/tests/test_dao.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
from unittest import TestCase
from uw_r25.dao import R25_DAO
from commonconf import override_settings


class R25TestDao(TestCase):

def test_custom_headers(self):
self.assertFalse(R25_DAO()._custom_headers('GET', '/', {}, None))
with override_settings(RESTCLIENTS_R25_BASIC_AUTH='b64here'):
self.assertEquals(
R25_DAO()._custom_headers('GET', '/', {}, None),
{'Authorization': 'Basic b64here'}
)

0 comments on commit e0f3795

Please sign in to comment.