#!/usr/bin/env -S uv run --script --quiet # /// script # requires-python = ">=3.12" # dependencies = ["prefect>=3.0"] # /// """ test script for prefect-server blocks API tests: 1. create and save a Secret block 2. load the block and verify value 3. create and save a JSON block 4. load and verify JSON block 5. overwrite existing block usage: PREFECT_API_URL=http://localhost:4200/api ./scripts/test-blocks """ import os from prefect.blocks.system import Secret def test_secret_block(): """test creating, saving, and loading a Secret block""" print("\n=== test_secret_block ===") secret_value = "my-super-secret-value-123" block_name = "test-secret" # create and save secret = Secret(value=secret_value) secret.save(block_name, overwrite=True) print(f"✓ saved Secret block '{block_name}'") # load and verify loaded = Secret.load(block_name) assert loaded.get() == secret_value, f"expected '{secret_value}', got '{loaded.get()}'" print(f"✓ loaded Secret block '{block_name}' with correct value") # verify it's the right type assert isinstance(loaded, Secret), f"expected Secret, got {type(loaded)}" print(f"✓ loaded block is correct type: {type(loaded).__name__}") def test_block_overwrite(): """test that overwriting a block updates the value""" print("\n=== test_block_overwrite ===") block_name = "test-overwrite" # save initial value secret1 = Secret(value="initial-value") secret1.save(block_name, overwrite=True) print(f"✓ saved initial Secret block '{block_name}'") # verify initial value loaded1 = Secret.load(block_name) assert loaded1.get() == "initial-value", f"expected 'initial-value', got '{loaded1.get()}'" print(f"✓ initial value verified") # overwrite with new value secret2 = Secret(value="updated-value") secret2.save(block_name, overwrite=True) print(f"✓ overwrote Secret block '{block_name}' with new value") # verify new value loaded2 = Secret.load(block_name) assert loaded2.get() == "updated-value", f"expected 'updated-value', got '{loaded2.get()}'" print(f"✓ updated value verified") def main(): print(f"api url: {os.environ.get('PREFECT_API_URL', '(not set)')}") test_secret_block() test_block_overwrite() print("\n=== all block tests passed ===") if __name__ == "__main__": main()