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