def test_roundtrip_window(self): mywindow = (0, 0, 3, 1, [(2, 0, 3)], b'foo') self.assertEqual([mywindow], list(unpack_svndiff0(pack_svndiff0([mywindow]))))
def feed_editor(conn, editor): tokens = {} diff = {} txdelta_handler = {} # Process commands while True: command, args = conn.recv_msg() if command == "target-rev": editor.set_target_revision(args[0]) elif command == "open-root": if len(args[0]) == 0: token = editor.open_root() else: token = editor.open_root(args[0][0]) tokens[args[1]] = token elif command == "delete-entry": tokens[args[2]].delete_entry(args[0], args[1]) elif command == "add-dir": if len(args[3]) == 0: token = tokens[args[1]].add_directory(args[0]) else: token = tokens[args[1]].add_directory(args[0], args[3][0], args[4][0]) tokens[args[2]] = token elif command == "open-dir": tokens[args[2]] = tokens[args[1]].open_directory(args[0], args[3]) elif command == "change-dir-prop": if len(args[2]) == 0: tokens[args[0]].change_prop(args[1], None) else: tokens[args[0]].change_prop(args[1], args[2][0]) elif command == "close-dir": tokens[args[0]].close() elif command == "absent-dir": tokens[args[1]].absent(args[0]) elif command == "add-file": if len(args[3]) == 0: token = tokens[args[1]].add_file(args[0]) else: token = tokens[args[1]].add_file(args[0], args[3][0], args[4][0]) tokens[args[2]] = token elif command == "open-file": tokens[args[2]] = tokens[args[1]].open_file(args[0], args[3]) elif command == "apply-textdelta": if len(args[1]) == 0: txdelta_handler[args[0]] = tokens[args[0]].apply_textdelta(None) else: txdelta_handler[args[0]] = tokens[args[0]].apply_textdelta(args[1][0]) diff[args[0]] = "" elif command == "textdelta-chunk": diff[args[0]] += args[1] elif command == "textdelta-end": for w in unpack_svndiff0(diff[args[0]]): txdelta_handler[args[0]](w) txdelta_handler[args[0]](None) elif command == "change-file-prop": if len(args[2]) == 0: tokens[args[0]].change_prop(args[1], None) else: tokens[args[0]].change_prop(args[1], args[2][0]) elif command == "close-file": if len(args[1]) == 0: tokens[args[0]].close() else: tokens[args[0]].close(args[1][0]) elif command == "close-edit": editor.close() break elif command == "abort-edit": editor.abort() break conn.send_success() conn._unpack()
def test_roundtrip_window(self): mywindow = (0, 0, 3, 1, [(2, 0, 3)], 'foo') self.assertEqual([mywindow], list(unpack_svndiff0(pack_svndiff0([mywindow]))))