Skip to content

Commit 9ed769d

Browse files
Authorize deployed read-only smoke
Refs #75
1 parent 0da8883 commit 9ed769d

3 files changed

Lines changed: 34 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1303,6 +1303,9 @@ jobs:
13031303
PROJECT_TAG: ${{ vars.DEVELOPMENT_RESOURCE_PROJECT_TAG }}
13041304
ENVIRONMENT_TAG: ${{ vars.DEVELOPMENT_RESOURCE_ENVIRONMENT_TAG }}
13051305
FAILURE_INJECTION: ${{ github.event_name == 'push' && 'none' || inputs.failure_injection }}
1306+
DTC_TEST_SAFETY_COMMAND: remote_readonly
1307+
DTC_TEST_TARGET_CLASS: isolated_development
1308+
DTC_TEST_REMOTE_NAMESPACE: deploy-${{ github.run_id }}-${{ github.run_attempt }}
13061309
run: |
13071310
set -euo pipefail
13081311
mkdir -p .tmp/deployment .tmp/deployed-smoke

ci/tests/test_workflows.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,26 @@ def test_aggregate_gate_is_the_release_dependency() -> None:
9999
assert "release-image-" in str(jobs["container"])
100100

101101

102+
def test_deploy_smoke_has_exact_readonly_authority_and_pinned_base_url() -> None:
103+
deploy = workflow("ci.yml")["jobs"]["deploy"]
104+
release = next(step for step in deploy["steps"] if step.get("id") == "release")
105+
106+
assert {
107+
name: release["env"][name]
108+
for name in (
109+
"DTC_TEST_SAFETY_COMMAND",
110+
"DTC_TEST_TARGET_CLASS",
111+
"DTC_TEST_REMOTE_NAMESPACE",
112+
)
113+
} == {
114+
"DTC_TEST_SAFETY_COMMAND": "remote_readonly",
115+
"DTC_TEST_TARGET_CLASS": "isolated_development",
116+
"DTC_TEST_REMOTE_NAMESPACE": "deploy-${{ github.run_id }}-${{ github.run_attempt }}",
117+
}
118+
assert "DTC_TEST_BASE_URL" not in release["env"]
119+
assert "--base-url https://web.dtcdev.click" in release["run"]
120+
121+
102122
def test_manual_release_is_full_and_probe_contract_stays_separate() -> None:
103123
jobs = workflow("ci.yml")["jobs"]
104124
assert "manual_dispatch" in (ROOT / "ci" / "classifier.py").read_text(encoding="utf-8")

core/tests/test_web_runtime_coherence.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
WebRuntimeBinding,
2222
)
2323
from deploy.legacy_development_compatibility import ECR_REPOSITORY_URI
24+
from test_support.safety import authorize_from_environment
2425

2526
SOURCE_SHA = "a" * 40
2627
IMAGE_DIGEST = f"sha256:{'b' * 64}"
@@ -317,6 +318,9 @@ def collect_subprocess(
317318
"VERSION": VERSION,
318319
"IMAGE_DIGEST": IMAGE_DIGEST,
319320
"RELEASE_SHA": SOURCE_SHA,
321+
"DTC_TEST_SAFETY_COMMAND": "remote_readonly",
322+
"DTC_TEST_TARGET_CLASS": "isolated_development",
323+
"DTC_TEST_REMOTE_NAMESPACE": "deploy-12345678-1",
320324
}
321325
with (
322326
patch.dict("os.environ", workflow_environment, clear=True),
@@ -336,6 +340,13 @@ def collect_subprocess(
336340
self.assertEqual(environment["DTC_EXPECTED_VERSION"], VERSION)
337341
self.assertEqual(environment["DTC_EXPECTED_SOURCE_SHA"], SOURCE_SHA)
338342
self.assertEqual(environment["DTC_EXPECTED_IMAGE_DIGEST"], IMAGE_DIGEST)
343+
self.assertEqual(environment["DTC_TEST_SAFETY_COMMAND"], "remote_readonly")
344+
self.assertEqual(environment["DTC_TEST_TARGET_CLASS"], "isolated_development")
345+
self.assertEqual(environment["DTC_TEST_REMOTE_NAMESPACE"], "deploy-12345678-1")
346+
self.assertEqual(environment["DTC_TEST_BASE_URL"], "https://web.dtcdev.click")
347+
with patch.dict("os.environ", environment, clear=True):
348+
authorization = authorize_from_environment("remote_readonly")
349+
self.assertEqual(authorization.base_url, "https://web.dtcdev.click")
339350

340351
def test_eventual_visibility_freezes_two_samples_around_public_health(self) -> None:
341352
events: list[str] = []

0 commit comments

Comments
 (0)