1414
1515import json
1616import time
17- from newrelic . api . transaction import current_transaction
17+
1818import grpc
19+ import sample_application_pb2_grpc
1920
20- from sample_application_pb2 import Message
21- from sample_application_pb2_grpc import (
22- SampleApplicationServicer as _SampleApplicationServicer )
21+ from newrelic .api .transaction import current_transaction
22+
23+ # This import format is to resolve a bug within protobuf 4
24+ # Issues for reference:
25+ # https://github.com/protocolbuffers/protobuf/issues/10075
26+ # https://github.com/protocolbuffers/protobuf/issues/10151
27+ # Within sample_application_pb2.py, the protobuf import can only
28+ # be done once before the DESCRIPTOR value is set to None
29+ # (in subsequent imports) instead of overriding/ignoring the imports.
30+ # This ensures that the imports happen once.
31+ Message = sample_application_pb2_grpc .sample__application__pb2 .Message
32+ add_SampleApplicationServicer_to_server = sample_application_pb2_grpc .add_SampleApplicationServicer_to_server
33+ SampleApplicationStub = sample_application_pb2_grpc .SampleApplicationStub
2334
2435
2536class Status (object ):
2637 code = grpc .StatusCode .ABORTED
27- details = ' abort_with_status'
38+ details = " abort_with_status"
2839 trailing_metadata = {}
2940
3041
31- class SampleApplicationServicer (_SampleApplicationServicer ):
32-
42+ class SampleApplicationServicer (sample_application_pb2_grpc .SampleApplicationServicer ):
3343 def DoUnaryUnary (self , request , context ):
34- context .set_trailing_metadata ([(' content-type' , ' text/plain' )])
44+ context .set_trailing_metadata ([(" content-type" , " text/plain" )])
3545 if request .timesout :
3646 while context .is_active ():
3747 time .sleep (0.1 )
38- return Message (text = ' unary_unary: %s' % request .text )
48+ return Message (text = " unary_unary: %s" % request .text )
3949
4050 def DoUnaryStream (self , request , context ):
41- context .set_trailing_metadata ([(' content-type' , ' text/plain' )])
51+ context .set_trailing_metadata ([(" content-type" , " text/plain" )])
4252 if request .timesout :
4353 while context .is_active ():
4454 time .sleep (0.1 )
4555 for i in range (request .count ):
46- yield Message (text = ' unary_stream: %s' % request .text )
56+ yield Message (text = " unary_stream: %s" % request .text )
4757
4858 def DoStreamUnary (self , request_iter , context ):
49- context .set_trailing_metadata ([(' content-type' , ' text/plain' )])
59+ context .set_trailing_metadata ([(" content-type" , " text/plain" )])
5060 for request in request_iter :
5161 if request .timesout :
5262 while context .is_active ():
5363 time .sleep (0.1 )
54- return Message (text = ' stream_unary: %s' % request .text )
64+ return Message (text = " stream_unary: %s" % request .text )
5565
5666 def DoStreamStream (self , request_iter , context ):
57- context .set_trailing_metadata ([(' content-type' , ' text/plain' )])
67+ context .set_trailing_metadata ([(" content-type" , " text/plain" )])
5868 for request in request_iter :
5969 if request .timesout :
6070 while context .is_active ():
6171 time .sleep (0.1 )
62- yield Message (text = ' stream_stream: %s' % request .text )
72+ yield Message (text = " stream_stream: %s" % request .text )
6373
6474 def DoUnaryUnaryRaises (self , request , context ):
65- raise AssertionError (' unary_unary: %s' % request .text )
75+ raise AssertionError (" unary_unary: %s" % request .text )
6676
6777 def DoUnaryStreamRaises (self , request , context ):
68- raise AssertionError (' unary_stream: %s' % request .text )
78+ raise AssertionError (" unary_stream: %s" % request .text )
6979
7080 def DoStreamUnaryRaises (self , request_iter , context ):
7181 for request in request_iter :
72- raise AssertionError (' stream_unary: %s' % request .text )
82+ raise AssertionError (" stream_unary: %s" % request .text )
7383
7484 def DoStreamStreamRaises (self , request_iter , context ):
7585 for request in request_iter :
76- raise AssertionError (' stream_stream: %s' % request .text )
86+ raise AssertionError (" stream_stream: %s" % request .text )
7787
7888 def NoTxnUnaryUnaryRaises (self , request , context ):
7989 current_transaction ().ignore_transaction = True
80- raise AssertionError (' unary_unary: %s' % request .text )
90+ raise AssertionError (" unary_unary: %s" % request .text )
8191
8292 def NoTxnUnaryStreamRaises (self , request , context ):
8393 current_transaction ().ignore_transaction = True
84- raise AssertionError (' unary_stream: %s' % request .text )
94+ raise AssertionError (" unary_stream: %s" % request .text )
8595
8696 def NoTxnStreamUnaryRaises (self , request_iter , context ):
8797 current_transaction ().ignore_transaction = True
8898 for request in request_iter :
89- raise AssertionError (' stream_unary: %s' % request .text )
99+ raise AssertionError (" stream_unary: %s" % request .text )
90100
91101 def NoTxnStreamStreamRaises (self , request_iter , context ):
92102 current_transaction ().ignore_transaction = True
93103 for request in request_iter :
94- raise AssertionError (' stream_stream: %s' % request .text )
104+ raise AssertionError (" stream_stream: %s" % request .text )
95105
96106 def NoTxnUnaryUnary (self , request , context ):
97107 current_transaction ().ignore_transaction = True
@@ -110,16 +120,16 @@ def NoTxnStreamStream(self, request_iter, context):
110120 return self .DoStreamStream (request_iter , context )
111121
112122 def DoUnaryUnaryAbort (self , request , context ):
113- context .abort (grpc .StatusCode .ABORTED , ' aborting' )
123+ context .abort (grpc .StatusCode .ABORTED , " aborting" )
114124
115125 def DoUnaryStreamAbort (self , request , context ):
116- context .abort (grpc .StatusCode .ABORTED , ' aborting' )
126+ context .abort (grpc .StatusCode .ABORTED , " aborting" )
117127
118128 def DoStreamUnaryAbort (self , request_iter , context ):
119- context .abort (grpc .StatusCode .ABORTED , ' aborting' )
129+ context .abort (grpc .StatusCode .ABORTED , " aborting" )
120130
121131 def DoStreamStreamAbort (self , request_iter , context ):
122- context .abort (grpc .StatusCode .ABORTED , ' aborting' )
132+ context .abort (grpc .StatusCode .ABORTED , " aborting" )
123133
124134 def DoUnaryUnaryAbortWithStatus (self , request , context ):
125135 context .abort_with_status (Status )
0 commit comments