diff --git a/senpy/test.py b/senpy/test.py index 11b36fd..9190637 100644 --- a/senpy/test.py +++ b/senpy/test.py @@ -3,6 +3,8 @@ try: except ImportError: from mock import patch, MagicMock +from past.builtins import basestring + import json from contextlib import contextmanager @@ -15,13 +17,17 @@ def patch_requests(value, code=200): success = MagicMock() if isinstance(value, BaseModel): value = value.jsonld() - data = json.dumps(value) + if not isinstance(value, basestring): + data = json.dumps(value) + else: + data = value success.json.return_value = value - success.data.return_value = data + success.status_code = code + success.content = data + success.text = data - success.content = json.dumps(value) method_mocker = MagicMock() method_mocker.return_value = success with patch.multiple('requests', request=method_mocker, diff --git a/tests/test_test.py b/tests/test_test.py new file mode 100644 index 0000000..d5beea8 --- /dev/null +++ b/tests/test_test.py @@ -0,0 +1,32 @@ +from unittest import TestCase + +import requests +import json +from senpy.test import patch_requests +from senpy.models import Results + + +class TestTest(TestCase): + def test_patch_text(self): + with patch_requests('hello'): + r = requests.get('http://example.com') + assert r.text == 'hello' + assert r.content == 'hello' + + def test_patch_json(self): + r = Results() + with patch_requests(r): + res = requests.get('http://example.com') + assert res.content == json.dumps(r.jsonld()) + js = res.json() + assert js + assert js['@type'] == r['@type'] + + def test_patch_dict(self): + r = {'nothing': 'new'} + with patch_requests(r): + res = requests.get('http://example.com') + assert res.content == json.dumps(r) + js = res.json() + assert js + assert js['nothing'] == 'new'