import pytest from helpers.cluster import ClickHouseCluster cluster = ClickHouseCluster(__file__) instance = cluster.add_instance('instance', clickhouse_path_dir='clickhouse_path') @pytest.fixture(scope="module") def started_cluster(): try: cluster.start() instance.query('CREATE DATABASE test') yield cluster finally: cluster.shutdown() def create_simple_table(): instance.query("DROP TABLE IF EXISTS test.simple") instance.query(''' CREATE TABLE test.simple (key UInt64, value String) ENGINE = MergeTree ORDER BY tuple(); ''') def test_protobuf_format_input(started_cluster): create_simple_table() instance.http_query( "INSERT INTO test.simple FORMAT Protobuf SETTINGS format_schema='simple:KeyValuePair'", "\x07\x08\x01\x12\x03abc\x07\x08\x02\x12\x03def") assert instance.query("SELECT * from test.simple") == "1\tabc\n2\tdef\n" def test_protobuf_format_output(started_cluster): create_simple_table() instance.query("INSERT INTO test.simple VALUES (1, 'abc'), (2, 'def')"); assert instance.http_query( "SELECT * FROM test.simple FORMAT Protobuf SETTINGS format_schema='simple:KeyValuePair'") == \ "\x07\x08\x01\x12\x03abc\x07\x08\x02\x12\x03def"