def test_file_split_by_data_blocks(self, mocker): block_1 = [ "data_block_header", "_data_name_A data_value_A", "_data_name_B data_value_B" ] block_2 = [ "DATA_block_2", "loop_", "_loop_data_name_A", "loop_data_value_A1", "loop_data_value_A2" ] block_3 = [ "dATa_block_the_third", "_data_name_C data_value_C" ] contents = block_1 + block_2 + block_3 mocker.patch("builtins.open", mock.mock_open(read_data=str("\n".join(contents)))) # generate expected output - each data block stored in DataBlock object expected = [] for block in [block_1, block_2, block_3]: header, *raw_data = block expected.append(DataBlock(header, "\n".join(raw_data))) p = CIFParser("/some_directory/some_file.cif") p._extract_data_blocks() assert p.data_blocks == expected