25
25
26
26
27
27
BASE_URL = 'https://firebaseml.googleapis.com/v1beta2/'
28
+ HEADER_CLIENT_KEY = 'X-FIREBASE-CLIENT'
29
+ HEADER_CLIENT_VALUE = 'fire-admin-python/3.2.1'
28
30
PROJECT_ID = 'my-project-1'
29
31
30
32
PAGE_TOKEN = 'pageToken'
@@ -536,6 +538,7 @@ def test_wait_for_unlocked(self):
536
538
assert len (recorder ) == 1
537
539
assert recorder [0 ].method == 'GET'
538
540
assert recorder [0 ].url == TestModel ._op_url (PROJECT_ID )
541
+ assert recorder [0 ].headers [HEADER_CLIENT_KEY ] == HEADER_CLIENT_VALUE
539
542
540
543
def test_wait_for_unlocked_timeout (self ):
541
544
recorder = instrument_ml_service (
@@ -589,8 +592,10 @@ def test_returns_locked(self):
589
592
assert len (recorder ) == 2
590
593
assert recorder [0 ].method == 'POST'
591
594
assert recorder [0 ].url == TestCreateModel ._url (PROJECT_ID )
595
+ assert recorder [0 ].headers [HEADER_CLIENT_KEY ] == HEADER_CLIENT_VALUE
592
596
assert recorder [1 ].method == 'GET'
593
597
assert recorder [1 ].url == TestCreateModel ._get_url (PROJECT_ID , MODEL_ID_1 )
598
+ assert recorder [1 ].headers [HEADER_CLIENT_KEY ] == HEADER_CLIENT_VALUE
594
599
595
600
def test_operation_error (self ):
596
601
instrument_ml_service (status = 200 , payload = OPERATION_ERROR_RESPONSE )
@@ -681,8 +686,10 @@ def test_returns_locked(self):
681
686
assert len (recorder ) == 2
682
687
assert recorder [0 ].method == 'PATCH'
683
688
assert recorder [0 ].url == TestUpdateModel ._url (PROJECT_ID , MODEL_ID_1 )
689
+ assert recorder [0 ].headers [HEADER_CLIENT_KEY ] == HEADER_CLIENT_VALUE
684
690
assert recorder [1 ].method == 'GET'
685
691
assert recorder [1 ].url == TestUpdateModel ._url (PROJECT_ID , MODEL_ID_1 )
692
+ assert recorder [1 ].headers [HEADER_CLIENT_KEY ] == HEADER_CLIENT_VALUE
686
693
687
694
def test_operation_error (self ):
688
695
instrument_ml_service (status = 200 , payload = OPERATION_ERROR_RESPONSE )
@@ -778,6 +785,7 @@ def test_immediate_done(self, publish_function, published):
778
785
assert len (recorder ) == 1
779
786
assert recorder [0 ].method == 'PATCH'
780
787
assert recorder [0 ].url == TestPublishUnpublish ._update_url (PROJECT_ID , MODEL_ID_1 )
788
+ assert recorder [0 ].headers [HEADER_CLIENT_KEY ] == HEADER_CLIENT_VALUE
781
789
body = json .loads (recorder [0 ].body .decode ())
782
790
assert body .get ('state' , {}).get ('published' , None ) is published
783
791
@@ -793,8 +801,10 @@ def test_returns_locked(self, publish_function):
793
801
assert len (recorder ) == 2
794
802
assert recorder [0 ].method == 'PATCH'
795
803
assert recorder [0 ].url == TestPublishUnpublish ._update_url (PROJECT_ID , MODEL_ID_1 )
804
+ assert recorder [0 ].headers [HEADER_CLIENT_KEY ] == HEADER_CLIENT_VALUE
796
805
assert recorder [1 ].method == 'GET'
797
806
assert recorder [1 ].url == TestPublishUnpublish ._get_url (PROJECT_ID , MODEL_ID_1 )
807
+ assert recorder [1 ].headers [HEADER_CLIENT_KEY ] == HEADER_CLIENT_VALUE
798
808
799
809
@pytest .mark .parametrize ('publish_function' , PUBLISH_UNPUBLISH_FUNCS )
800
810
def test_operation_error (self , publish_function ):
@@ -847,6 +857,7 @@ def test_get_model(self):
847
857
assert len (recorder ) == 1
848
858
assert recorder [0 ].method == 'GET'
849
859
assert recorder [0 ].url == TestGetModel ._url (PROJECT_ID , MODEL_ID_1 )
860
+ assert recorder [0 ].headers [HEADER_CLIENT_KEY ] == HEADER_CLIENT_VALUE
850
861
assert model == MODEL_1
851
862
assert model .model_id == MODEL_ID_1
852
863
assert model .display_name == DISPLAY_NAME_1
@@ -870,6 +881,7 @@ def test_get_model_error(self):
870
881
assert len (recorder ) == 1
871
882
assert recorder [0 ].method == 'GET'
872
883
assert recorder [0 ].url == TestGetModel ._url (PROJECT_ID , MODEL_ID_1 )
884
+ assert recorder [0 ].headers [HEADER_CLIENT_KEY ] == HEADER_CLIENT_VALUE
873
885
874
886
def test_no_project_id (self ):
875
887
def evaluate ():
@@ -900,6 +912,7 @@ def test_delete_model(self):
900
912
assert len (recorder ) == 1
901
913
assert recorder [0 ].method == 'DELETE'
902
914
assert recorder [0 ].url == TestDeleteModel ._url (PROJECT_ID , MODEL_ID_1 )
915
+ assert recorder [0 ].headers [HEADER_CLIENT_KEY ] == HEADER_CLIENT_VALUE
903
916
904
917
@pytest .mark .parametrize ('model_id, exc_type' , INVALID_MODEL_ID_ARGS )
905
918
def test_delete_model_validation_errors (self , model_id , exc_type ):
@@ -920,6 +933,7 @@ def test_delete_model_error(self):
920
933
assert len (recorder ) == 1
921
934
assert recorder [0 ].method == 'DELETE'
922
935
assert recorder [0 ].url == self ._url (PROJECT_ID , MODEL_ID_1 )
936
+ assert recorder [0 ].headers [HEADER_CLIENT_KEY ] == HEADER_CLIENT_VALUE
923
937
924
938
def test_no_project_id (self ):
925
939
def evaluate ():
@@ -957,6 +971,7 @@ def test_list_models_no_args(self):
957
971
assert len (recorder ) == 1
958
972
assert recorder [0 ].method == 'GET'
959
973
assert recorder [0 ].url == TestListModels ._url (PROJECT_ID )
974
+ assert recorder [0 ].headers [HEADER_CLIENT_KEY ] == HEADER_CLIENT_VALUE
960
975
TestListModels ._check_page (models_page , 2 )
961
976
assert models_page .has_next_page
962
977
assert models_page .next_page_token == NEXT_PAGE_TOKEN
@@ -975,6 +990,7 @@ def test_list_models_with_all_args(self):
975
990
TestListModels ._url (PROJECT_ID ) +
976
991
'?filter=display_name%3DdisplayName3&page_size=10&page_token={0}'
977
992
.format (PAGE_TOKEN ))
993
+ assert recorder [0 ].headers [HEADER_CLIENT_KEY ] == HEADER_CLIENT_VALUE
978
994
assert isinstance (models_page , ml .ListModelsPage )
979
995
assert len (models_page .models ) == 1
980
996
assert models_page .models [0 ] == MODEL_3
@@ -1020,6 +1036,7 @@ def test_list_models_error(self):
1020
1036
assert len (recorder ) == 1
1021
1037
assert recorder [0 ].method == 'GET'
1022
1038
assert recorder [0 ].url == TestListModels ._url (PROJECT_ID )
1039
+ assert recorder [0 ].headers [HEADER_CLIENT_KEY ] == HEADER_CLIENT_VALUE
1023
1040
1024
1041
def test_no_project_id (self ):
1025
1042
def evaluate ():
0 commit comments