mirror of
https://github.com/logos-messaging/logos-messaging-interop-tests.git
synced 2026-01-08 17:03:12 +00:00
reliability updates
This commit is contained in:
parent
aca231e3da
commit
1df8cfb8f2
@ -31,7 +31,7 @@ class DockerManager:
|
||||
logger.debug(f"Network {network_name} created")
|
||||
return network
|
||||
|
||||
def start_container(self, image_name, ports, args, log_path, container_ip, volumes):
|
||||
def start_container(self, image_name, ports, args, log_path, container_ip, volumes, remove_container=True):
|
||||
cli_args = []
|
||||
for key, value in args.items():
|
||||
if isinstance(value, list): # Check if value is a list
|
||||
@ -46,7 +46,7 @@ class DockerManager:
|
||||
cli_args_str_for_log = " ".join(cli_args)
|
||||
logger.debug(f"docker run -i -t {port_bindings_for_log} {image_name} {cli_args_str_for_log}")
|
||||
container = self._client.containers.run(
|
||||
image_name, command=cli_args, ports=port_bindings, detach=True, remove=True, auto_remove=True, volumes=volumes
|
||||
image_name, command=cli_args, ports=port_bindings, detach=True, remove=remove_container, auto_remove=remove_container, volumes=volumes
|
||||
)
|
||||
|
||||
network = self._client.networks.get(NETWORK_NAME)
|
||||
|
||||
@ -100,6 +100,12 @@ class WakuNode:
|
||||
else:
|
||||
raise NotImplementedError("Not implemented for this node type")
|
||||
|
||||
if "remove_container" in kwargs:
|
||||
remove_container = kwargs["remove_container"]
|
||||
del kwargs["remove_container"]
|
||||
else:
|
||||
remove_container = True
|
||||
|
||||
default_args.update(sanitize_docker_flags(kwargs))
|
||||
|
||||
rln_args, rln_creds_set, keystore_path = self.parse_rln_credentials(default_args, False)
|
||||
@ -116,7 +122,13 @@ class WakuNode:
|
||||
logger.debug(f"Using volumes {self._volumes}")
|
||||
|
||||
self._container = self._docker_manager.start_container(
|
||||
self._docker_manager.image, self._ports, default_args, self._log_path, self._ext_ip, self._volumes
|
||||
self._docker_manager.image,
|
||||
ports=self._ports,
|
||||
args=default_args,
|
||||
log_path=self._log_path,
|
||||
container_ip=self._ext_ip,
|
||||
volumes=self._volumes,
|
||||
remove_container=remove_container,
|
||||
)
|
||||
|
||||
logger.debug(f"Started container from image {self._image_name}. REST: {self._rest_port}")
|
||||
@ -168,6 +180,10 @@ class WakuNode:
|
||||
if self._container:
|
||||
logger.debug(f"Stopping container with id {self._container.short_id}")
|
||||
self._container.stop()
|
||||
try:
|
||||
self._container.remove()
|
||||
except:
|
||||
pass
|
||||
self._container = None
|
||||
logger.debug("Container stopped.")
|
||||
|
||||
@ -405,3 +421,7 @@ class WakuNode:
|
||||
raise NotImplementedError("Not implemented for type other than Nim Waku ")
|
||||
|
||||
return rln_args, True, keystore_path
|
||||
|
||||
@property
|
||||
def container(self):
|
||||
return self._container
|
||||
|
||||
@ -6,9 +6,8 @@ from src.steps.store import StepsStore
|
||||
logger = get_custom_logger(__name__)
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("node_setup")
|
||||
class TestReliability(StepsStore):
|
||||
def test_publishing_node_is_stopped(self):
|
||||
def test_publishing_node_is_stopped(self, node_setup):
|
||||
self.publish_message()
|
||||
self.check_published_message_is_stored(page_size=5)
|
||||
self.publishing_node1.stop()
|
||||
@ -21,7 +20,7 @@ class TestReliability(StepsStore):
|
||||
else:
|
||||
raise AssertionError(f"Nwaku failed with {ex}")
|
||||
|
||||
def test_publishing_node_restarts(self):
|
||||
def test_publishing_node_restarts(self, node_setup):
|
||||
self.publish_message()
|
||||
self.check_published_message_is_stored(page_size=5)
|
||||
self.publishing_node1.restart()
|
||||
@ -34,7 +33,7 @@ class TestReliability(StepsStore):
|
||||
store_response = self.get_messages_from_store(node, page_size=5)
|
||||
assert len(store_response.messages) == 2
|
||||
|
||||
def test_store_node_restarts(self):
|
||||
def test_store_node_restarts(self, node_setup):
|
||||
self.publish_message()
|
||||
self.check_published_message_is_stored(page_size=5)
|
||||
self.store_node1.restart()
|
||||
@ -46,7 +45,7 @@ class TestReliability(StepsStore):
|
||||
store_response = self.get_messages_from_store(node, page_size=5)
|
||||
assert len(store_response.messages) == 2
|
||||
|
||||
def test_publishing_node_paused_and_unpaused(self):
|
||||
def test_publishing_node_paused_and_unpaused(self, node_setup):
|
||||
self.publish_message()
|
||||
self.check_published_message_is_stored(page_size=5)
|
||||
self.publishing_node1.pause()
|
||||
@ -59,7 +58,7 @@ class TestReliability(StepsStore):
|
||||
store_response = self.get_messages_from_store(node, page_size=5)
|
||||
assert len(store_response.messages) == 2
|
||||
|
||||
def test_store_node_paused_and_unpaused(self):
|
||||
def test_store_node_paused_and_unpaused(self, node_setup):
|
||||
self.publish_message()
|
||||
self.check_published_message_is_stored(page_size=5)
|
||||
self.store_node1.pause()
|
||||
@ -72,7 +71,7 @@ class TestReliability(StepsStore):
|
||||
store_response = self.get_messages_from_store(node, page_size=5)
|
||||
assert len(store_response.messages) == 2
|
||||
|
||||
def test_message_relayed_while_store_node_is_paused(self):
|
||||
def test_message_relayed_while_store_node_is_paused(self, node_setup):
|
||||
self.publish_message()
|
||||
self.check_published_message_is_stored(page_size=5)
|
||||
self.store_node1.pause()
|
||||
@ -84,13 +83,27 @@ class TestReliability(StepsStore):
|
||||
store_response = self.get_messages_from_store(node, page_size=5)
|
||||
assert len(store_response.messages) == 2
|
||||
|
||||
## I THINK WE HAVE A BUG FOR GOWAKU - NEEDS REPORTING!!!!
|
||||
def test_message_relayed_while_store_node_is_stopped(self):
|
||||
def test_message_relayed_while_store_node_is_stopped_without_removing(self):
|
||||
self.setup_first_publishing_node(store="true", relay="true")
|
||||
self.setup_first_store_node(store="false", relay="true", remove_container=False)
|
||||
self.subscribe_to_pubsub_topics_via_relay()
|
||||
self.publish_message()
|
||||
self.check_published_message_is_stored(page_size=5)
|
||||
self.store_node1.container.stop()
|
||||
self.publish_message()
|
||||
self.store_node1.container.start()
|
||||
self.store_node1.ensure_ready()
|
||||
for node in self.store_nodes:
|
||||
store_response = self.get_messages_from_store(node, page_size=5)
|
||||
assert len(store_response.messages) == 2
|
||||
|
||||
def test_message_relayed_while_store_node_is_stopped_and_removed(self, node_setup):
|
||||
self.publish_message()
|
||||
self.check_published_message_is_stored(page_size=5)
|
||||
self.store_node1.stop()
|
||||
self.store_nodes.remove(self.store_node1)
|
||||
self.publish_message()
|
||||
self.store_node1.start()
|
||||
self.setup_first_store_node(store="false", relay="true")
|
||||
self.store_node1.ensure_ready()
|
||||
self.add_node_peer(self.store_node1, self.multiaddr_list)
|
||||
self.subscribe_to_pubsub_topics_via_relay(node=self.store_node1)
|
||||
@ -99,11 +112,10 @@ class TestReliability(StepsStore):
|
||||
store_response = self.get_messages_from_store(node, page_size=5)
|
||||
assert len(store_response.messages) == 2
|
||||
|
||||
## I THINK WE HAVE A BUG FOR NWAKU - NEEDS REPORTING!!!!
|
||||
def test_message_relayed_before_store_node_is_started(self):
|
||||
def test_message_relayed_before_store_node_is_started(self, node_setup):
|
||||
self.publish_message()
|
||||
self.check_published_message_is_stored(page_size=5)
|
||||
self.setup_second_store_node(store="true", relay="true")
|
||||
self.setup_second_store_node(store="false", relay="true")
|
||||
self.subscribe_to_pubsub_topics_via_relay()
|
||||
store_response = self.get_messages_from_store(self.store_node2, page_size=5)
|
||||
assert len(store_response.messages) == 1
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user