DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
Test Case ID | Test Objective | Test Steps | Expected Outcome | Test Type |
|---|---|---|---|---|
TC-001 | Verify DAG is scheduled based on external event |
file_path = "test_file"
with DAG(
dag_id="test_create_file",
catchup=False,
):
@task
def create_file():
with open(file_path, "w") as file:
file.write("This is an example file.\n")
chain(create_file())
trigger = FileTrigger(filepath=file_path, poke_interval=10)
asset = Asset("example_asset", watchers=[AssetWatcher(name="file_trigger", trigger=trigger)])
with DAG(
dag_id="test_asset_with_watchers",
schedule=[asset],
catchup=False,
):
@task
def delete_file():
if os.path.exists(file_path):
os.remove(file_path)
chain(delete_file())
| The DAG was executed successfully. | Positive |
TC-002 | Verify DAG is not scheduled when no watcher is associated to the asset |
file_path = "test_file"
with DAG(
dag_id="test_create_file",
catchup=False,
):
@task
def create_file():
with open(file_path, "w") as file:
file.write("This is an example file.\n")
chain(create_file())
asset = Asset("example_asset")
with DAG(
dag_id="test_asset_with_watchers",
schedule=[asset],
catchup=False,
):
@task
def delete_file():
if os.path.exists(file_path):
os.remove(file_path)
chain(delete_file())
| The DAG was not executed successfully | Negative |
TC-003 | Verify DAG is scheduled based on two different external events |
file_path_1 = "test_file_1"
file_path_2 = "test_file_2"
with DAG(
dag_id="example_create_file_1",
catchup=False,
):
@task
def create_file():
with open(file_path_1, "w") as file:
file.write("This is an example file.\n")
chain(create_file())
with DAG(
dag_id="example_create_file_2",
catchup=False,
):
@task
def create_file():
with open(file_path_2, "w") as file:
file.write("This is an example file.\n")
chain(create_file())
trigger_1 = FileTrigger(filepath=file_path_1, poke_interval=10)
trigger_2 = FileTrigger(filepath=file_path_2, poke_interval=10)
asset = Asset("example_asset", watchers=[
AssetWatcher(name="file_trigger", trigger=trigger_1),
AssetWatcher(name="file_trigger", trigger=trigger_2)
])
with DAG(
dag_id="example_asset_with_watchers",
schedule=[asset],
catchup=False,
):
@task
def delete_files():
if os.path.exists(file_path_1):
os.remove(file_path_1)
if os.path.exists(file_path_2):
os.remove(file_path_2)
chain(delete_files())
| The DAG was executed successfully twice (once per event). | Positive |
TC-004 | Verify that API integration enforces token-based authentication. (Automated Flow, Unauthenticated) |
| The API returns an authentication error, and the CLI displays an appropriate error message. | Negative |
TC-005 | Verify that API integration respects RBAC policies. |
| Restricted actions fail with an authorization error. | Negative |
TC-006 | Verify that API integration respects RBAC policies. |
| Allowed actions succeed and return the correct data. | Positive |
TC-007 | Ensure that the CLI handles API downtime gracefully. |
| The CLI displays a clear and user-friendly error message indicating that the API is unavailable. | Edge |
TC-008 | Ensure that sensitive data is not exposed in CLI outputs or API responses. |
| Neither the CLI output nor the API response exposes sensitive data. Placeholder values (e.g., | Positive |
TC-009 | Ensure that CLI commands trigger the correct API calls and logs reflect the endpoint usage. |
| The API logs show the correct endpoint is triggered. | Positive |