Skip to content

Commit

Permalink
Replace httpretty for responses
Browse files Browse the repository at this point in the history
  • Loading branch information
Adrián Matellanes committed Mar 8, 2018
1 parent f265db0 commit a75b9bd
Show file tree
Hide file tree
Showing 4 changed files with 193 additions and 201 deletions.
4 changes: 2 additions & 2 deletions requirements-to-freeze.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
check-manifest
coverage
flake8
httpretty
responses
nose
requests
Sphinx
tox
tox
3 changes: 2 additions & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,10 @@ Babel==2.5.3
certifi==2018.1.18
chardet==3.0.4
check-manifest==0.36
cookies==2.2.1
coverage==4.5.1
docutils==0.14
flake8==3.5.0
httpretty==0.8.14
idna==2.6
imagesize==1.0.0
Jinja2==2.10
Expand All @@ -22,6 +22,7 @@ Pygments==2.2.0
pyparsing==2.2.0
pytz==2018.3
requests==2.18.4
responses==0.8.1
six==1.11.0
snowballstemmer==1.2.1
Sphinx==1.7.1
Expand Down
197 changes: 96 additions & 101 deletions tests/test_historical_rates.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
from urlparse import urljoin
from urllib import urlencode

import httpretty
import responses

from fixerio.client import Fixerio
from fixerio.exceptions import FixerioException
Expand All @@ -26,42 +26,40 @@ def setUp(self):
self.path = '/{0}'.format(self.date.isoformat())
self.url = urljoin(BASE_URL, self.path)

@httpretty.activate
@responses.activate
def test_returns_historical_rates(self):
expected_response = {'base': 'EUR',
'date': '2000-01-03',
'rates': {'GBP': 0.6246}}
httpretty.register_uri(httpretty.GET,
self.url,
body=json.dumps(expected_response),
content_type='application/json')
responses.add(responses.GET,
self.url,
body=json.dumps(expected_response),
content_type='application/json')
client = Fixerio()
response = client.historical_rates(date=self.date.isoformat())

self.assertDictEqual(response, expected_response)
request = httpretty.last_request()
request = responses.calls[0].request
self.assertEqual(request.method, 'GET')
self.assertEqual(request.path, self.path)
self.assertEqual(request.querystring, {})
self.assertEqual(request.body, b'')
self.assertEqual(request.url, self.url)
self.assertIsNone(request.body)

client = Fixerio()
response = client.historical_rates(date=self.date)

self.assertDictEqual(response, expected_response)
request = httpretty.last_request()
request = responses.calls[1].request
self.assertEqual(request.method, 'GET')
self.assertEqual(request.path, self.path)
self.assertEqual(request.querystring, {})
self.assertEqual(request.body, b'')
self.assertEqual(request.url, self.url)
self.assertIsNone(request.body)

@httpretty.activate
@responses.activate
def test_raises_exception_if_bad_request(self):
httpretty.register_uri(httpretty.GET,
self.url,
body="{'success': false}",
status=400,
content_type='text/json')
responses.add(responses.GET,
self.url,
body="{'success': false}",
status=400,
content_type='text/json')

with self.assertRaises(FixerioException)as ex:
client = Fixerio()
Expand All @@ -78,71 +76,71 @@ def setUp(self):
self.path = '/{0}'.format(self.date.isoformat())
self.url = urljoin(BASE_URL, self.path)

@httpretty.activate
@responses.activate
def test_returns_historical_rates_for_base_passed_in_constructor(self):
base = 'USD'
expected_response = {'base': base,
'date': '2000-01-03',
'rates': {'GBP': 0.6246}}
httpretty.register_uri(httpretty.GET,
self.url,
body=json.dumps(expected_response),
content_type='application/json')
responses.add(responses.GET,
self.url,
body=json.dumps(expected_response),
content_type='application/json')

client = Fixerio(base=base)
response = client.historical_rates(date=self.date)

self.assertDictEqual(response, expected_response)
request = httpretty.last_request()
request = responses.calls[0].request
self.assertEqual(request.method, 'GET')
params = urlencode({'base': base})
expected_path = '{url}?{params}'.format(url=self.path, params=params)
self.assertEqual(request.path, expected_path)
self.assertEqual(request.querystring, {'base': [base]})
self.assertEqual(request.body, b'')
expected_url = urljoin(BASE_URL, expected_path)
self.assertEqual(request.url, expected_url)
self.assertIsNone(request.body)

@httpretty.activate
@responses.activate
def test_returns_historical_rates_for_base_passed_in_method(self):
base = 'USD'
expected_response = {'base': base, 'date': '2016-05-13',
'rates': {'GBP': 0.69403}}
httpretty.register_uri(httpretty.GET,
self.url,
body=json.dumps(expected_response),
content_type='application/json')
responses.add(responses.GET,
self.url,
body=json.dumps(expected_response),
content_type='application/json')
client = Fixerio()
response = client.historical_rates(date=self.date, base=base)

self.assertDictEqual(response, expected_response)
request = httpretty.last_request()
request = responses.calls[0].request
self.assertEqual(request.method, 'GET')
params = urlencode({'base': base})
expected_path = '{url}?{params}'.format(url=self.path, params=params)
self.assertEqual(request.path, expected_path)
self.assertEqual(request.querystring, {'base': [base]})
self.assertEqual(request.body, b'')
expected_url = urljoin(BASE_URL, expected_path)
self.assertEqual(request.url, expected_url)
self.assertIsNone(request.body)

@httpretty.activate
@responses.activate
def test_returns_historical_rates_for_base_passed_if_both(self):
base = 'USD'
another_base = 'EUR'
expected_response = {'base': base, 'date': '2016-05-13',
'rates': {'GBP': 0.69403}}
httpretty.register_uri(httpretty.GET,
self.url,
body=json.dumps(expected_response),
content_type='application/json')
responses.add(responses.GET,
self.url,
body=json.dumps(expected_response),
content_type='application/json')
client = Fixerio(base=another_base)
response = client.historical_rates(date=self.date, base=base)

self.assertDictEqual(response, expected_response)
request = httpretty.last_request()
request = responses.calls[0].request
self.assertEqual(request.method, 'GET')
params = urlencode({'base': base})
expected_path = '{url}?{params}'.format(url=self.path, params=params)
self.assertEqual(request.path, expected_path)
self.assertEqual(request.querystring, {'base': [base]})
self.assertEqual(request.body, b'')
expected_url = urljoin(BASE_URL, expected_path)
self.assertEqual(request.url, expected_url)
self.assertIsNone(request.body)


class FixerioHistoricalRatesSymbolsTestCase(unittest.TestCase):
Expand All @@ -151,78 +149,78 @@ def setUp(self):
self.path = '/{0}'.format(self.date.isoformat())
self.url = urljoin(BASE_URL, self.path)

@httpretty.activate
@responses.activate
def test_returns_historical_rates_for_symbols_passed_in_constructor(self):
symbols = ['USD', 'GBP']
expected_response = {"base": "EUR",
"date": "2000-01-03",
"rates": {"GBP": 0.6246, "USD": 1.009}}
httpretty.register_uri(httpretty.GET,
self.url,
body=json.dumps(expected_response),
content_type='application/json')
responses.add(responses.GET,
self.url,
body=json.dumps(expected_response),
content_type='application/json')

client = Fixerio(symbols=symbols)
response = client.historical_rates(date=self.date)

self.assertDictEqual(response, expected_response)
request = httpretty.last_request()
request = responses.calls[0].request
self.assertEqual(request.method, 'GET')
symbols_str = ','.join(symbols)
params = urlencode({'symbols': symbols_str})
expected_path = '{url}?{params}'.format(url=self.path, params=params)
self.assertEqual(request.path, expected_path)
self.assertEqual(request.querystring, {'symbols': [symbols_str]})
self.assertEqual(request.body, b'')
expected_url = urljoin(BASE_URL, expected_path)
self.assertEqual(request.url, expected_url)
self.assertIsNone(request.body)

@httpretty.activate
@responses.activate
def test_returns_historical_rates_for_symbols_passed_in_method(self):
symbols = ['USD', 'GBP']
expected_response = {"base": "EUR",
"date": "2000-01-03",
"rates": {"GBP": 0.6246, "USD": 1.009}}
httpretty.register_uri(httpretty.GET,
self.url,
body=json.dumps(expected_response),
content_type='application/json')
responses.add(responses.GET,
self.url,
body=json.dumps(expected_response),
content_type='application/json')

client = Fixerio()
response = client.historical_rates(date=self.date, symbols=symbols)

self.assertDictEqual(response, expected_response)
request = httpretty.last_request()
request = responses.calls[0].request
self.assertEqual(request.method, 'GET')
symbols_str = ','.join(symbols)
params = urlencode({'symbols': symbols_str})
expected_path = '{url}?{params}'.format(url=self.path, params=params)
self.assertEqual(request.path, expected_path)
self.assertEqual(request.querystring, {'symbols': [symbols_str]})
self.assertEqual(request.body, b'')
expected_url = urljoin(BASE_URL, expected_path)
self.assertEqual(request.url, expected_url)
self.assertIsNone(request.body)

@httpretty.activate
@responses.activate
def test_returns_historical_rates_for_symbols_passed_if_both(self):
symbols = ['USD', 'GBP']
other_symbols = ['JPY', 'EUR']
expected_response = {"base": "EUR",
"date": "2000-01-03",
"rates": {"GBP": 0.6246, "USD": 1.009}}
httpretty.register_uri(httpretty.GET,
self.url,
body=json.dumps(expected_response),
content_type='application/json')
responses.add(responses.GET,
self.url,
body=json.dumps(expected_response),
content_type='application/json')

client = Fixerio(symbols=other_symbols)
response = client.historical_rates(date=self.date, symbols=symbols)

self.assertDictEqual(response, expected_response)
request = httpretty.last_request()
request = responses.calls[0].request
self.assertEqual(request.method, 'GET')
symbols_str = ','.join(symbols)
params = urlencode({'symbols': symbols_str})
expected_path = '{url}?{params}'.format(url=self.path, params=params)
self.assertEqual(request.path, expected_path)
self.assertEqual(request.querystring, {'symbols': [symbols_str]})
self.assertEqual(request.body, b'')
expected_url = urljoin(BASE_URL, expected_path)
self.assertEqual(request.url, expected_url)
self.assertIsNone(request.body)


class FixerioHistoricalRatesSecureTestCase(unittest.TestCase):
Expand All @@ -232,63 +230,60 @@ def setUp(self):
self.url = urljoin(BASE_URL, self.path)
self.secure_url = urljoin(SECURE_BASE_URL, self.path)

@httpretty.activate
@responses.activate
def test_returns_historical_rates_for_secure_passed_in_constructor(self):
expected_response = {'base': 'EUR',
'date': '2000-01-03',
'rates': {'GBP': 0.6246}}
httpretty.register_uri(httpretty.GET,
self.secure_url,
body=json.dumps(expected_response),
content_type='application/json')
responses.add(responses.GET,
self.secure_url,
body=json.dumps(expected_response),
content_type='application/json')

client = Fixerio(secure=True)
response = client.historical_rates(date=self.date)

self.assertDictEqual(response, expected_response)
request = httpretty.last_request()
request = responses.calls[0].request
self.assertEqual(request.method, 'GET')
self.assertEqual(request.path, self.path)
self.assertEqual(request.querystring, {})
self.assertEqual(request.body, b'')
self.assertEqual(request.url, self.secure_url)
self.assertIsNone(request.body)

@httpretty.activate
@responses.activate
def test_returns_historical_rates_for_secure_passed_in_method(self):
expected_response = {'base': 'EUR',
'date': '2000-01-03',
'rates': {'GBP': 0.6246}}

httpretty.register_uri(httpretty.GET,
self.secure_url,
body=json.dumps(expected_response),
content_type='application/json')
responses.add(responses.GET,
self.secure_url,
body=json.dumps(expected_response),
content_type='application/json')

client = Fixerio()
response = client.historical_rates(date=self.date, secure=True)

self.assertDictEqual(response, expected_response)
request = httpretty.last_request()
request = responses.calls[0].request
self.assertEqual(request.method, 'GET')
self.assertEqual(request.path, self.path)
self.assertEqual(request.querystring, {})
self.assertEqual(request.body, b'')
self.assertEqual(request.url, self.secure_url)
self.assertIsNone(request.body)

@httpretty.activate
@responses.activate
def test_returns_historical_rates_for_base_passed_if_both(self):
expected_response = {'base': 'EUR',
'date': '2000-01-03',
'rates': {'GBP': 0.6246}}
httpretty.register_uri(httpretty.GET,
self.secure_url,
body=json.dumps(expected_response),
content_type='application/json')
responses.add(responses.GET,
self.secure_url,
body=json.dumps(expected_response),
content_type='application/json')

client = Fixerio(secure=False)
response = client.historical_rates(date=self.date, secure=True)

self.assertDictEqual(response, expected_response)
request = httpretty.last_request()
request = responses.calls[0].request
self.assertEqual(request.method, 'GET')
self.assertEqual(request.path, self.path)
self.assertEqual(request.querystring, {})
self.assertEqual(request.body, b'')
self.assertEqual(request.url, self.secure_url)
self.assertIsNone(request.body)

0 comments on commit a75b9bd

Please sign in to comment.