Skip to content

Commit

Permalink
Refactor mock objects, bump version
Browse files Browse the repository at this point in the history
  • Loading branch information
nakedmcse committed Mar 24, 2024
1 parent 869a4f0 commit 77e4605
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 38 deletions.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "waifuvault"
version = "1.2.8"
version = "1.2.9"
authors = [
{ name="Walker Aldridge", email="[email protected]" },
]
Expand Down
61 changes: 24 additions & 37 deletions tests/test_waifuvault.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import waifuvault


# Response Mock
# Response Mock Object
class response_mock:
def __init__(self, ok, text, content=None, code=None):
self.ok = ok
Expand All @@ -14,11 +14,20 @@ def __init__(self, ok, text, content=None, code=None):
self.content = content


# Mocked responses
ok_response_numeric = response_mock(True,
'{"url":"https://waifuvault.moe/f/something", "token":"test-token", "protected":false, "retentionPeriod":100}')
ok_response_numeric_protected = response_mock(True,
'{"url":"https://waifuvault.moe/f/something", "token":"test-token", "protected":true, "retentionPeriod":100}')
ok_response_human = response_mock(True,
'{"url":"https://waifuvault.moe/f/something", "token":"test-token", "protected":false, "retentionPeriod":"10 minutes"}')
bad_request = response_mock(False,
'{"name": "BAD_REQUEST", "message": "Error Test", "status": 400}',code=400)


# URL Upload Tests
def test_upload_url(mocker):
mock_put = mocker.patch('requests.put',
return_value = response_mock(True,
'{"url":"https://waifuvault.moe/f/something", "token":"test-token", "protected":false, "retentionPeriod":100}'))
mock_put = mocker.patch('requests.put', return_value = ok_response_numeric)
upload_file = waifuvault.FileUpload("https://walker.moe/assets/sunflowers.png", expires="10m")
upload_res = waifuvault.upload_file(upload_file)
mock_put.assert_called_once_with(
Expand All @@ -33,18 +42,14 @@ def test_upload_url(mocker):


def test_upload_url_error(mocker):
mock_put = mocker.patch('requests.put',
return_value = response_mock(False,
'{"name": "BAD_REQUEST", "message": "Error Test", "status": 400}',code=400))
mock_put = mocker.patch('requests.put', return_value = bad_request)
upload_file = waifuvault.FileUpload("https://walker.moe/assets/sunflowers.png", expires="10m")
with pytest.raises(Exception, match=re.escape('Error 400 (BAD_REQUEST): Error Test')):
upload_res = waifuvault.upload_file(upload_file)


def test_upload_file(mocker):
mock_put = mocker.patch('requests.put',
return_value = response_mock(True,
'{"url":"https://waifuvault.moe/f/something", "token":"test-token", "protected":false, "retentionPeriod":100}'))
mock_put = mocker.patch('requests.put', return_value = ok_response_numeric)
upload_file = waifuvault.FileUpload("tests/testfile.png", expires="10m")
upload_res = waifuvault.upload_file(upload_file)
mock_put.assert_called_once()
Expand All @@ -55,18 +60,14 @@ def test_upload_file(mocker):


def test_upload_file_error(mocker):
mock_put = mocker.patch('requests.put',
return_value = response_mock(False,
'{"name": "BAD_REQUEST", "message": "Error Test", "status": 400}',code=400))
mock_put = mocker.patch('requests.put', return_value = bad_request)
upload_file = waifuvault.FileUpload("tests/testfile.png", expires="10m")
with pytest.raises(Exception, match=re.escape('Error 400 (BAD_REQUEST): Error Test')):
upload_res = waifuvault.upload_file(upload_file)


def test_upload_buffer(mocker):
mock_put = mocker.patch('requests.put',
return_value = response_mock(True,
'{"url":"https://waifuvault.moe/f/something", "token":"test-token", "protected":false, "retentionPeriod":100}'))
mock_put = mocker.patch('requests.put', return_value = ok_response_numeric)
with open("tests/testfile.png", "rb") as fh:
buf = io.BytesIO(fh.read())
upload_file = waifuvault.FileUpload(buf,"testfile_buf.png",expires="10m")
Expand All @@ -79,9 +80,7 @@ def test_upload_buffer(mocker):


def test_upload_buffer_error(mocker):
mock_put = mocker.patch('requests.put',
return_value = response_mock(False,
'{"name": "BAD_REQUEST", "message": "Error Test", "status": 400}',code=400))
mock_put = mocker.patch('requests.put', return_value = bad_request)
with open("tests/testfile.png", "rb") as fh:
buf = io.BytesIO(fh.read())
upload_file = waifuvault.FileUpload(buf, "testfile_buf.png", expires="10m")
Expand All @@ -90,9 +89,7 @@ def test_upload_buffer_error(mocker):


def test_file_info(mocker):
mock_get = mocker.patch('requests.get',
return_value=response_mock(True,
'{"url":"https://waifuvault.moe/f/something", "token":"test-token", "protected":false, "retentionPeriod":"10 minutes"}'))
mock_get = mocker.patch('requests.get', return_value = ok_response_human)
upload_info = waifuvault.file_info("test-token",True)
mock_get.assert_called_once_with(
'https://waifuvault.moe/rest/test-token',
Expand All @@ -104,17 +101,13 @@ def test_file_info(mocker):


def test_file_info_error(mocker):
mock_get = mocker.patch('requests.get',
return_value=response_mock(False,
'{"name": "BAD_REQUEST", "message": "Error Test", "status": 400}', code=400))
mock_get = mocker.patch('requests.get', return_value = bad_request)
with pytest.raises(Exception, match=re.escape('Error 400 (BAD_REQUEST): Error Test')):
upload_info = waifuvault.file_info("bad-token",True)


def test_update_info(mocker):
mock_patch = mocker.patch('requests.patch',
return_value=response_mock(True,
'{"url":"https://waifuvault.moe/f/something", "token":"test-token", "protected":true, "retentionPeriod":100}'))
mock_patch = mocker.patch('requests.patch', return_value = ok_response_numeric_protected)
update_info = waifuvault.file_update("test-token","dangerWaifu")
mock_patch.assert_called_once_with(
'https://waifuvault.moe/rest/test-token',
Expand All @@ -126,9 +119,7 @@ def test_update_info(mocker):


def test_update_info_error(mocker):
mock_patch = mocker.patch('requests.patch',
return_value=response_mock(False,
'{"name": "BAD_REQUEST", "message": "Error Test", "status": 400}', code=400))
mock_patch = mocker.patch('requests.patch', return_value = bad_request)
with pytest.raises(Exception, match=re.escape('Error 400 (BAD_REQUEST): Error Test')):
update_info = waifuvault.file_update("test-token","dangerWaifu")

Expand All @@ -143,9 +134,7 @@ def test_delete(mocker):


def test_delete_error(mocker):
mock_del = mocker.patch('requests.delete',
return_value=response_mock(False,
'{"name": "BAD_REQUEST", "message": "Error Test", "status": 400}', code=400))
mock_del = mocker.patch('requests.delete', return_value = bad_request)
with pytest.raises(Exception, match=re.escape('Error 400 (BAD_REQUEST): Error Test')):
del_file = waifuvault.delete_file("test-token")

Expand All @@ -158,8 +147,6 @@ def test_download(mocker):


def test_download_error(mocker):
mock_get = mocker.patch('requests.get',
return_value=response_mock(False,
'{"name": "BAD_REQUEST", "message": "Error Test", "status": 400}', code=400))
mock_get = mocker.patch('requests.get', return_value=bad_request)
with pytest.raises(Exception, match=re.escape('Error 400 (BAD_REQUEST): Error Test')):
file_down = waifuvault.get_file(waifuvault.FileResponse(url="https://waifuvault.moe/f/something"), "dangerWaifu")

0 comments on commit 77e4605

Please sign in to comment.