2026.09.06¶
Add
MockVWS.set_target_recognition_countsand a matching target manager endpoint for the Flask and Docker mock, for setting the recognition counts which the target summary report and the reco counts report show for a target. A reco counts report now has a row for each target with recognitions in the requested month, and the recognition counts and recognition threshold of a cloud database are kept when the database is created in the Flask and Docker mock.Order Query API and
GET /duplicates/{target_id}results by match score, with the best match first, as the real Query API does. Matches with equal scores keep the existing upload date and then target ID order.Image matchers now return a score, or
Nonefor no match, rather than abool.StructuralSimilarityMatcherreturns the images’ SSIM score, andExactMatchergives every match the same score. A customquery_match_checkerorduplicate_match_checkerwhich returns aboolnow raises aTypeError; return a score, such as1.0, for a match andNonefor no match instead. The mock’s ranking is its matcher’s opinion, not Vuforia’s proprietary one, so the mock’s order still need not agree with the real Query API’s order.Respond, rather than failing to respond, to a request body which is not UTF-8 and to a query request whose
multipart/form-databody ends before its closing boundary.Return a
400response which names the offending field and the accepted values, rather than a500response, when the target manager container is given an invalid cloud database or VuMark database to create. Return a404response, rather than a500response, when the target manager container is asked to add a target to a database which does not exist.Say which claims about the real Vuforia Web Services the mock has not had checked against them.
unverified-behaviorlists each such claim and what would verify it, anddifferences-to-vwsmarks the unverified assumptions among its deliberate differences.Return a
BadImageresponse, rather than failing to respond, when an image given to the Target API is truncated before the end of its image data.MockVWSnow interceptshttpx2requests, synchronous and asynchronous, alongsiderequestsandhttpx. Thehttpx2path uses nativehttpx2requests and responses, and does not needhttpx2.alias_httpx().Fix nested
MockVWSinstances on thehttpxbackend: an inner mock is now the only one which answers while it is running, matching therequestsandhttpx2backends. Previously the outer mock kept answering and requests to the inner mock’s URL were refused.Return a response, rather than raising an uncaught
JSONDecodeError, when an empty body is given to a VWS endpoint which takes a JSON body. As real Vuforia does,POST /targetsandPUT /targets/<target_id>now return a 500Failresponse, the reco counts report endpoint returns a 400Failresponse, and the VuMark instance generation endpoint returns a 400BadRequestresponse.