From 19f1f622a77fe6753f2a764ace5352d54b29066e Mon Sep 17 00:00:00 2001
From: Yaroslav Dynnikov <yaroslav.dynnikov@gmail.com>
Date: Sun, 22 May 2022 02:04:43 +0300
Subject: [PATCH] test: employ instance_uuid in pytest

Follow-up for https://git.picodata.io/picodata/picodata/picodata/-/issues/50
---
 test/int/test_joining.py | 23 +++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/test/int/test_joining.py b/test/int/test_joining.py
index 97014bae9d..f2bf7d320b 100644
--- a/test/int/test_joining.py
+++ b/test/int/test_joining.py
@@ -78,6 +78,29 @@ def test_request_follower(cluster2: Cluster):
     assert e.value.args == ("ER_PROC_C", "not a leader")
 
 
+def test_instance_uuid(cluster2: Cluster):
+    i1, i2 = cluster2.instances
+    i1.assert_raft_status("Leader")
+
+    ret = i1.call(
+        ".raft_join",
+        i2.instance_id,
+        None,  # replicaset_id
+        i2.listen,  # address
+        True,  # voter
+    )[0]["peer"]
+    assert ret["instance_id"] == i2.instance_id
+    assert ret["instance_uuid"] == i2.eval("return box.info.uuid")
+
+    # Two consequent requests must obtain same raft_id and instance_id
+    ret1 = fake_join(i1, "fake", timeout=1)[0]["peer"]
+    ret2 = fake_join(i1, "fake", timeout=1)[0]["peer"]
+    assert ret1["instance_id"] == "fake"
+    assert ret2["instance_id"] == "fake"
+    assert ret1["raft_id"] == ret2["raft_id"]
+    assert ret1["instance_uuid"] == ret2["instance_uuid"]
+
+
 def test_discovery(cluster: Cluster):
     cluster.deploy(instance_count=3)
     i1, i2, i3 = cluster.instances
-- 
GitLab