#!/usr/bin/env python3 # from command import Command, run # from pathlib import Path # def test_blocking_secret( # systemd_vaultd: Path, command: Command, tempdir: Path # ) -> None: # secrets_dir = tempdir / "secrets" # command.run(["vault", "server", "-dev"]) # sock = tempdir / "sock" # command.run([str(systemd_vaultd), "-secrets", str(secrets_dir), "-sock", str(sock)]) # while not sock.exists(): # time.sleep(0.1) # service = random_service(secrets_dir) # proc = command.run( # [ # "systemd-run", # "-u", # service.name, # "--collect", # "--user", # "-p", # f"LoadCredential={service.secret_name}:{sock}", # "--wait", # "--pipe", # "cat", # "${CREDENTIALS_DIRECTORY}/" + service.secret_name, # ], # stdout=subprocess.PIPE, # ) # time.sleep(0.1) # assert proc.poll() is None, "service should block for secret" # service.secret_path.write_text("foo") # assert proc.stdout is not None and proc.stdout.read() == "foo" # assert proc.wait() == 0