From 908381cbd2ed609c05d1407b30afd33dba962741 Mon Sep 17 00:00:00 2001 From: gkc Date: Mon, 26 Oct 2026 13:31:00 +0000 Subject: [PATCH] test: fix flaking AtClientTest.test_get_at_keys --- test/atclient_test.py | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/test/atclient_test.py b/test/atclient_test.py index e1dd801..9c00a25 100644 --- a/test/atclient_test.py +++ b/test/atclient_test.py @@ -1,4 +1,4 @@ -import unittest, random, string +import unittest, random, string, uuid from configparser import ConfigParser from at_client import AtClient @@ -29,20 +29,29 @@ def test_atsign_pkam_authenticate(self): @skip_if_dependabot_pr def test_get_at_keys(self): - """Test Scan Verb using get_at_keys""" - - # Test to fetch all keys + """get_at_keys lists exactly the self, public and shared keys matching its regex""" atsign = AtSign(self.atsign2) atclient = AtClient(atsign, verbose=self.verbose) - my_keys = atclient.get_at_keys("", fetch_metadata=True) - self.assertTrue(len(my_keys)>0) - - # Test Regex functionality - my_keys = atclient.get_at_keys("test", fetch_metadata=True) - self.assertEqual(len(my_keys), 4) - - my_keys = atclient.get_at_keys("no_key", fetch_metadata=True) - self.assertEqual(len(my_keys), 0) + token = uuid.uuid4().hex + created = [ + SelfKey(f"scan_self_{token}", atsign), + PublicKey(f"scan_public_{token}", atsign), + SharedKey(f"scan_shared_{token}", atsign, AtSign(self.atsign1)), + ] + for key in created: + key.set_time_to_live(10 * 60 * 1000) + atclient.put(key, "value") + self.addCleanup(atclient.delete, key) + expected = {str(key).lower() for key in created} + + all_keys = atclient.get_at_keys("", fetch_metadata=True) + self.assertEqual(expected - {str(key).lower() for key in all_keys}, set()) + + my_keys = atclient.get_at_keys(token, fetch_metadata=True) + self.assertEqual({str(key).lower() for key in my_keys}, expected) + + my_keys = atclient.get_at_keys(uuid.uuid4().hex, fetch_metadata=True) + self.assertEqual([str(key) for key in my_keys], []) @skip_if_dependabot_pr def test_put_public_key(self):