forked from goodboy/tractor
				
			Adjusts advanced fault tests to match new `TransportClosed` semantics
							parent
							
								
									31207f92ee
								
							
						
					
					
						commit
						e6ccfce751
					
				|  | @ -91,7 +91,8 @@ def test_ipc_channel_break_during_stream( | |||
| 
 | ||||
|         # non-`trio` spawners should never hit the hang condition that | ||||
|         # requires the user to do ctl-c to cancel the actor tree. | ||||
|         expect_final_exc = trio.ClosedResourceError | ||||
|         # expect_final_exc = trio.ClosedResourceError | ||||
|         expect_final_exc = tractor.TransportClosed | ||||
| 
 | ||||
|     mod: ModuleType = import_path( | ||||
|         examples_dir() / 'advanced_faults' | ||||
|  | @ -157,7 +158,7 @@ def test_ipc_channel_break_during_stream( | |||
|         if pre_aclose_msgstream: | ||||
|             expect_final_exc = KeyboardInterrupt | ||||
| 
 | ||||
|     # NOTE when the parent IPC side dies (even if the child's does as well | ||||
|     # NOTE when the parent IPC side dies (even if the child does as well | ||||
|     # but the child fails BEFORE the parent) we always expect the | ||||
|     # IPC layer to raise a closed-resource, NEVER do we expect | ||||
|     # a stop msg since the parent-side ctx apis will error out | ||||
|  | @ -169,7 +170,8 @@ def test_ipc_channel_break_during_stream( | |||
|         and | ||||
|         ipc_break['break_child_ipc_after'] is False | ||||
|     ): | ||||
|         expect_final_exc = trio.ClosedResourceError | ||||
|         # expect_final_exc = trio.ClosedResourceError | ||||
|         expect_final_exc = tractor.TransportClosed | ||||
| 
 | ||||
|     # BOTH but, PARENT breaks FIRST | ||||
|     elif ( | ||||
|  | @ -180,7 +182,8 @@ def test_ipc_channel_break_during_stream( | |||
|             ipc_break['break_parent_ipc_after'] | ||||
|         ) | ||||
|     ): | ||||
|         expect_final_exc = trio.ClosedResourceError | ||||
|         # expect_final_exc = trio.ClosedResourceError | ||||
|         expect_final_exc = tractor.TransportClosed | ||||
| 
 | ||||
|     with pytest.raises( | ||||
|         expected_exception=( | ||||
|  | @ -199,8 +202,8 @@ def test_ipc_channel_break_during_stream( | |||
|                     **ipc_break, | ||||
|                 ) | ||||
|             ) | ||||
|         except KeyboardInterrupt as kbi: | ||||
|             _err = kbi | ||||
|         except KeyboardInterrupt as _kbi: | ||||
|             kbi = _kbi | ||||
|             if expect_final_exc is not KeyboardInterrupt: | ||||
|                 pytest.fail( | ||||
|                     'Rxed unexpected KBI !?\n' | ||||
|  | @ -209,6 +212,21 @@ def test_ipc_channel_break_during_stream( | |||
| 
 | ||||
|             raise | ||||
| 
 | ||||
|         except tractor.TransportClosed as _tc: | ||||
|             tc = _tc | ||||
|             if expect_final_exc is KeyboardInterrupt: | ||||
|                 pytest.fail( | ||||
|                     'Unexpected transport failure !?\n' | ||||
|                     f'{repr(tc)}' | ||||
|                 ) | ||||
|             cause: Exception = tc.__cause__ | ||||
|             assert ( | ||||
|                 type(cause) is trio.ClosedResourceError | ||||
|                 and | ||||
|                 cause.args[0] == 'another task closed this fd' | ||||
|             ) | ||||
|             raise | ||||
| 
 | ||||
|     # get raw instance from pytest wrapper | ||||
|     value = excinfo.value | ||||
|     if isinstance(value, ExceptionGroup): | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue