Skip to content

Commit 4d42db7

Browse files
authored
Avoid checking mime type for documents (#155)
* avoid checking mime type in sdk * update version and changelog * add test
1 parent 7fb4997 commit 4d42db7

File tree

6 files changed

+23
-6
lines changed

6 files changed

+23
-6
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Changelog
22

3+
## Version 0.4.2 - 2025-08-14
4+
5+
- Do not discard documents based on their content type
6+
37
## Version 0.2.0 - 2025-07-02
48

59
- Updated access token generation code to work with new IdP

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "cradl"
3-
version = "0.4.1"
3+
version = "0.4.2"
44
description = "Python SDK for Cradl"
55
authors = [{ name = "Cradl", email = "[email protected]" }]
66
readme = "README.md"

src/cradl/client.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -641,7 +641,12 @@ def create_document(
641641
}
642642

643643
document = self._make_request(requests.post, '/documents', body=dictstrip(body))
644-
self._make_fileserver_request(requests.put, document['fileUrl'], content=content_bytes)
644+
try:
645+
self._make_fileserver_request(requests.put, document['fileUrl'], content=content_bytes)
646+
except Exception as e:
647+
self.delete_document(document['documentId'])
648+
raise e
649+
645650
return document
646651

647652
def list_documents(

src/cradl/content.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,6 @@
88

99
def _guess_content_type(raw):
1010
guessed_type = filetype.guess(raw)
11-
assert guessed_type, 'Could not determine content type of document. ' \
12-
'Please provide it by specifying content_type'
1311
return guessed_type.mime
1412

1513

tests/conftest.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,3 +56,8 @@ def content():
5656
Yields a random JPEG bytestring with a length 2E4
5757
"""
5858
yield b'\xFF\xD8\xFF\xEE' + urandom(int(2E4))
59+
60+
61+
@pytest.fixture(scope='session')
62+
def pdf_content():
63+
yield 'HTTP/1.0 200 OK%PDF-1.4 %½¾¼µ %%EOF'.encode()

tests/test_documents.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,16 +6,21 @@
66
pytestmark = pytest.mark.integration
77

88

9-
@pytest.mark.parametrize('metadata', [util.metadata(), None])
9+
@pytest.mark.parametrize(('metadata', 'image'), [
10+
(util.metadata(), True),
11+
(None, False),
12+
])
1013
def test_create_document(
1114
monkeypatch,
1215
static_client: Client,
1316
content,
17+
image,
1418
metadata,
19+
pdf_content,
1520
):
1621
consent_id = service.create_consent_id()
1722
post_documents_response = static_client.create_document(
18-
content,
23+
content if image else pdf_content,
1924
consent_id=consent_id,
2025
metadata=metadata,
2126
)

0 commit comments

Comments
 (0)