diff --git a/.vscode/settings.json b/.vscode/settings.json index f6e4c987d281505e21a3d8dc57e3751f7e57786c..aa1deb17fe6918c6dedecca5b31d38463fbc0dcc 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,9 +1,15 @@ { "python.formatting.provider": "autopep8", - "python.pythonPath": "venv/bin/python", + "python.defaultInterpreterPath": "venv/bin/python", "python.linting.enabled": true, "python.linting.banditEnabled": true, "python.linting.pylintEnabled": true, - "python.linting.pylintPath": "venv/bin/pylint" + "python.linting.pylintPath": "venv/bin/pylint", "python.linting.mypyEnabled": false, + "python.testing.pytestArgs": [ + "tests", + "--integration", + ], + "python.testing.unittestEnabled": false, + "python.testing.pytestEnabled": true, } diff --git a/src/tgclients/crud.py b/src/tgclients/crud.py index c375a1be67ef6052b1054e9e5bfca2872f11e585..b3e499e9e55bafb5691689a441adb7e5c98d632c 100644 --- a/src/tgclients/crud.py +++ b/src/tgclients/crud.py @@ -63,7 +63,7 @@ class TextgridCRUD: params = {'sessionId': sid} response = requests.post( self._url + '/' + textgrid_uri + '/update', params=params, data=encoder, - headers={'Content-Type': encoder.content_type}) + headers={'Content-Type': encoder.content_type, 'Accept-Encoding': 'identity'}) return response def delete_resource(self, sid: str, textgrid_uri: str) -> Response: diff --git a/tests/integration/test_crud_integration.py b/tests/integration/test_crud_integration.py index 7137546ffe056ff0d31a4629442d275c338ddda6..d8037d3d4c65fd9c4d4bd23cbe4bd7fdd301f4bf 100644 --- a/tests/integration/test_crud_integration.py +++ b/tests/integration/test_crud_integration.py @@ -1,3 +1,6 @@ +from ctypes import sizeof +import io +import logging import os import time from datetime import datetime @@ -5,6 +8,8 @@ from datetime import datetime import pytest from tgclients.metadata import TextgridMetadata +logger = logging.getLogger(__name__) + FIXTURE_PATH = './tests/fixtures/' @@ -111,8 +116,20 @@ class TestTextgridCrudIntegration: umetadata = str(crud_nonpublic.read_metadata(textgrid_uri, sid).content, 'utf-8') ufile_loc = FIXTURE_PATH + 'eulen300dpi.png' usize = os.path.getsize(ufile_loc) - with open(ufile_loc, 'rb') as udata: - res = crud_nonpublic.update_resource(sid, textgrid_uri, udata, umetadata) + + stream = io.BytesIO() + logger.info('stream on init: %s' , stream.getbuffer().nbytes) + + res = crud_nonpublic.update_resource(sid, textgrid_uri, stream, umetadata) + + with open(ufile_loc, 'rb') as udata_stream: + if getattr(stream, 'writelines', None): + stream.writelines(udata_stream) + else: + for data in udata_stream: + stream.write(data) + + logger.info('stream after write: %s' , stream.getbuffer().nbytes) assert res.status_code == 200 assert res.headers['Location'].startswith('textgrid:')