1 |
1 |
import base64
|
|
2 |
import cgi
|
|
3 |
import io
|
2 |
4 |
import json
|
3 |
5 |
|
4 |
6 |
import httmock
|
... | ... | |
185 |
187 |
'ged_ref': 'gedref',
|
186 |
188 |
'doc_type': 'doctype',
|
187 |
189 |
'description': 'description',
|
188 |
|
'filename': 'filename',
|
|
190 |
'filename': 'foo.bar',
|
189 |
191 |
'indpj': 'indpj',
|
190 |
192 |
'domain_code': 'domaincode',
|
191 |
193 |
}
|
192 |
194 |
|
193 |
195 |
resp = app.post_json('/astre-rest/slug-astre-rest/gf-documents-gedmanager-document-create', params=params)
|
194 |
196 |
assert len(responses.calls) == 1
|
195 |
|
assert responses.calls[0].request.headers['content-type'].startswith('multipart/form-data')
|
|
197 |
made_request = responses.calls[0].request
|
|
198 |
assert made_request.headers['content-type'].startswith('multipart/form-data')
|
|
199 |
_, pdict = cgi.parse_header(made_request.headers["content-type"])
|
|
200 |
pdict["boundary"] = bytes(pdict["boundary"], "utf-8")
|
|
201 |
pdict['CONTENT-LENGTH'] = made_request.headers['Content-Length']
|
|
202 |
postvars = cgi.parse_multipart(io.BytesIO(made_request.body), pdict)
|
|
203 |
assert postvars['nomFichier'] == ['foo.bar']
|
|
204 |
assert 'fichier' in postvars
|
|
205 |
file_data = postvars['fichier'][0]
|
|
206 |
assert file_data == 'aaaa'.encode('utf-8')
|
|
207 |
|
196 |
208 |
json_resp = resp.json
|
197 |
209 |
assert json_resp['err'] == 0
|
198 |
210 |
assert json_resp['data'] == [{'foo': 'bar'}]
|
... | ... | |
264 |
276 |
assert json_resp['data'] == [{'foo': 'bar'}]
|
265 |
277 |
|
266 |
278 |
|
|
279 |
@responses.activate
|
267 |
280 |
def test_gf_documents_gedmanager_document_update(app, connector):
|
268 |
|
@httmock.urlmatch(
|
269 |
|
netloc='example.astre.net',
|
270 |
|
path='/astre/webservices/gf/documents/gedmanager/document/update/json',
|
|
281 |
responses.add(
|
|
282 |
responses.POST,
|
|
283 |
'http://example.astre.net/astre/webservices/gf/documents/gedmanager/document/update/json',
|
|
284 |
json=[{'foo': 'bar'}],
|
|
285 |
status=200,
|
271 |
286 |
)
|
272 |
|
def astre_mock(url, request):
|
273 |
|
return httmock.response(200, content=[{'foo': 'bar'}])
|
274 |
287 |
|
275 |
288 |
params = {
|
276 |
289 |
'file': {
|
... | ... | |
284 |
297 |
'ged_ref': 'gedref',
|
285 |
298 |
'doc_type': 'doctype',
|
286 |
299 |
'description': 'description',
|
287 |
|
'filename': 'filename',
|
|
300 |
'filename': 'foo.bar',
|
288 |
301 |
'indpj': 'indpj',
|
289 |
302 |
'domain_code': 'domaincode',
|
290 |
303 |
}
|
291 |
304 |
|
292 |
|
with httmock.HTTMock(astre_mock):
|
293 |
|
resp = app.post_json(
|
294 |
|
'/astre-rest/slug-astre-rest/gf-documents-gedmanager-document-update', params=params
|
295 |
|
)
|
|
305 |
resp = app.post_json('/astre-rest/slug-astre-rest/gf-documents-gedmanager-document-update', params=params)
|
|
306 |
assert len(responses.calls) == 1
|
|
307 |
made_request = responses.calls[0].request
|
|
308 |
assert made_request.headers['content-type'].startswith('multipart/form-data')
|
|
309 |
_, pdict = cgi.parse_header(made_request.headers["content-type"])
|
|
310 |
pdict["boundary"] = bytes(pdict["boundary"], "utf-8")
|
|
311 |
pdict['CONTENT-LENGTH'] = made_request.headers['Content-Length']
|
|
312 |
postvars = cgi.parse_multipart(io.BytesIO(made_request.body), pdict)
|
|
313 |
assert postvars['nomFichier'] == ['foo.bar']
|
|
314 |
assert 'fichier' in postvars
|
|
315 |
file_data = postvars['fichier'][0]
|
|
316 |
assert file_data == 'aaaa'.encode('utf-8')
|
|
317 |
|
296 |
318 |
json_resp = resp.json
|
297 |
319 |
assert json_resp['err'] == 0
|
298 |
320 |
assert json_resp['data'] == [{'foo': 'bar'}]
|
299 |
|
-
|