async def test_send(key, topic_name, expected_topic, key_serializer, app): topic = app.topic(topic_name) event = Value(amount=0.0) await app.send(topic, key, event, key_serializer=key_serializer) # do it twice so producer_started is also True await app.send(topic, key, event, key_serializer=key_serializer) expected_sender = app.producer.send if key is not None: if isinstance(key, str): # Default serializer is raw, and str should be serialized # (note that a bytes key will be left alone. key_serializer = 'raw' if isinstance(key, ModelT): expected_key = key.dumps(serializer='raw') elif key_serializer: expected_key = codecs.dumps(key_serializer, key) else: expected_key = want_bytes(key) else: expected_key = None expected_sender.assert_called_with( expected_topic, expected_key, event.dumps(), partition=None, timestamp=None, headers={}, )
def test_missing_yaml_library() -> None: msg = "Missing yaml: pip install PyYAML" with patch("faust.serializers.codecs._yaml", None): with pytest.raises(ImproperlyConfigured): loads("yaml", dumps("yaml", DATA)) pytest.fail(msg) with pytest.raises(ImproperlyConfigured): get_codec("yaml").loads(b"") pytest.fail(msg)
def test_missing_yaml_library() -> None: msg = 'Missing yaml: pip install PyYAML' with patch('faust.serializers.codecs._yaml', None): with pytest.raises(ImproperlyConfigured): loads('yaml', dumps('yaml', DATA)) pytest.fail(msg) with pytest.raises(ImproperlyConfigured): get_codec('yaml').loads(b'') pytest.fail(msg)
def dumps(self, *, serializer: CodecArg = None) -> bytes: """Serialize object to the target serialization format.""" return dumps(serializer or self._options.serializer, self.to_representation())
def test_binary(input: bytes) -> None: assert loads('binary', dumps('binary', input)) == input
def test_json_subset(codec: str) -> None: assert loads(codec, dumps(codec, DATA)) == DATA
def test_binary(input: bytes) -> None: assert loads("binary", dumps("binary", input)) == input