@@ -381,17 +381,18 @@ def test_quotas(self, vuforia_database_keys: VuforiaDatabaseKeys) -> None:
381381
382382
383383@pytest .mark .usefixtures ('verify_mock_vuforia' )
384- class TestUsageMetrics :
384+ class TestRequestUsage :
385385 """
386- Tests for usage metrics .
386+ Tests for the ``request_usage`` field .
387387 """
388388
389- def test_request_usage (
389+ def test_target_request (
390390 self ,
391391 vuforia_database_keys : VuforiaDatabaseKeys ,
392392 ) -> None :
393393 """
394- The ``request_usage`` count increases with each request.
394+ The ``request_usage`` count increases with each request to the target
395+ API.
395396 """
396397 response = database_summary (
397398 vuforia_database_keys = vuforia_database_keys ,
@@ -406,17 +407,65 @@ def test_request_usage(
406407 new_request_usage = response .json ()['request_usage' ]
407408 assert new_request_usage == original_request_usage + 1
408409
409- query (
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 (
410419 vuforia_database_keys = vuforia_database_keys ,
411- body = {},
412420 )
413421
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+
414432 response = database_summary (
415433 vuforia_database_keys = vuforia_database_keys ,
416434 )
417435 new_request_usage = response .json ()['request_usage' ]
418436 assert new_request_usage == original_request_usage + 2
419437
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+
420469
421470@pytest .mark .usefixtures ('verify_mock_vuforia_inactive' )
422471class TestInactiveProject :
0 commit comments