import os import unittest import sys from pathlib import Path code_path = Path(__file__).parents[2] / "ca_core" sys.path.insert(0, str(code_path)) from crypto.zenroom_service_client import ZenroomServiceClient class TestZenroomServiceClientIntegration(unittest.TestCase): @unittest.skipUnless(os.getenv("ZENROOM_BASE_URL"), "No ZENROOM_BASE_URL set") def test_end_to_end_smoke(self): client = ZenroomServiceClient(base_url=os.environ["ZENROOM_BASE_URL"]) # 1) keypair -> public key kp = client.generate_keypair("IntegrationUser123456") self.assertIn("keyring", kp) self.assertIn("private_key", kp) pub = client.generate_public_key(kp["keyring"]) self.assertIsInstance(pub, str) self.assertTrue(pub.strip()) # 2) symmetric roundtrip plaintext = "Dear Bob, your name is too short, goodbye - Alice." sm = client.symmetric_encrypt( header="A very important secret", message=plaintext, shared_key="myVerySecretPassword", ) pt = client.symmetric_decrypt(secret_message=sm, shared_key="myVerySecretPassword") self.assertEqual(pt, plaintext)