vortexpy 6.2.1__tar.gz → 6.2.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. {vortexpy-6.2.1 → vortexpy-6.2.2}/PKG-INFO +1 -1
  2. {vortexpy-6.2.1 → vortexpy-6.2.2}/pyproject.toml +1 -1
  3. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexFactory.py +5 -2
  4. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexFactory_test.py +72 -0
  5. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/__init__.py +1 -1
  6. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortexpy.egg-info/PKG-INFO +1 -1
  7. {vortexpy-6.2.1 → vortexpy-6.2.2}/LICENSE +0 -0
  8. {vortexpy-6.2.1 → vortexpy-6.2.2}/README.md +0 -0
  9. {vortexpy-6.2.1 → vortexpy-6.2.2}/example/TwistedDeferredTimeout.py +0 -0
  10. {vortexpy-6.2.1 → vortexpy-6.2.2}/example/__init__.py +0 -0
  11. {vortexpy-6.2.1 → vortexpy-6.2.2}/example/run_http_upgraded_websocket_ping_client.py +0 -0
  12. {vortexpy-6.2.1 → vortexpy-6.2.2}/example/run_http_upgraded_websocket_ping_server.py +0 -0
  13. {vortexpy-6.2.1 → vortexpy-6.2.2}/example/run_http_upgraded_websocket_rpc_test_client.py +0 -0
  14. {vortexpy-6.2.1 → vortexpy-6.2.2}/example/run_http_upgraded_websocket_rpc_test_server.py +0 -0
  15. {vortexpy-6.2.1 → vortexpy-6.2.2}/example/run_websocket_rpc_test_client.py +0 -0
  16. {vortexpy-6.2.1 → vortexpy-6.2.2}/example/run_websocket_rpc_test_server.py +0 -0
  17. {vortexpy-6.2.1 → vortexpy-6.2.2}/example/setup_example_logging.py +0 -0
  18. {vortexpy-6.2.1 → vortexpy-6.2.2}/example/store_and_load_json.py +0 -0
  19. {vortexpy-6.2.1 → vortexpy-6.2.2}/setup.cfg +0 -0
  20. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/DataWrapTuple.py +0 -0
  21. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/DeferUtil.py +0 -0
  22. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/DeferUtil_test.py +0 -0
  23. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/Jsonable.py +0 -0
  24. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/MtlsAuthorizedClientRegistry.py +0 -0
  25. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/MtlsAuthorizedClientRegistry_test.py +0 -0
  26. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/MtlsServerSslOptions.py +0 -0
  27. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/Payload.py +0 -0
  28. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/PayloadEndpoint.py +0 -0
  29. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/PayloadEndpointTest.py +0 -0
  30. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/PayloadEnvelope.py +0 -0
  31. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/PayloadFilterKeys.py +0 -0
  32. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/PayloadIO.py +0 -0
  33. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/PayloadPriority.py +0 -0
  34. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/PayloadResponse.py +0 -0
  35. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/PayloadResponseTest.py +0 -0
  36. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/PayloadResponse_test.py +0 -0
  37. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/PayloadTest.py +0 -0
  38. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/PerformTestActionTuple.py +0 -0
  39. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/SerialiseUtil.py +0 -0
  40. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/SerialiseUtil_test.py +0 -0
  41. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/TestTuple.py +0 -0
  42. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/Tuple.py +0 -0
  43. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/TupleAction.py +0 -0
  44. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/TupleBson.py +0 -0
  45. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/TupleBson_test.py +0 -0
  46. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/TupleDataForTest.py +0 -0
  47. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/TupleDocumentConverter.py +0 -0
  48. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/TuplePerfTest.py +0 -0
  49. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/TuplePolymorphicTupleTypeFieldArgTest.py +0 -0
  50. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/TupleRestful.py +0 -0
  51. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/TupleRestful_test.py +0 -0
  52. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/TupleSelector.py +0 -0
  53. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/TupleTest.py +0 -0
  54. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexABC.py +0 -0
  55. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexAccessControlContextABC.py +0 -0
  56. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexAuthenticatorABC.py +0 -0
  57. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexClientHttp.py +0 -0
  58. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexClientHttpTest.py +0 -0
  59. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexClientTcp.py +0 -0
  60. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexClientWebsocketFactory.py +0 -0
  61. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexConnectionABC.py +0 -0
  62. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexEndpointPermission.py +0 -0
  63. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexPayloadProtocol.py +0 -0
  64. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexPermission.py +0 -0
  65. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexPermissionError.py +0 -0
  66. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexServer.py +0 -0
  67. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexServerConnection.py +0 -0
  68. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexServerConnection_test.py +0 -0
  69. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexServerHttpResource.py +0 -0
  70. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexServerTcp.py +0 -0
  71. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexServerTcp_test.py +0 -0
  72. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexServerWebsocket.py +0 -0
  73. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexServerWebsocket_test.py +0 -0
  74. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexServer_test.py +0 -0
  75. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexSession.py +0 -0
  76. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexSession_test.py +0 -0
  77. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexTcpMemoryLeakPayloadTest.py +0 -0
  78. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexTcpMemoryLeakRawTest.py +0 -0
  79. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexTest.py +0 -0
  80. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexUserDetailsABC.py +0 -0
  81. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexUtil.py +0 -0
  82. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexWritePushProducer.py +0 -0
  83. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/VortexWritePushProducer_test.py +0 -0
  84. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/data_loader/TupleDataLiveLockManager.py +0 -0
  85. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/data_loader/TupleDataLiveLockManager_test.py +0 -0
  86. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/data_loader/TupleDataLoader.py +0 -0
  87. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/data_loader/TupleDataLoaderDelegate.py +0 -0
  88. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/data_loader/TupleDataLoaderTupleABC.py +0 -0
  89. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/data_loader/TupleDataLoaderTuples.py +0 -0
  90. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/data_loader/__init__.py +0 -0
  91. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/event_bus/TupleChangeEventABC.py +0 -0
  92. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/event_bus/TupleChangeEventBus.py +0 -0
  93. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/event_bus/TupleChangeEventBusObserverABC.py +0 -0
  94. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/event_bus/__init__.py +0 -0
  95. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/TupleActionProcessor.py +0 -0
  96. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/TupleActionProcessorProxy.py +0 -0
  97. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/TupleActionProcessorTestHandler.py +0 -0
  98. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/TupleActionProcessor_shutdown_test.py +0 -0
  99. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/TupleActionProcessor_test.py +0 -0
  100. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/TupleActionPushOffline.py +0 -0
  101. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/TupleActionPushOffline_test.py +0 -0
  102. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/TupleDataAccessGranterABC.py +0 -0
  103. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/TupleDataActionClient.py +0 -0
  104. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/TupleDataActionClient_test.py +0 -0
  105. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/TupleDataObservableCache.py +0 -0
  106. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/TupleDataObservableCache_test.py +0 -0
  107. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/TupleDataObservableHandler.py +0 -0
  108. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/TupleDataObservableHandler_test.py +0 -0
  109. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/TupleDataObservableProxyHandler.py +0 -0
  110. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/TupleDataObservableProxyHandler_test.py +0 -0
  111. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/TupleDataObservableTestHandler.py +0 -0
  112. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/TupleDataObserverClient.py +0 -0
  113. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/TupleDataOfflineObserverService.py +0 -0
  114. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/TupleDataOfflineObserverService_test.py +0 -0
  115. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/TupleDataProviderABC.py +0 -0
  116. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/VortexJSTupleLoaderTestHandler.py +0 -0
  117. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/handler/__init__.py +0 -0
  118. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/mypy_plugin.py +0 -0
  119. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/payload_many_tuples_benchmark_test.py +0 -0
  120. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/py.typed +0 -0
  121. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/restful/GzippedDataHttpClient.py +0 -0
  122. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/restful/GzippedDataHttpClientTest.py +0 -0
  123. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/restful/GzippedPayloadHttpClient.py +0 -0
  124. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/restful/RestfulHttpClient.py +0 -0
  125. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/restful/RestfulResource.py +0 -0
  126. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/restful/__init__.py +0 -0
  127. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/restful/restful_http_client_test.py +0 -0
  128. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/restful/restful_resource_test.py +0 -0
  129. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/rpc/RPC.py +0 -0
  130. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/rpc/RPCTest.py +0 -0
  131. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/rpc/RPC_test.py +0 -0
  132. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/rpc/__init__.py +0 -0
  133. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/sqla_orm/OrmCrudHandler.py +0 -0
  134. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/sqla_orm/TupleProviderForDb.py +0 -0
  135. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/sqla_orm/VortexTupleJson.py +0 -0
  136. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/sqla_orm/__init__.py +0 -0
  137. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/storage/TupleActionStorageSqlite.py +0 -0
  138. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/storage/TupleOfflineStorageNameService.py +0 -0
  139. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/storage/TupleOfflineStorageSecureService.py +0 -0
  140. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/storage/TupleOfflineStorageSecureService_test.py +0 -0
  141. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/storage/TupleOfflineStorageService.py +0 -0
  142. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/storage/TupleStorageServiceABC.py +0 -0
  143. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/storage/TupleStorageSqlite.py +0 -0
  144. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/storage/TupleStorageSqliteService.py +0 -0
  145. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/storage/TupleStorageSqliteService_test.py +0 -0
  146. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/storage/__init__.py +0 -0
  147. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/tuple_json_schema/__init__.py +0 -0
  148. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/tuple_json_schema/constants.py +0 -0
  149. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/tuple_json_schema/json_schema_node_tuple.py +0 -0
  150. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/tuple_json_schema/tuple_json_schema_builder.py +0 -0
  151. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/tuple_json_schema/tuple_json_schema_test.py +0 -0
  152. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/tuple_json_schema/tuple_json_schema_test_tuples.py +0 -0
  153. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/tuple_test_fixtures.py +0 -0
  154. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/twisted_runtime_metrics.py +0 -0
  155. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortex/twisted_runtime_metrics_test.py +0 -0
  156. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortexpy.egg-info/SOURCES.txt +0 -0
  157. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortexpy.egg-info/dependency_links.txt +0 -0
  158. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortexpy.egg-info/entry_points.txt +0 -0
  159. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortexpy.egg-info/requires.txt +0 -0
  160. {vortexpy-6.2.1 → vortexpy-6.2.2}/vortexpy.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vortexpy
3
- Version: 6.2.1
3
+ Version: 6.2.2
4
4
  Summary: Flying Ion's observable, routable, data serialisation and transport code.
5
5
  Author-email: Flying Ion Pty Ltd <contact@flyingion.com>
6
6
  License: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "vortexpy"
7
- version = "6.2.1"
7
+ version = "6.2.2"
8
8
  license = {text = "MIT"}
9
9
  authors = [{name = "Flying Ion Pty Ltd", email = "contact@flyingion.com"}]
10
10
  description = "Flying Ion's observable, routable, data serialisation and transport code."
@@ -995,7 +995,10 @@ class VortexFactory:
995
995
  "Vortex %s went %s", vortexName, ("online" if online else "offline")
996
996
  )
997
997
 
998
+ # Rebuild the connection structs before notifying: handlers react to
999
+ # the status change synchronously (e.g. the offline observer re-tell)
1000
+ # and read getRemoteVortexName() from these structs.
1001
+ cls.connectionChanged()
1002
+
998
1003
  if vortexName in cls.__vortexStatusChangeSubjectsByName:
999
1004
  cls.__vortexStatusChangeSubjectsByName[vortexName].on_next(online)
1000
-
1001
- cls.connectionChanged()
@@ -112,3 +112,75 @@ def test_closeExistingVortexClientsForName_closesRegisteredClients() -> None:
112
112
  assert (
113
113
  VortexFactory.getLocalVortexClients("codie-mcp-local") == []
114
114
  )
115
+
116
+
117
+ def _resetVortexFactoryClassState() -> None:
118
+ VortexFactory._VortexFactory__vortexInfoState = _VortexFactoryVortexInfo()
119
+ VortexFactory._VortexFactory__vortexStatusChangeSubjectsByName = {}
120
+ VortexFactory._VortexFactory__isShutdown = False
121
+
122
+
123
+ def test_notifyOfVortexStatusChange_rebuildsStructsBeforeNotify() -> None:
124
+ _resetVortexFactoryClassState()
125
+ try:
126
+ client = _StubVortexClient("codie-mcp-local", "local-uuid-1")
127
+ VortexFactory._VortexFactory__vortexInfoState.addVortexClient(
128
+ "codie-mcp-local", client
129
+ )
130
+
131
+ # Mirror the handshake: _setNameAndUuid sets the remote info on the
132
+ # client before _notifyOfVortexStatusChange runs.
133
+ client._remote_name = "codie-hub"
134
+ client._remote_uuid = "hub-uuid-1"
135
+
136
+ notifications = []
137
+ VortexFactory.subscribeToVortexStatusChange("codie-hub").subscribe(
138
+ lambda online: notifications.append(
139
+ (online, VortexFactory.getRemoteVortexName())
140
+ )
141
+ )
142
+
143
+ VortexFactory._notifyOfVortexStatusChange("codie-hub", online=True)
144
+
145
+ assert len(notifications) == 1
146
+ online, remoteNames = notifications[0]
147
+ assert online is True
148
+ assert "codie-hub" in remoteNames
149
+ finally:
150
+ _resetVortexFactoryClassState()
151
+
152
+
153
+ def test_notifyOfVortexStatusChange_offlineAfterClearDropsName() -> None:
154
+ _resetVortexFactoryClassState()
155
+ try:
156
+ client = _StubVortexClient(
157
+ "codie-mcp-local",
158
+ "local-uuid-1",
159
+ remote_name="codie-hub",
160
+ remote_uuid="hub-uuid-1",
161
+ )
162
+ VortexFactory._VortexFactory__vortexInfoState.addVortexClient(
163
+ "codie-mcp-local", client
164
+ )
165
+ assert "codie-hub" in VortexFactory.getRemoteVortexName()
166
+
167
+ # Mirror connectionLost: _clearRemoteVortexInfo clears the remote
168
+ # info on the client before _notifyOfVortexStatusChange runs.
169
+ client._remote_name = None
170
+ client._remote_uuid = None
171
+
172
+ notifications = []
173
+ VortexFactory.subscribeToVortexStatusChange("codie-hub").subscribe(
174
+ lambda online: notifications.append(
175
+ (online, VortexFactory.getRemoteVortexName())
176
+ )
177
+ )
178
+
179
+ VortexFactory._notifyOfVortexStatusChange("codie-hub", online=False)
180
+
181
+ assert len(notifications) == 1
182
+ online, remoteNames = notifications[0]
183
+ assert online is False
184
+ assert "codie-hub" not in remoteNames
185
+ finally:
186
+ _resetVortexFactoryClassState()
@@ -6,4 +6,4 @@
6
6
  # Website : https://flyingion.com
7
7
  # Support : contact@flyingion.com
8
8
 
9
- __version__ = '6.2.1'
9
+ __version__ = '6.2.2'
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vortexpy
3
- Version: 6.2.1
3
+ Version: 6.2.2
4
4
  Summary: Flying Ion's observable, routable, data serialisation and transport code.
5
5
  Author-email: Flying Ion Pty Ltd <contact@flyingion.com>
6
6
  License: MIT
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes