Projet

Général

Profil

0001-gdc-raise-APIError-on-unloadable-content-61254.patch

Benjamin Dauvergne, 04 février 2022 13:57

Télécharger (1,66 ko)

Voir les différences:

Subject: [PATCH] gdc: raise APIError on unloadable content (#61254)

 passerelle/apps/gdc/models.py | 7 ++++++-
 tests/test_gdc.py             | 9 +++++++++
 2 files changed, 15 insertions(+), 1 deletion(-)
 create mode 100644 tests/test_gdc.py
passerelle/apps/gdc/models.py
27 27

  
28 28
from passerelle.base.models import BaseResource
29 29
from passerelle.utils.api import endpoint
30
from passerelle.utils.jsonresponse import APIError
30 31

  
31 32

  
32 33
def deep_bytes2str(obj):
......
48 49

  
49 50

  
50 51
def phpserialize_loads(s):
51
    return deep_bytes2str(phpserialize.loads(s.encode('utf-8')))
52
    try:
53
        return deep_bytes2str(phpserialize.loads(s.encode('utf-8')))
54
    except ValueError:
55
        truncated = s[:128] if isinstance(s, str) else s
56
        raise APIError(f'Could not deserialize GDC response {truncated!r}', data={'content': s})
52 57

  
53 58

  
54 59
class Gdc(BaseResource):
tests/test_gdc.py
1
import pytest
2

  
3
from passerelle.apps.gdc import models
4
from passerelle.utils.jsonresponse import APIError
5

  
6

  
7
def test_phpserialize_loads():
8
    with pytest.raises(APIError, match='Could not deserialize GDC response'):
9
        models.phpserialize_loads('aaa')
0
-