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_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