Exemplo n.º 1
0
 def test_implicit_payload_builder_with_bytes(self):
   values = PayloadBase.bytes_values
   builder = ImplicitSchemaPayloadBuilder(values)
   result = builder.build()
   if sys.version_info[0] < 3:
     # in python 2.x bytes coder will be inferred
     args = {
         'integer_example': ConfigValue(
             coder_urn=['beam:coder:varint:v1'],
             payload=VarIntCoder()
             .get_impl().encode_nested(values['integer_example'])),
         'string_example': ConfigValue(
             coder_urn=['beam:coder:bytes:v1'],
             payload=StrUtf8Coder()
             .get_impl().encode_nested(values['string_example'])),
         'list_of_strings': ConfigValue(
             coder_urn=['beam:coder:iterable:v1',
                        'beam:coder:bytes:v1'],
             payload=IterableCoder(StrUtf8Coder())
             .get_impl().encode_nested(values['list_of_strings'])),
         'optional_kv': ConfigValue(
             coder_urn=['beam:coder:kv:v1',
                        'beam:coder:bytes:v1',
                        'beam:coder:double:v1'],
             payload=TupleCoder([StrUtf8Coder(), FloatCoder()])
             .get_impl().encode_nested(values['optional_kv'])),
     }
     expected = get_payload(args)
     self.assertEqual(result, expected)
   else:
     expected = get_payload(PayloadBase.args)
     self.assertEqual(result, expected)
Exemplo n.º 2
0
    def test_implicit_payload_builder(self):
        builder = ImplicitSchemaPayloadBuilder(PayloadBase.values)
        result = builder.build()

        decoded = RowCoder(result.schema).decode(result.payload)
        for key, value in PayloadBase.values.items():
            # Note the default value in the getattr call.
            # ImplicitSchemaPayloadBuilder omits fields with valu=None since their
            # type cannot be inferred.
            self.assertEqual(getattr(decoded, key, None), value)
Exemplo n.º 3
0
    def test_implicit_payload_builder_with_bytes(self):
        values = PayloadBase.bytes_values
        builder = ImplicitSchemaPayloadBuilder(values)
        result = builder.build()

        decoded = RowCoder(result.schema).decode(result.payload)
        for key, value in PayloadBase.values.items():
            # Note the default value in the getattr call.
            # ImplicitSchemaPayloadBuilder omits fields with valu=None since their
            # type cannot be inferred.
            self.assertEqual(getattr(decoded, key, None), value)

        # Verify we have not modified a cached type (BEAM-10766)
        # TODO(BEAM-7372): Remove when bytes coercion code is removed.
        self.assertEqual(typehints.List[bytes],
                         convert_to_beam_type(typing.List[bytes]))
Exemplo n.º 4
0
    def test_implicit_payload_builder_with_bytes(self):
        values = PayloadBase.bytes_values
        builder = ImplicitSchemaPayloadBuilder(values)
        result = builder.build()

        decoded = RowCoder(result.schema).decode(result.payload)
        if sys.version_info[0] < 3:
            for key, value in PayloadBase.bytes_values.items():
                # Note the default value in the getattr call.
                # ImplicitSchemaPayloadBuilder omits fields with valu=None since their
                # type cannot be inferred.
                self.assertEqual(getattr(decoded, key, None), value)
        else:
            for key, value in PayloadBase.values.items():
                # Note the default value in the getattr call.
                # ImplicitSchemaPayloadBuilder omits fields with valu=None since their
                # type cannot be inferred.
                self.assertEqual(getattr(decoded, key, None), value)
Exemplo n.º 5
0
 def test_implicit_payload_builder(self):
     builder = ImplicitSchemaPayloadBuilder(PayloadBase.values)
     result = builder.build()
     expected = get_payload(PayloadBase.args)
     self.assertEqual(result, expected)