diff --git a/pyproject.toml b/pyproject.toml index 31ccba4..0f20abe 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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="walker@waifuvault.moe" }, ] diff --git a/tests/test_waifuvault.py b/tests/test_waifuvault.py index 53ddf35..e17da4f 100644 --- a/tests/test_waifuvault.py +++ b/tests/test_waifuvault.py @@ -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 @@ -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( @@ -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() @@ -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") @@ -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") @@ -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', @@ -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', @@ -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") @@ -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") @@ -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")