def __post_init__(self): """override""" p2p_addr = f"{self.p2p_host}:{self.p2p_port}" self.p2p_addr = p2p_addr client_addr = f"{self.host}:{self.port}" self.node = nde.Node(p2p_addr=p2p_addr, client_addr=client_addr, name=self.node_name) self._client_server = server.ClientServer( addr=(self.host, self.port), node=self.node, max_connections=self.max_connections, ) self._peer_server = server.PeerServer(addr=(self.p2p_host, self.p2p_port), node=self.node) self._threads = [ Thread(target=self._start_client_server, daemon=True, name="ClientServerThread"), Thread(target=self._start_peer_server, daemon=True, name="PeerServerThread"), Thread(target=self._start_membership, daemon=True, name="MembershipThread"), ]
def test_parse_put(): parser = jql.JQL(node=nde.Node()) statement = "put hello world;" _, txn = parser.call(statement) assert txn assert txn.writes[b"hello"].value == b"world"
def test_parse_transaction_with_read(): parser = jql.JQL(node=nde.Node()) statement = "begin\nput a b\nget a\nend;" _, txn1 = parser.call(statement) assert txn1 assert txn1.writes[b"a"].value == b"b" assert b"a" not in txn1.reads
def test_parse_transaction(): parser = jql.JQL(node=nde.Node()) statement = "begin\nput a b\nput c d\nend;" _, txn1 = parser.call(statement) assert txn1 assert txn1.writes[b"a"].value == b"b" assert txn1.writes[b"c"].value == b"d"
def test_parse_get(): node = nde.Node() parser = jql.JQL(node) database = node.store database.put(b"hello", b"world") statement = "get hello;" val, txn1 = parser.call(statement) assert not txn1 assert val == "world"
def test_routing(): name = "3" addr = "0.0.0.3" node = nde.Node(name=name, p2p_addr=addr) membership = mbr.Membership(node_name=name, node_addr=addr) membership.add_peer("1", "0.0.0.1") router = rte.Router(membership=membership, node=node) req = rte.BatchRequest() req.requests.append(rte.PutRequest(key=b"/2/a", value=b"1")) router.request(req)