1717 add_target_to_vws ,
1818 database_summary ,
1919 delete_target ,
20+ query ,
2021 wait_for_target_processed ,
2122)
2223from tests .mock_vws .utils .assertions import assert_vws_response
@@ -362,7 +363,7 @@ def test_processing_images(
362363@pytest .mark .usefixtures ('verify_mock_vuforia' )
363364class TestQuotas :
364365 """
365- Tests for the mock of the database summary endpoint at `GET /summary` .
366+ Tests for quotas and thresholds .
366367 """
367368
368369 def test_quotas (self , vuforia_database_keys : VuforiaDatabaseKeys ) -> None :
@@ -379,6 +380,93 @@ def test_quotas(self, vuforia_database_keys: VuforiaDatabaseKeys) -> None:
379380 assert response .json ()['reco_threshold' ] == 1000
380381
381382
383+ @pytest .mark .usefixtures ('verify_mock_vuforia' )
384+ class TestRequestUsage :
385+ """
386+ Tests for the ``request_usage`` field.
387+ """
388+
389+ def test_target_request (
390+ self ,
391+ vuforia_database_keys : VuforiaDatabaseKeys ,
392+ ) -> None :
393+ """
394+ The ``request_usage`` count increases with each request to the target
395+ API.
396+ """
397+ response = database_summary (
398+ vuforia_database_keys = vuforia_database_keys ,
399+ )
400+
401+ original_request_usage = response .json ()['request_usage' ]
402+
403+ response = database_summary (
404+ vuforia_database_keys = vuforia_database_keys ,
405+ )
406+
407+ new_request_usage = response .json ()['request_usage' ]
408+ assert new_request_usage == original_request_usage + 1
409+
410+ def test_bad_target_request (
411+ self ,
412+ vuforia_database_keys : VuforiaDatabaseKeys ,
413+ ) -> None :
414+ """
415+ The ``request_usage`` count increases with each request to the target
416+ API, even if it is a bad request.
417+ """
418+ response = database_summary (
419+ vuforia_database_keys = vuforia_database_keys ,
420+ )
421+
422+ original_request_usage = response .json ()['request_usage' ]
423+
424+ response = add_target_to_vws (
425+ vuforia_database_keys = vuforia_database_keys ,
426+ # Missing data.
427+ data = {},
428+ )
429+
430+ assert response .status_code == codes .BAD_REQUEST
431+
432+ response = database_summary (
433+ vuforia_database_keys = vuforia_database_keys ,
434+ )
435+ new_request_usage = response .json ()['request_usage' ]
436+ assert new_request_usage == original_request_usage + 2
437+
438+ def test_query_request (
439+ self ,
440+ vuforia_database_keys : VuforiaDatabaseKeys ,
441+ high_quality_image : io .BytesIO ,
442+ ) -> None :
443+ """
444+ The ``request_usage`` count does not increase with each query.
445+ """
446+ response = database_summary (
447+ vuforia_database_keys = vuforia_database_keys ,
448+ )
449+
450+ original_request_usage = response .json ()['request_usage' ]
451+
452+ image_content = high_quality_image .getvalue ()
453+ body = {'image' : ('image.jpeg' , image_content , 'image/jpeg' )}
454+ query_resp = query (
455+ vuforia_database_keys = vuforia_database_keys ,
456+ body = body ,
457+ )
458+
459+ assert query_resp .status_code == codes .OK
460+
461+ response = database_summary (
462+ vuforia_database_keys = vuforia_database_keys ,
463+ )
464+ new_request_usage = response .json ()['request_usage' ]
465+ # The request usage goes up for the database summary request, not the
466+ # query.
467+ assert new_request_usage == original_request_usage + 1
468+
469+
382470@pytest .mark .usefixtures ('verify_mock_vuforia_inactive' )
383471class TestInactiveProject :
384472 """
0 commit comments