Эх сурвалжийг харах

Only check metadata that we want: its allowed to have extra elements

Craig Tiller 10 жил өмнө
parent
commit
83ac705fa7

+ 2 - 2
src/python/src/grpc/_links/_transmission_test.py

@@ -98,8 +98,8 @@ class TransmissionTest(test_cases.TransmissionTest, unittest.TestCase):
     # since implementations are allowed to add to what is sent (in any position)
     keys, _ = zip(*original_metadata)
     self.assertSequenceEqual(
-        original_metadata, 
-        (x for x in transmitted_metadata if x[0] in keys))
+        original_metadata,
+        [x for x in transmitted_metadata if x[0] in keys])
 
 
 class RoundTripTest(unittest.TestCase):

+ 14 - 4
src/ruby/spec/generic/rpc_server_spec.rb

@@ -35,6 +35,14 @@ def load_test_certs
   files.map { |f| File.open(File.join(test_root, f)).read }
 end
 
+def check_md(wanted_md, received_md)
+  wanted_md.zip(received_md).each do |w, r|
+    w.each do |key, value|
+      expect(r[key]).to eq(value)
+    end
+  end
+end
+
 # A test message
 class EchoMsg
   def self.marshal(_o)
@@ -376,7 +384,7 @@ describe GRPC::RpcServer do
         stub = EchoStub.new(@host, **client_opts)
         expect(stub.an_rpc(req, k1: 'v1', k2: 'v2')).to be_a(EchoMsg)
         wanted_md = [{ 'k1' => 'v1', 'k2' => 'v2' }]
-        expect(service.received_md).to eq(wanted_md)
+        check_md(wanted_md, service.received_md)
         @srv.stop
         t.join
       end
@@ -391,7 +399,7 @@ describe GRPC::RpcServer do
         deadline = service.delay + 1.0 # wait for long enough
         expect(stub.an_rpc(req, deadline, k1: 'v1', k2: 'v2')).to be_a(EchoMsg)
         wanted_md = [{ 'k1' => 'v1', 'k2' => 'v2' }]
-        expect(service.received_md).to eq(wanted_md)
+        check_md(wanted_md, service.received_md)
         @srv.stop
         t.join
       end
@@ -443,7 +451,7 @@ describe GRPC::RpcServer do
         expect(stub.an_rpc(req, k1: 'v1', k2: 'v2')).to be_a(EchoMsg)
         wanted_md = [{ 'k1' => 'updated-v1', 'k2' => 'v2',
                        'jwt_aud_uri' => "https://#{@host}/EchoService" }]
-        expect(service.received_md).to eq(wanted_md)
+        check_md(wanted_md, service.received_md)
         @srv.stop
         t.join
       end
@@ -535,7 +543,9 @@ describe GRPC::RpcServer do
           'method' => '/EchoService/an_rpc',
           'connect_k1' => 'connect_v1'
         }
-        expect(op.metadata).to eq(wanted_md)
+        wanted_md.each do |key, value|
+          expect(op.metadata[key]).to eq(value)
+        end
         @srv.stop
         t.join
       end