@@ -118,10 +118,60 @@ def test_emit(self):
118118 gae_resource ,
119119 gae_labels ,
120120 expected_trace_id ,
121+ None ,
121122 expected_http_request ,
122123 ),
123124 )
124125
126+ def test_emit_manual_field_override (self ):
127+ from google .cloud .logging_v2 .resource import Resource
128+
129+ inferred_http_request = {"request_url" : "test" }
130+ inferred_trace_id = "trace-test"
131+ get_request_patch = mock .patch (
132+ "google.cloud.logging_v2.handlers.app_engine.get_request_data" ,
133+ return_value = (inferred_http_request , inferred_trace_id ),
134+ )
135+ with get_request_patch :
136+ # library integrations mocked to return test data
137+ client = mock .Mock (project = self .PROJECT , spec = ["project" ])
138+ handler = self ._make_one (client , transport = _Transport )
139+ gae_labels = handler .get_gae_labels ()
140+ logname = "app"
141+ message = "hello world"
142+ record = logging .LogRecord (
143+ logname , logging , None , None , message , None , None
144+ )
145+ handler .project_id = self .PROJECT
146+ # set attributes manually
147+ expected_trace = "123"
148+ setattr (record , "trace" , expected_trace )
149+ expected_span = "456"
150+ setattr (record , "span_id" , expected_span )
151+ expected_http = {"reuqest_url" : "manual" }
152+ setattr (record , "http_request" , expected_http )
153+ expected_resource = Resource (type = "test" , labels = {})
154+ setattr (record , "resource" , expected_resource )
155+ additional_labels = {"test-label" : "manual" }
156+ expected_labels = dict (gae_labels )
157+ expected_labels .update (additional_labels )
158+ setattr (record , "labels" , additional_labels )
159+ handler .emit (record )
160+ self .assertIs (handler .transport .client , client )
161+ self .assertEqual (handler .transport .name , logname )
162+ self .assertEqual (
163+ handler .transport .send_called_with ,
164+ (
165+ record ,
166+ message ,
167+ expected_resource ,
168+ expected_labels ,
169+ expected_trace ,
170+ expected_span ,
171+ expected_http ,
172+ ),
173+ )
174+
125175 def _get_gae_labels_helper (self , trace_id ):
126176 get_request_patch = mock .patch (
127177 "google.cloud.logging_v2.handlers.app_engine.get_request_data" ,
@@ -156,5 +206,13 @@ def __init__(self, client, name):
156206 self .client = client
157207 self .name = name
158208
159- def send (self , record , message , resource , labels , trace , http_request ):
160- self .send_called_with = (record , message , resource , labels , trace , http_request )
209+ def send (self , record , message , resource , labels , trace , span_id , http_request ):
210+ self .send_called_with = (
211+ record ,
212+ message ,
213+ resource ,
214+ labels ,
215+ trace ,
216+ span_id ,
217+ http_request ,
218+ )
0 commit comments