Uh oh!
There was an error while loading. Please reload this page.
Verify the reco counts report against real Vuforia - #3366
Merged
Conversation
vws-web-tools 2026.8.7 exposes the database ID which
`POST /imagetargets/databases/{database_id}/reports/recoCounts` names in its
path, so write it into the secrets files as `VUFORIA_DATABASE_ID` and send it
on the real backend. The mocks accept any ID, so they keep getting a random
one.
`verify_mock_vuforia` now yields its backend, as the Model Target equivalent
already does, so that a test can tell which one it is running against.
Secrets files created before this change have no database ID, so the field
defaults to empty and the real-Vuforia tests skip when it is. A green run
therefore does not mean the endpoint has been verified until the secrets files
are regenerated, which the differences documentation now says.
Towards #3359.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>The guard runs only when the secrets file has no `VUFORIA_DATABASE_ID`, so whichever way the secrets files are, one branch is unreachable in a given run and coverage cannot reach the required 100%. Exclude it, and say in a comment that it should be deleted once the secrets files are regenerated, after which a missing ID should be a failure. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Probing the endpoint with a real database found two mock bugs. Real Vuforia serves the report from S3 with a `text/plain` content type, not `text/csv`, and ends the header row with a carriage return and a line feed, not a line feed alone. The probe also confirmed the guesses made when the endpoint was added: every rejected `month` returns 400 `Fail`, the columns are `target_id,reco_count`, an empty report is header-only, and the 401 for a mismatched database ID carries the `AuthenticationFailure` result code. Add `VUFORIA_DATABASE_ID` to all 100 encrypted secrets files, so the tests run against real Vuforia rather than skipping. Only the working database has an ID, because only endpoints which name a database in their path need one, so the setting lives on a subclass rather than on the shared one. Record the URL differences which remain: real report file names are derived from the requested month, and real URLs expire. Closes#3363. Towards #3359. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
adamtheturtletemporarily deployed
to
development
August 8, 2026 23:24 — with
GitHub Actions
Inactive
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Probing the endpoint against a real database found two mock bugs, both fixed here: real Vuforia serves the report from S3 with a
text/plaincontent type rather thantext/csv, and ends the header row with a carriage return and a line feed rather than a line feed alone (#3363).The probe also confirmed the guesses made when the endpoint was added in #3357 — every rejected
monthreturns 400Fail, the columns aretarget_id,reco_count, an empty report is header-only, and a database ID which does not belong to the signing keys gives a 401AuthenticationFailure, including when the database name is passed in its place — sodifferences-to-vws.rstnow states these as observations rather than as unverified guesses, and records the differences which remain: real report file names derive from the requested month (2026-08-08-21.csvfor the current month,2026-07.csvfor the previous), real URLs expire after just under seven days, and the mock's 404-until-ready is still unverified because no probe caught a report before it was generated (#3364).To make those tests run rather than skip,
vws-web-toolsis bumped to2026.8.7for its new database ID,VUFORIA_DATABASE_IDis written byadmin/create_secrets_files.pyand added to all 100 encrypted secrets files and the example, and a_WorkingCloudDatabaseSettingssubclass carries the field so that_InactiveCloudDatabaseSettingsdoes not inherit a requirement no secrets file satisfies.verify_mock_vuforianow yields its backend, as the Model Target equivalent already did, soTestRecoCountsReportcan send the real ID to real Vuforia and a random one to the mocks, which accept any.All nine real-Vuforia cases pass; remaining follow-ups are #3359, #3360, #3362 and #3365.
🤖 Generated with Claude Code