def test_paranoid_thrift_append_framing(): test_string_1 = StringType("hello world") test_string_2 = StringType("ahoy ahoy, bonjour") with EphemeralFile('w') as fp: fn = fp.name ThriftRecordWriter.append(fn, test_string_1) ThriftRecordWriter.append(fn, test_string_2) with open(fn) as fpr: rr = ThriftRecordReader(fpr, StringType) assert rr.read() == test_string_1 assert rr.read() == test_string_2
def test_thriftrecordreader_iteration(): test_string_1 = StringType("hello world") test_string_2 = StringType("ahoy ahoy, bonjour") with EphemeralFile('w') as fp: fn = fp.name rw = ThriftRecordWriter(fp) rw.write(test_string_1) rw.write(test_string_2) rw.close() with open(fn) as fpr: rr = ThriftRecordReader(fpr, StringType) records = [] for record in rr: records.append(record) assert records == [test_string_1, test_string_2]
def test_thriftrecordwriter_framing(): test_string_1 = StringType("hello world") test_string_2 = StringType("ahoy ahoy, bonjour") with EphemeralFile('w') as fp: fn = fp.name rw = ThriftRecordWriter(fp) rw.write(test_string_1) rw.close() with open(fn, 'a') as fpa: rw = ThriftRecordWriter(fpa) rw.write(test_string_2) with open(fn) as fpr: rr = ThriftRecordReader(fpr, StringType) assert rr.read() == test_string_1 assert rr.read() == test_string_2
def test_basic_thriftrecordwriter_write(): test_string = StringType("hello world") with EphemeralFile('w') as fp: fn = fp.name rw = ThriftRecordWriter(fp) rw.write(test_string) rw.close() with open(fn) as fpr: rr = ThriftRecordReader(fpr, StringType) assert rr.read() == test_string
def test_thrift_recordwriter_type_mismatch(): test_string = StringType("hello world") with EphemeralFile('w') as fp: fn = fp.name rw = ThriftRecordWriter(fp) rw.write(test_string) rw.close() with open(fn) as fpr: rr = ThriftRecordReader(fpr, IntType) # This is a peculiar behavior of Thrift in that it just returns # ThriftType() with no serialization applied assert rr.read() == IntType()
def test_thrift_invalid_codec_with_object_instead_of_class(): with EphemeralFile('w') as fp: with pytest.raises(ThriftRecordIO.InvalidThriftException): ThriftRecordReader(fp, StringType())