def test_write_metadata_with_properties(self): data_type = TestObject(enum_value=3) # Use an ordered dict for properties so that # the order of properties in metadata is guaranteed properties = OrderedDict() properties["prop1"] = String("foo") properties["prop2"] = Int32(42) channel = TestObject(path="channel_path", has_data=True, data=[1] * 10, data_type=data_type, properties=properties) segment = TdmsSegment([channel]) metadata = segment.metadata() expected_values = [ Uint32(1), # Number of objects String("channel_path"), Uint32(20), # Length of raw data index in bytes Int32(3), # Data type Uint32(1), # Array dimension Uint64(10), # Number of values Uint32(2), # Number of properties String("prop1"), # Property name Int32(0x20), String("foo"), String("prop2"), Int32(3), Int32(42), ] self.assert_sequence_equal(metadata, expected_values)
def test_write_metadata_with_no_data(self): obj = TestObject(path="object_path", has_data=False, properties={}) segment = TdmsSegment([obj]) metadata = segment.metadata() expected_values = [ Uint32(1), # Number of objects String("object_path"), Bytes(b'\xFF\xFF\xFF\xFF'), # Raw data index Uint32(0), # Number of properties ] self.assert_sequence_equal(metadata, expected_values)