def test_change_one_of_multiple_values(): new_contents = evolve_cell_source(THREE_CELL_CONTENTS, 0, ["x = 4; x"]) opcodes = opcode_merge_cell_contents(THREE_CELL_CONTENTS, new_contents) assert len(opcodes) == 2 assert opcodes[0].op_code == OpCodes.REPLACE assert opcodes[1].op_code == OpCodes.EQUAL
def test_insert_a_new_cell_and_update_another(): modified_source = ["y = 3; y"] inserted_cell = JupyterCell(cell_type="code", index=2, source=["print('hello world')"], output=None) new_contents = evolve_cell_source(_insert_notebook_cell(THREE_CELL_CONTENTS, inserted_cell), 1, modified_source) opcodes = opcode_merge_cell_contents(THREE_CELL_CONTENTS, new_contents) assert [x.op_code for x in opcodes] == [ OpCodes.EQUAL, OpCodes.REPLACE, OpCodes.EQUAL, ] assert opcodes[1].current == (1, 2) assert opcodes[1].updated == (1, 3)
def test_change_one_value(): new_contents = evolve_cell_source(SIMPLE_CONTENTS, 0, ["x = 2; x"]) opcodes = opcode_merge_cell_contents(SIMPLE_CONTENTS, new_contents) assert len(opcodes) == 1 assert opcodes[0].op_code == OpCodes.REPLACE