fix: add kill of Node 1

This commit is contained in:
Roman 2024-06-11 11:23:01 +02:00
parent 4b19aeccd3
commit 0cdeb6a50a
No known key found for this signature in database
GPG Key ID: B8FE070B54E11B75
3 changed files with 31 additions and 4 deletions

View File

@ -1,6 +1,8 @@
import errno
import json
import os
import shutil
import pytest
import requests
from src.libs.common import delay
@ -133,6 +135,8 @@ class WakuNode:
]
)
shutil.rmtree(cwd + "/peerdb")
default_args.update(sanitize_docker_flags(kwargs))
rln_args, rln_creds_set, keystore_path = self.parse_rln_credentials(default_args, False)
@ -214,6 +218,18 @@ class WakuNode:
self._container = None
logger.debug("Container stopped.")
@retry(stop=stop_after_delay(5), wait=wait_fixed(0.1), reraise=True)
def kill(self):
if self._container:
logger.debug(f"Killing container with id {self._container.short_id}")
self._container.kill()
try:
self._container.remove()
except:
pass
self._container = None
logger.debug("Container killed.")
def restart(self):
if self._container:
logger.debug(f"Restarting container with id {self._container.short_id}")

View File

@ -44,7 +44,7 @@ class StepsPeerStore(StepsCommon):
@allure.step
def setup_third_relay_node(self, **kwargs):
self.node3 = WakuNode(NODE_1, f"node2_{self.test_id}")
self.node3 = WakuNode(NODE_1, f"node3_{self.test_id}")
self.node3.start(
relay="true",
discv5_bootstrap_node=self.enr_uri,

View File

@ -1,5 +1,6 @@
import pytest
from src.env_vars import NODE_1, NODE_2
from src.libs.common import delay
from src.libs.custom_logger import get_custom_logger
from src.node.waku_node import peer_info2id, peer_info2multiaddr, multiaddr2id
@ -68,18 +69,28 @@ class TestPeerStore(StepsPeerStore, StepsRelay, StepsStore):
assert len(node1_peers) == 2 and len(node2_peers) == 2, f"Some nodes and/or their services are missing"
# @pytest.mark.skip(reason="pending on https://github.com/waku-org/nwaku/issues/2792")
@pytest.mark.skipif("go-waku" in (NODE_1 + NODE_2), reason="Test works only with nwaku")
def test_use_persistent_storage_survive_restart(self):
self.setup_first_relay_node(peer_persistence="true")
self.setup_second_relay_node()
delay(10)
delay(3)
node1_peers = self.node1.get_peers()
node2_peers = self.node2.get_peers()
node1_id = self.node1.get_id()
node2_id = self.node2.get_id()
logger.debug(f"Node 1 peerID {node1_id}")
logger.debug(f"Node 2 peerID {node2_id}")
logger.debug(f"Node 1 connected peers before {node1_peers}")
logger.debug(f"Node 2 connected peers before {node2_peers}")
assert node1_id == peer_info2id(node2_peers[0], self.node2.is_nwaku())
assert node2_id == peer_info2id(node1_peers[0], self.node1.is_nwaku())
# Node 3 takes over Node 1
self.setup_third_relay_node(peer_persistence="true")
node1_peers = self.node1.get_peers()
self.node1.kill()
node2_peers = self.node2.get_peers()
node3_peers = self.node3.get_peers()
logger.debug(f"Node 1 connected peers after {node1_peers}")
logger.debug(f"Node 2 connected peers after {node2_peers}")
logger.debug(f"Node 3 connected peers after {node3_peers}")
assert node1_id == peer_info2id(node2_peers[0], self.node2.is_nwaku())
assert node2_id == peer_info2id(node3_peers[0], self.node3.is_nwaku())