1
1
# Copyright (c) 2022-2023 Geosiris.
2
2
# SPDX-License-Identifier: Apache-2.0
3
3
4
- import asyncio
5
- from math import ceil
6
-
7
4
import pytest
8
-
9
- from etptypes .energistics .etp .v12 .datatypes .data_object_capability_kind import (
10
- DataObjectCapabilityKind ,
11
- )
12
- from etptypes .energistics .etp .v12 .datatypes .data_value import DataValue
13
- from etptypes .energistics .etp .v12 .datatypes .object .active_status_kind import (
14
- ActiveStatusKind ,
15
- )
16
5
from etptypes .energistics .etp .v12 .datatypes .object .context_info import (
17
6
ContextInfo ,
18
7
)
19
8
from etptypes .energistics .etp .v12 .datatypes .object .context_scope_kind import (
20
9
ContextScopeKind ,
21
10
)
22
- from etptypes .energistics .etp .v12 .datatypes .object .data_object import (
23
- DataObject ,
24
- Resource ,
25
- )
26
11
from etptypes .energistics .etp .v12 .datatypes .object .relationship_kind import (
27
12
RelationshipKind ,
28
13
)
29
14
from etptypes .energistics .etp .v12 .protocol .core .acknowledge import Acknowledge
30
15
from etptypes .energistics .etp .v12 .protocol .core .protocol_exception import (
31
16
ProtocolException ,
32
17
)
33
- from etptypes .energistics .etp .v12 .protocol .store .get_data_objects_response import (
34
- GetDataObjectsResponse ,
35
- )
36
18
37
19
from etpproto .error import (
38
- ETPError ,
39
20
InvalidMessageError ,
40
- UnsupportedProtocolError ,
41
21
InvalidStateError ,
42
22
)
43
- from etpproto .protocols .discovery import GetResources
44
23
45
24
try :
46
25
from .server_protocol_example import *
@@ -272,7 +251,7 @@ async def test_connection_state_request_session_as_bytes() -> None:
272
251
connection = ETPConnection ()
273
252
274
253
async for m in connection .handle_bytes_generator (
275
- requestSession_msg .encode_message ()
254
+ requestSession_msg .encode_message ()
276
255
):
277
256
pass
278
257
@@ -284,12 +263,12 @@ async def test_connection_state_close_session_as_bytes() -> None:
284
263
connection = ETPConnection ()
285
264
286
265
async for m in connection .handle_bytes_generator (
287
- requestSession_msg .encode_message ()
266
+ requestSession_msg .encode_message ()
288
267
):
289
268
pass
290
269
291
270
async for m in connection .handle_bytes_generator (
292
- closeSession_msg .encode_message ()
271
+ closeSession_msg .encode_message ()
293
272
):
294
273
pass
295
274
@@ -314,7 +293,7 @@ async def test_connection_requestSession_answer_as_bytes() -> None:
314
293
315
294
answer = []
316
295
async for m in connection .handle_bytes_generator (
317
- requestSession_msg .encode_message ()
296
+ requestSession_msg .encode_message ()
318
297
):
319
298
answer .append (m )
320
299
@@ -332,7 +311,7 @@ async def test_connection_requestSession_answer_as_bytes_generator() -> None:
332
311
333
312
answer = []
334
313
async for m in (
335
- connection .handle_bytes_generator (requestSession_msg .encode_message ())
314
+ connection .handle_bytes_generator (requestSession_msg .encode_message ())
336
315
):
337
316
answer .append (
338
317
Message .decode_binary_message (
@@ -369,7 +348,7 @@ async def test_connection_closeSession_answer_as_bytes_generator() -> None:
369
348
370
349
answer = []
371
350
async for m in (
372
- connection .handle_bytes_generator (closeSession_msg .encode_message ())
351
+ connection .handle_bytes_generator (closeSession_msg .encode_message ())
373
352
):
374
353
answer .append (
375
354
Message .decode_binary_message (
@@ -387,7 +366,7 @@ async def test_send_msg_without_connection_generator() -> None:
387
366
388
367
answer = []
389
368
async for m in (
390
- connection .handle_bytes_generator (getResources_msg .encode_message ())
369
+ connection .handle_bytes_generator (getResources_msg .encode_message ())
391
370
):
392
371
answer .append (
393
372
Message .decode_binary_message (
@@ -414,7 +393,7 @@ async def test_connection_first_msg_attributes() -> None:
414
393
assert len (answer ) == 1
415
394
assert answer [0 ].header .message_id == 1
416
395
assert (
417
- answer [0 ].header .correlation_id == requestSession_msg .header .message_id
396
+ answer [0 ].header .correlation_id == requestSession_msg .header .message_id
418
397
)
419
398
assert answer [0 ].is_final_msg ()
420
399
@@ -426,9 +405,9 @@ async def test_connection_requestSession_answer_as_bytes_generator_acknowledge()
426
405
427
406
answer = []
428
407
async for m in (
429
- connection .handle_bytes_generator (
430
- requestSession_msg_ask_acknowledge .encode_message ()
431
- )
408
+ connection .handle_bytes_generator (
409
+ requestSession_msg_ask_acknowledge .encode_message ()
410
+ )
432
411
):
433
412
answer .append (
434
413
Message .decode_binary_message (
@@ -443,41 +422,6 @@ async def test_connection_requestSession_answer_as_bytes_generator_acknowledge()
443
422
assert isinstance (answer [1 ].body , OpenSession )
444
423
445
424
446
- @pytest .mark .asyncio
447
- async def test_msg_multipart_chunks_reassembled_in_connection ():
448
- nb_data_objects = len (dataObjectResponse_msg .body .data_objects )
449
- size_limit = 500
450
- connection_client = ETPConnection (connection_type = ConnectionType .CLIENT )
451
- dataObjectResponse_msg .set_final_msg (True )
452
-
453
- async for m in connection_client ._handle_message_generator (
454
- openSession_msg
455
- ):
456
- pass
457
- assert connection_client .is_connected
458
-
459
- nb_chunks = ceil (
460
- len (resqml_obj_37166c33_3ebb_40ae_9bc6_1ab9693def60 )
461
- / (size_limit - 50 )
462
- ) # 50 is the size limit security (see message.py)
463
-
464
- assert len (connection_client .chunk_msg_cache ) == 0
465
- idx = 0
466
- async for part in dataObjectResponse_msg .encode_message_generator (
467
- size_limit , connection_client
468
- ):
469
- idx += 1
470
- async for m in connection_client .handle_bytes_generator (part ):
471
- pass
472
- if idx == nb_data_objects * (1 + nb_chunks ):
473
- assert len (connection_client .chunk_msg_cache ) == 0
474
- else :
475
- assert len (connection_client .chunk_msg_cache ) == 1
476
- assert (
477
- len (list (connection_client .chunk_msg_cache .values ())[0 ]) == idx
478
- )
479
-
480
-
481
425
if __name__ == "__main__" :
482
426
# asyncio.run(test_send_msg_without_connection_generator())
483
427
# asyncio.run(test_connection_requestSession_answer_as_bytes_generator())
0 commit comments