Add more steps

This commit is contained in:
Fang-Pen Lin
2025-11-07 09:17:44 -08:00
parent 375a74fc26
commit d3539e1d3a
3 changed files with 24 additions and 8 deletions
+9
View File
@@ -1,5 +1,14 @@
import os
import httpx
from behave.runner import Context from behave.runner import Context
BASE_URL = os.environ.get("INFISICAL_API_URL", "http://localhost:8080")
AUTH_TOKEN = os.environ.get("INFISICAL_TOKEN")
def before_all(context: Context): def before_all(context: Context):
context.vars = {} context.vars = {}
context.http_client = httpx.Client(
base_url=BASE_URL, headers={"Authorization": f"Bearer {AUTH_TOKEN}"}
)
@@ -1,5 +1,6 @@
Feature: Nonce Feature: Nonce
Scenario: Generate a new nonce Scenario: Generate a new nonce
Given I have a PKI project as "pki_project" Given I have a PKI project as "pki_project"
When I send a HEAD request to "/v1/pki/acme/profiles/{pki_project.id}/new-nonce" When I send a HEAD request to "/api/v1/pki/acme/profiles/{pki_project.id}/new-nonce"
Then the response status code should be "200"
Then the response header "Replay-Nonce" should contains non-empty value Then the response header "Replay-Nonce" should contains non-empty value
+13 -7
View File
@@ -1,14 +1,10 @@
from behave.runner import Context from behave.runner import Context
import httpx
from behave import given from behave import given
from behave import when from behave import when
from behave import then from behave import then
BASE_URL = "http://localhost:8080"
class PkiProject: class PkiProject:
def __init__(self, id: str): def __init__(self, id: str):
self.id = id self.id = id
@@ -25,11 +21,21 @@ def step_impl(context: Context, project_var: str):
@when('I send a {method} request to "{url}"') @when('I send a {method} request to "{url}"')
def step_impl(context: Context, method: str, url: str): def step_impl(context: Context, method: str, url: str):
with httpx.Client(base_url=BASE_URL) as client: context.response = context.http_client.request(method, url.format(**context.vars))
context.response = client.request(method, url.format(**context.vars))
@then('the response status code should be "{expected_status_code}"')
def step_impl(context: Context, expected_status_code: int):
assert context.response.status_code == expected_status_code, (
f"{context.response.status_code} != {expected_status_code}"
)
@then('the response header "{header}" should contains non-empty value') @then('the response header "{header}" should contains non-empty value')
def step_impl(context: Context, header: str): def step_impl(context: Context, header: str):
header_value = context.response.headers.get(header) header_value = context.response.headers.get(header)
assert header_value print(context.response.headers)
assert header_value is not None, f"Header {header} not found in response"
assert header_value, (
f"Header {header} found in response, but value {header_value:!r} is empty"
)