Skip to content
This repository has been archived by the owner on Aug 2, 2022. It is now read-only.

Commit

Permalink
Add unit tests for Session.
Browse files Browse the repository at this point in the history
Also add a test with responses for the fwd() method.
  • Loading branch information
Sean Gillies committed Jul 29, 2015
1 parent 1990a51 commit e921250
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 2 deletions.
4 changes: 2 additions & 2 deletions mapbox/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
class Service:
"""Base service class"""

def get_session(self, token):
access_token = token or os.environ.get('MapboxAccessToken')
def get_session(self, token=None, env=None):
access_token = token or (env or os.environ).get('MapboxAccessToken')
session = requests.Session()
session.params.update(access_token=access_token)
return session
Expand Down
39 changes: 39 additions & 0 deletions tests/test_geocoder.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,28 @@
import responses

import mapbox


def test_service_session():
"""Get a session using a token"""
session = mapbox.Service().get_session('pk.test')
assert session.params.get('access_token') == 'pk.test'


def test_service_session_env():
"""Get a session using the env's token"""
session = mapbox.Service().get_session(
env={'MapboxAccessToken': 'pk.test_env'})
assert session.params.get('access_token') == 'pk.test_env'


def test_service_session_os_environ(monkeypatch):
"""Get a session using os.environ's token"""
monkeypatch.setenv('MapboxAccessToken', 'pk.test_os_environ')
session = mapbox.Service().get_session()
assert session.params.get('access_token') == 'pk.test_os_environ'
monkeypatch.undo()

def test_geocoder_default_name():
"""Default name is set"""
geocoder = mapbox.Geocoder()
Expand All @@ -11,3 +33,20 @@ def test_geocoder_name():
"""Named dataset name is set"""
geocoder = mapbox.Geocoder('mapbox.places-permanent')
assert geocoder.name == 'mapbox.places-permanent'


@responses.activate
def test_geocoder_fwd():
"""Forward geocoding works"""

responses.add(
responses.GET,
'http://api.mapbox.com/v4/geocode/mapbox.places/1600%20pennsylvania%20ave%20nw.json?access_token=pk.test',
match_querystring=True,
body='{"query": ["1600", "pennsylvania", "ave", "nw"]}', status=200,
content_type='application/json')

response = mapbox.Geocoder(
access_token='pk.test').fwd('1600 pennsylvania ave nw')
assert response.status_code == 200
assert response.json()['query'] == ["1600", "pennsylvania", "ave", "nw"]

0 comments on commit e921250

Please sign in to comment.