Skip to content

Commit

Permalink
Merge pull request #103 from IndicoDataSolutions/madison/retrieve-pdf
Browse files Browse the repository at this point in the history
FIX: allow retrieval of PDF datatypes from storage object urls CAT-9
  • Loading branch information
madisonmay authored Mar 10, 2021
2 parents fac0299 + a889d25 commit 43c04ef
Show file tree
Hide file tree
Showing 4 changed files with 416 additions and 2 deletions.
8 changes: 6 additions & 2 deletions indico/http/serialization.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,8 @@ def decompress(response):
value = io.BytesIO(response.raw.data).getvalue()
return gzip.decompress(value)

def raw_bytes(content, *args, **kwargs):
return content

def deserialize(response, gzip=False, force_json=False):
content_type, params = cgi.parse_header(response.headers.get("Content-Type"))
Expand All @@ -37,7 +39,7 @@ def deserialize(response, gzip=False, force_json=False):
content_type = "application/json"

try:
return _SERIALIZATINON_FNS[content_type](content, charset)
return _SERIALIZATION_FNS[content_type](content, charset)
except Exception:
logger.debug(traceback.format_exc())
raise IndicoDecodingError(
Expand Down Expand Up @@ -65,9 +67,11 @@ def zip_serialization(content, charset=None):
return content


_SERIALIZATINON_FNS = defaultdict(
_SERIALIZATION_FNS = defaultdict(
lambda: text_deserialization,
{
"application/octet-stream": raw_bytes,
"application/pdf": raw_bytes,
"text/html": text_deserialization,
"application/x-msgpack": msgpack_deserialization,
"application/msgpack": msgpack_deserialization,
Expand Down
198 changes: 198 additions & 0 deletions tests/unit/http/mocked_data/application_octet-stream_
Original file line number Diff line number Diff line change
@@ -0,0 +1,198 @@
%PDF-1.3
%����

1 0 obj
<<
/Type /Catalog
/Outlines 2 0 R
/Pages 3 0 R
>>
endobj

2 0 obj
<<
/Type /Outlines
/Count 0
>>
endobj

3 0 obj
<<
/Type /Pages
/Count 2
/Kids [ 4 0 R 6 0 R ]
>>
endobj

4 0 obj
<<
/Type /Page
/Parent 3 0 R
/Resources <<
/Font <<
/F1 9 0 R
>>
/ProcSet 8 0 R
>>
/MediaBox [0 0 612.0000 792.0000]
/Contents 5 0 R
>>
endobj

5 0 obj
<< /Length 1074 >>
stream
2 J
BT
0 0 0 rg
/F1 0027 Tf
57.3750 722.2800 Td
( A Simple PDF File ) Tj
ET
BT
/F1 0010 Tf
69.2500 688.6080 Td
( This is a small demonstration .pdf file - ) Tj
ET
BT
/F1 0010 Tf
69.2500 664.7040 Td
( just for use in the Virtual Mechanics tutorials. More text. And more ) Tj
ET
BT
/F1 0010 Tf
69.2500 652.7520 Td
( text. And more text. And more text. And more text. ) Tj
ET
BT
/F1 0010 Tf
69.2500 628.8480 Td
( And more text. And more text. And more text. And more text. And more ) Tj
ET
BT
/F1 0010 Tf
69.2500 616.8960 Td
( text. And more text. Boring, zzzzz. And more text. And more text. And ) Tj
ET
BT
/F1 0010 Tf
69.2500 604.9440 Td
( more text. And more text. And more text. And more text. And more text. ) Tj
ET
BT
/F1 0010 Tf
69.2500 592.9920 Td
( And more text. And more text. ) Tj
ET
BT
/F1 0010 Tf
69.2500 569.0880 Td
( And more text. And more text. And more text. And more text. And more ) Tj
ET
BT
/F1 0010 Tf
69.2500 557.1360 Td
( text. And more text. And more text. Even more. Continued on page 2 ...) Tj
ET
endstream
endobj

6 0 obj
<<
/Type /Page
/Parent 3 0 R
/Resources <<
/Font <<
/F1 9 0 R
>>
/ProcSet 8 0 R
>>
/MediaBox [0 0 612.0000 792.0000]
/Contents 7 0 R
>>
endobj

7 0 obj
<< /Length 676 >>
stream
2 J
BT
0 0 0 rg
/F1 0027 Tf
57.3750 722.2800 Td
( Simple PDF File 2 ) Tj
ET
BT
/F1 0010 Tf
69.2500 688.6080 Td
( ...continued from page 1. Yet more text. And more text. And more text. ) Tj
ET
BT
/F1 0010 Tf
69.2500 676.6560 Td
( And more text. And more text. And more text. And more text. And more ) Tj
ET
BT
/F1 0010 Tf
69.2500 664.7040 Td
( text. Oh, how boring typing this stuff. But not as boring as watching ) Tj
ET
BT
/F1 0010 Tf
69.2500 652.7520 Td
( paint dry. And more text. And more text. And more text. And more text. ) Tj
ET
BT
/F1 0010 Tf
69.2500 640.8000 Td
( Boring. More, a little more text. The end, and just as well. ) Tj
ET
endstream
endobj

8 0 obj
[/PDF /Text]
endobj

9 0 obj
<<
/Type /Font
/Subtype /Type1
/Name /F1
/BaseFont /Helvetica
/Encoding /WinAnsiEncoding
>>
endobj

10 0 obj
<<
/Creator (Rave \(http://www.nevrona.com/rave\))
/Producer (Nevrona Designs)
/CreationDate (D:20060301072826)
>>
endobj

xref
0 11
0000000000 65535 f
0000000019 00000 n
0000000093 00000 n
0000000147 00000 n
0000000222 00000 n
0000000390 00000 n
0000001522 00000 n
0000001690 00000 n
0000002423 00000 n
0000002456 00000 n
0000002574 00000 n

trailer
<<
/Size 11
/Root 1 0 R
/Info 10 0 R
>>

startxref
2714
%%EOF
Loading

0 comments on commit 43c04ef

Please sign in to comment.