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'
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_client(self): endpoint = 'http://dummy/' client = Client(endpoint) with patch_requests(Results()) as (request, response): resp = client.analyse('hello') assert isinstance(resp, Results) request.assert_called_with( url=endpoint + '/', method='GET', params={'input': 'hello'}) with patch_requests(Error('Nothing')) as (request, response): try: client.analyse(input='hello', algorithm='NONEXISTENT') raise Exception('Exceptions should be raised. This is not golang') except Error: pass request.assert_called_with( url=endpoint + '/', method='GET', params={'input': 'hello', 'algorithm': 'NONEXISTENT'})
def test(self, *args, **kwargs): ''' To avoid calling the sentiment140 API, we will mock the results from requests. ''' from senpy.test import patch_requests expected = {"data": [{"polarity": 4}]} with patch_requests(expected) as (request, response): super(Sentiment140Plugin, self).test(*args, **kwargs) assert request.called assert response.json.called
def test_plugins(self): endpoint = 'http://dummy/' client = Client(endpoint) plugins = Plugins() p1 = AnalysisPlugin({'name': 'AnalysisP1', 'version': 0, 'description': 'No'}) plugins.plugins = [p1, ] with patch_requests(plugins) as (request, response): response = client.plugins() assert isinstance(response, dict) assert len(response) == 1 assert "AnalysisP1" in response request.assert_called_with( url=endpoint + '/plugins', method='GET', params={})
def test_patch_text(self): with patch_requests('hello'): r = requests.get('http://example.com') assert r.text == 'hello' assert r.content == 'hello'