prefect server in zig
1#!/usr/bin/env -S uv run --script --quiet
2# /// script
3# requires-python = ">=3.12"
4# dependencies = ["prefect>=3.0"]
5# ///
6"""
7test script for prefect-server blocks API
8
9tests:
101. create and save a Secret block
112. load the block and verify value
123. create and save a JSON block
134. load and verify JSON block
145. overwrite existing block
15
16usage:
17 PREFECT_API_URL=http://localhost:4200/api ./scripts/test-blocks
18"""
19import os
20
21from prefect.blocks.system import Secret
22
23
24def test_secret_block():
25 """test creating, saving, and loading a Secret block"""
26 print("\n=== test_secret_block ===")
27
28 secret_value = "my-super-secret-value-123"
29 block_name = "test-secret"
30
31 # create and save
32 secret = Secret(value=secret_value)
33 secret.save(block_name, overwrite=True)
34 print(f"✓ saved Secret block '{block_name}'")
35
36 # load and verify
37 loaded = Secret.load(block_name)
38 assert loaded.get() == secret_value, f"expected '{secret_value}', got '{loaded.get()}'"
39 print(f"✓ loaded Secret block '{block_name}' with correct value")
40
41 # verify it's the right type
42 assert isinstance(loaded, Secret), f"expected Secret, got {type(loaded)}"
43 print(f"✓ loaded block is correct type: {type(loaded).__name__}")
44
45
46def test_block_overwrite():
47 """test that overwriting a block updates the value"""
48 print("\n=== test_block_overwrite ===")
49
50 block_name = "test-overwrite"
51
52 # save initial value
53 secret1 = Secret(value="initial-value")
54 secret1.save(block_name, overwrite=True)
55 print(f"✓ saved initial Secret block '{block_name}'")
56
57 # verify initial value
58 loaded1 = Secret.load(block_name)
59 assert loaded1.get() == "initial-value", f"expected 'initial-value', got '{loaded1.get()}'"
60 print(f"✓ initial value verified")
61
62 # overwrite with new value
63 secret2 = Secret(value="updated-value")
64 secret2.save(block_name, overwrite=True)
65 print(f"✓ overwrote Secret block '{block_name}' with new value")
66
67 # verify new value
68 loaded2 = Secret.load(block_name)
69 assert loaded2.get() == "updated-value", f"expected 'updated-value', got '{loaded2.get()}'"
70 print(f"✓ updated value verified")
71
72
73def main():
74 print(f"api url: {os.environ.get('PREFECT_API_URL', '(not set)')}")
75
76 test_secret_block()
77 test_block_overwrite()
78
79 print("\n=== all block tests passed ===")
80
81
82if __name__ == "__main__":
83 main()