Skip to content

Commit 98735cc

Browse files
authored
Removed httmock and DummyHttpResponse (#66)
1 parent 3fbd9c0 commit 98735cc

File tree

6 files changed

+56
-85
lines changed

6 files changed

+56
-85
lines changed

requirements.txt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
coveralls==1.1
2-
httmock==1.2.6
31
pytest==4.6.3
42
pytest-cov==2.5.0
53
requests==2.25.1

tests/audiovisual_test.py

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import pytest
2+
import responses
23

34
from filestack import AudioVisual, Filelink
4-
from httmock import urlmatch, HTTMock, response
55

66

77
APIKEY = 'APIKEY'
@@ -15,23 +15,18 @@ def av():
1515
return AudioVisual(PROCESS_URL, 'someuuid', 'sometimetstamp', apikey=APIKEY)
1616

1717

18+
@responses.activate
1819
def test_status(av):
19-
20-
@urlmatch(netloc=r'process.filestackapi\.com', method='get', scheme='https')
21-
def api_zip(url, request):
22-
return response(200, {'url': PROCESS_URL, 'status': 'completed'}, {'content-type': 'application/json'})
23-
24-
with HTTMock(api_zip):
25-
assert av.status == 'completed'
20+
responses.add(responses.GET, 'https://process.filestackapi.com/SOMEHANDLE', json={'status': 'completed'})
21+
assert av.status == 'completed'
2622

2723

24+
@responses.activate
2825
def test_convert(av):
29-
30-
@urlmatch(netloc=r'process.filestackapi\.com', method='get', scheme='https')
31-
def api_zip(url, request):
32-
return response(200, {'status': 'completed', 'data': {'url': URL}}, {'content-type': 'application/json'})
33-
34-
with HTTMock(api_zip):
35-
filelink = av.to_filelink()
36-
assert isinstance(filelink, Filelink)
37-
assert filelink.handle == HANDLE
26+
responses.add(
27+
responses.GET, 'https://process.filestackapi.com/SOMEHANDLE',
28+
json={'status': 'completed', 'data': {'url': URL}}
29+
)
30+
filelink = av.to_filelink()
31+
assert isinstance(filelink, Filelink)
32+
assert filelink.handle == HANDLE

tests/client_test.py

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
1+
import re
12
from unittest.mock import patch, mock_open
23

34
import pytest
5+
import responses
46
from trafaret import DataError
5-
from httmock import urlmatch, HTTMock, response
67

78
import filestack.models
89
from filestack import Client, Filelink, Transformation, Security
@@ -26,13 +27,12 @@ def test_wrong_storage():
2627
pytest.raises(DataError, Client, **kwargs)
2728

2829

30+
@responses.activate
2931
def test_store_external_url(client):
30-
@urlmatch(netloc=r'cdn.filestackcontent\.com', method='post', scheme='https')
31-
def api_store(url, request):
32-
return response(200, {'handle': HANDLE})
33-
34-
with HTTMock(api_store):
35-
filelink = client.upload_url(url="someurl", store_params={'filename': 'something.jpg'})
32+
responses.add(
33+
responses.POST, 'https://cdn.filestackcontent.com/process', json={'handle': HANDLE}
34+
)
35+
filelink = client.upload_url(url='http://a.bc')
3636

3737
assert isinstance(filelink, Filelink)
3838
assert filelink.handle == HANDLE
@@ -78,15 +78,15 @@ def test_transform_external(client):
7878
assert isinstance(new_transform, Transformation)
7979

8080

81+
@responses.activate
8182
def test_zip(client):
82-
@urlmatch(netloc=r'cdn.filestackcontent\.com', method='get', scheme='https')
83-
def api_zip(url, request):
84-
return response(200, b'zip-bytes')
85-
83+
responses.add(
84+
responses.GET, re.compile('https://cdn.filestackcontent.com/APIKEY/zip*'),
85+
body=b'zip-bytes'
86+
)
8687
m = mock_open()
8788
with patch('filestack.models.client.open', m):
88-
with HTTMock(api_zip):
89-
zip_size = client.zip('test.zip', ['handle1', 'handle2'])
89+
zip_size = client.zip('test.zip', ['handle1', 'handle2'])
9090

9191
assert zip_size == 9
9292
m().write.assert_called_once_with(b'zip-bytes')

tests/filelink_test.py

Lines changed: 13 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@
55
import pytest
66
import responses
77

8-
from httmock import urlmatch, HTTMock, response
9-
8+
from filestack import exceptions
109
from filestack import Filelink, Security
1110
from filestack import config
1211

@@ -54,24 +53,22 @@ def test_signed_url(security_obj, expected_security_part, secure_filelink):
5453
assert expected_security_part in secure_filelink.signed_url(security=security_obj)
5554

5655

56+
@responses.activate
5757
def test_get_content(filelink):
58-
@urlmatch(netloc=r'cdn.filestackcontent\.com', method='get', scheme='https')
59-
def api_download(url, request):
60-
return response(200, b'SOMEBYTESCONTENT')
61-
62-
with HTTMock(api_download):
63-
content = filelink.get_content()
64-
65-
assert content == b'SOMEBYTESCONTENT'
58+
responses.add(
59+
responses.GET, 'https://cdn.filestackcontent.com/{}'.format(HANDLE), body=b'file-content'
60+
)
61+
content = filelink.get_content()
62+
assert content == b'file-content'
6663

6764

65+
@responses.activate
6866
def test_bad_call(filelink):
69-
@urlmatch(netloc=r'cdn.filestackcontent\.com', method='get', scheme='https')
70-
def api_bad(url, request):
71-
return response(400, b'SOMEBYTESCONTENT')
72-
73-
with HTTMock(api_bad):
74-
pytest.raises(Exception, filelink.get_content)
67+
responses.add(
68+
responses.GET, 'https://cdn.filestackcontent.com/{}'.format(HANDLE), status=400
69+
)
70+
with pytest.raises(exceptions.FilestackHTTPError):
71+
filelink.get_content()
7572

7673

7774
@pytest.mark.parametrize('attributes, security, expected_params', [

tests/helpers.py

Lines changed: 0 additions & 23 deletions
This file was deleted.

tests/transformation_test.py

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
from unittest.mock import patch
1+
import re
22

33
import pytest
4+
import responses
45

56
from filestack import Transformation, AudioVisual
67
from filestack import config
7-
from tests.helpers import DummyHttpResponse
88

99
APIKEY = 'SOMEAPIKEY'
1010
HANDLE = 'SOMEHANDLE'
@@ -306,24 +306,28 @@ def test_no_metadata(transform):
306306
assert no_metadata.url == target_url
307307

308308

309-
@patch('filestack.mixins.common.requests.post')
310-
def test_chain_tasks_and_store(post_mock, transform):
311-
post_mock.return_value = DummyHttpResponse(json_dict={'handle': HANDLE})
309+
@responses.activate
310+
def test_chain_tasks_and_store(transform):
311+
responses.add(
312+
responses.POST, re.compile('https://cdn.filestackcontent.com/SOMEAPIKEY*'),
313+
json={'handle': HANDLE}
314+
)
312315
transform_obj = transform.flip().resize(width=100)
313316
new_filelink = transform_obj.store(filename='filename', location='S3', container='bucket', path='folder/image.jpg')
314317
assert new_filelink.handle == HANDLE
315-
post_mock.assert_called_once_with(
316-
'{}/{}/flip/resize=width:100/store=container:bucket,filename:filename,location:S3,path:"folder/image.jpg"/{}'.format(
317-
config.CDN_URL, APIKEY, EXTERNAL_URL
318-
)
318+
assert responses.calls[0].request.url == (
319+
'{}/{}/flip/resize=width:100/store=container:bucket,'.format(config.CDN_URL, APIKEY) +
320+
'filename:filename,location:S3,path:%22folder/image.jpg%22/{}'.format(EXTERNAL_URL)
319321
)
320322

321323

322-
@patch('filestack.mixins.imagetransformation.utils.requests.get')
323-
def test_av_convert(post_mock, transform):
324-
post_mock.return_value = DummyHttpResponse(json_dict={
325-
'url': transform.url, 'uuid': 'someuuid', 'timestamp': 'sometimestamp'
326-
})
324+
@responses.activate
325+
def test_av_convert(transform):
326+
responses.add(
327+
responses.GET,
328+
'https://cdn.filestackcontent.com/SOMEAPIKEY/video_convert=height:500,width:500/SOMEEXTERNALURL',
329+
json={'url': transform.url, 'uuid': 'someuuid', 'timestamp': 'sometimestamp'}
330+
)
327331
new_av = transform.av_convert(width=500, height=500)
328332
assert isinstance(new_av, AudioVisual)
329333
assert new_av.uuid == 'someuuid'

0 commit comments

Comments
 (0)