⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 diff_tests.py

📁 subversion-1.4.3-1.tar.gz 配置svn的源码
💻 PY
📖 第 1 页 / 共 5 页
字号:
  was_cwd = os.getcwd()  os.chdir(wc_dir)  try:    diff_output, err_output = svntest.main.run_svn(None, 'diff', '-r',                                                   `rev2` + ':' + `rev1`)    if check_fn(diff_output):      raise svntest.Failure  finally:    os.chdir(was_cwd)####################################################################### Tests## test 1def diff_update_a_file(sbox):  "update a file"  sbox.build()  change_diff_commit_diff(sbox.wc_dir, 1,                          update_a_file,                          check_update_a_file)# test 2def diff_add_a_file(sbox):  "add a file"  sbox.build()  change_diff_commit_diff(sbox.wc_dir, 1,                          add_a_file,                          check_add_a_file)#test 3def diff_add_a_file_in_a_subdir(sbox):  "add a file in an added directory"  sbox.build()  change_diff_commit_diff(sbox.wc_dir, 1,                          add_a_file_in_a_subdir,                          check_add_a_file_in_a_subdir)# test 4def diff_replace_a_file(sbox):  "replace a file with a file"  sbox.build()  change_diff_commit_diff(sbox.wc_dir, 1,                          replace_a_file,                          check_replace_a_file)# test 5def diff_multiple_reverse(sbox):  "multiple revisions diff'd forwards and backwards"  sbox.build()  wc_dir = sbox.wc_dir  # rev 2  change_diff_commit_diff(wc_dir, 1,                          add_a_file,                          check_add_a_file)  #rev 3  change_diff_commit_diff(wc_dir, 2,                          add_a_file_in_a_subdir,                          check_add_a_file_in_a_subdir)  #rev 4  change_diff_commit_diff(wc_dir, 3,                          update_a_file,                          check_update_a_file)  # check diffs both ways  update_diff(wc_dir, 4, 1, check_update_a_file)  just_diff(wc_dir, 1, check_add_a_file_in_a_subdir)  just_diff(wc_dir, 1, check_add_a_file)  update_diff(wc_dir, 1, 4, check_update_a_file)  just_diff(wc_dir, 4, check_add_a_file_in_a_subdir_reverse)  just_diff(wc_dir, 4, check_add_a_file_reverse)  # check pure repository diffs  repo_diff(wc_dir, 4, 1, check_update_a_file)  repo_diff(wc_dir, 4, 1, check_add_a_file_in_a_subdir)  repo_diff(wc_dir, 4, 1, check_add_a_file)  repo_diff(wc_dir, 1, 4, check_update_a_file)# ### TODO: directory delete doesn't work yet#  repo_diff(wc_dir, 1, 4, check_add_a_file_in_a_subdir_reverse)  repo_diff(wc_dir, 1, 4, check_add_a_file_reverse)# test 6def diff_non_recursive(sbox):  "non-recursive behaviour"  sbox.build()  wc_dir = sbox.wc_dir  change_diff_commit_diff(wc_dir, 1,                          update_three_files,                          check_update_three_files)  # The changes are in:   ./A/D/gamma  #                       ./A/D/G/tau  #                       ./A/D/H/psi  # When checking D recursively there are three changes. When checking  # D non-recursively there is only one change. When checking G  # recursively, there is only one change even though D is the anchor    # full diff has three changes  diff_output, err_output = svntest.main.run_svn(None, 'diff', '-r', '1',                                                 os.path.join(wc_dir, 'A', 'D'))  if count_diff_output(diff_output) != 3:    raise svntest.Failure  # non-recursive has one change  diff_output, err_output = svntest.main.run_svn(None, 'diff', '-r', '1', '-N',                                                 os.path.join(wc_dir, 'A', 'D'))  if count_diff_output(diff_output) != 1:    raise svntest.Failure  # diffing a directory doesn't pick up other diffs in the anchor  diff_output, err_output = svntest.main.run_svn(None, 'diff', '-r', '1',                                                 os.path.join(wc_dir,                                                              'A', 'D', 'G'))  if count_diff_output(diff_output) != 1:    raise svntest.Failure  # test 7def diff_repo_subset(sbox):  "diff only part of the repository"  sbox.build()  wc_dir = sbox.wc_dir  was_cwd = os.getcwd()  os.chdir(wc_dir)  try:    update_a_file()    add_a_file()    add_a_file_in_a_subdir()  finally:    os.chdir(was_cwd)  if diff_check_update_a_file_repo_subset(wc_dir):    raise svntest.Failure    if diff_check_add_a_file_repo_subset(wc_dir):    raise svntest.Failure    if diff_check_add_a_file_in_a_subdir_repo_subset(wc_dir):    raise svntest.Failure  # test 8def diff_non_version_controlled_file(sbox):  "non version controlled files"  sbox.build()  wc_dir = sbox.wc_dir  svntest.main.file_append(os.path.join(wc_dir, 'A', 'D', 'foo'), "a new file")  diff_output, err_output = svntest.main.run_svn(1, 'diff',                                                  os.path.join(wc_dir,                                                               'A', 'D', 'foo'))  if count_diff_output(diff_output) != 0: raise svntest.Failure  # At one point this would crash, so we would only get a 'Segmentation Fault'   # error message.  The appropriate response is a few lines of errors.  I wish   # there was a way to figure out if svn crashed, but all run_svn gives us is   # the output, so here we are...  for line in err_output:    if re.search("foo' is not under version control$", line):      break  else:    raise svntest.Failure  # test 9def diff_pure_repository_update_a_file(sbox):  "pure repository diff update a file"  sbox.build()  wc_dir = sbox.wc_dir    was_cwd = os.getcwd()  os.chdir(wc_dir)  try:    # rev 2    update_a_file()    svntest.main.run_svn(None, 'ci', '-m', 'log msg')    # rev 3    add_a_file_in_a_subdir()    svntest.main.run_svn(None, 'ci', '-m', 'log msg')    # rev 4    add_a_file()    svntest.main.run_svn(None, 'ci', '-m', 'log msg')    # rev 5    update_added_file()    svntest.main.run_svn(None, 'ci', '-m', 'log msg')    svntest.main.run_svn(None, 'up', '-r', '2')    url = svntest.main.current_repo_url    diff_output, err_output = svntest.main.run_svn(None, 'diff', '-c', '2',                                                   '--username',                                                   svntest.main.wc_author,                                                   '--password',                                                   svntest.main.wc_passwd,                                                   url)    if check_update_a_file(diff_output): raise svntest.Failure    diff_output, err_output = svntest.main.run_svn(None, 'diff', '-r', '1:2',                                                   '--username',                                                   svntest.main.wc_author,                                                   '--password',                                                   svntest.main.wc_passwd)    if check_update_a_file(diff_output): raise svntest.Failure    diff_output, err_output = svntest.main.run_svn(None, 'diff', '-c', '3',                                                   '--username',                                                   svntest.main.wc_author,                                                   '--password',                                                   svntest.main.wc_passwd,                                                   url)    if check_add_a_file_in_a_subdir(diff_output): raise svntest.Failure    diff_output, err_output = svntest.main.run_svn(None, 'diff', '-r', '2:3',                                                   '--username',                                                   svntest.main.wc_author,                                                   '--password',                                                   svntest.main.wc_passwd)    if check_add_a_file_in_a_subdir(diff_output): raise svntest.Failure    diff_output, err_output = svntest.main.run_svn(None, 'diff', '-c', '5',                                                   '--username',                                                   svntest.main.wc_author,                                                   '--password',                                                   svntest.main.wc_passwd,                                                   url)    if check_update_added_file(diff_output): raise svntest.Failure    diff_output, err_output = svntest.main.run_svn(None, 'diff', '-r', '4:5',                                                   '--username',                                                   svntest.main.wc_author,                                                   '--password',                                                   svntest.main.wc_passwd)    if check_update_added_file(diff_output): raise svntest.Failure    diff_output, err_output = svntest.main.run_svn(None, 'diff', '-r', 'head')    if check_add_a_file_in_a_subdir_reverse(diff_output): raise svntest.Failure  finally:    os.chdir(was_cwd)# test 10def diff_only_property_change(sbox):  "diff when property was changed but text was not"  sbox.build()  wc_dir = sbox.wc_dir  expected_output = [    "\n",    "Property changes on: iota\n",    "___________________________________________________________________\n",    "Name: svn:eol-style\n",    "   + native\n",    "\n" ]  expected_reverse_output = list(expected_output)  expected_reverse_output[4] = "   - native\n"  current_dir = os.getcwd()  os.chdir(sbox.wc_dir)  try:    svntest.actions.run_and_verify_svn(None, None, [],                                       'propset',                                       'svn:eol-style', 'native', 'iota')    svntest.actions.run_and_verify_svn(None, None, [],                                       'ci', '-m', 'empty-msg')    svntest.actions.run_and_verify_svn(None, expected_output, [],                                       'diff', '-r', '1:2')    svntest.actions.run_and_verify_svn(None, expected_output, [],                                       'diff', '-c', '2')    svntest.actions.run_and_verify_svn(None, expected_reverse_output, [],                                       'diff', '-r', '2:1')    svntest.actions.run_and_verify_svn(None, expected_reverse_output, [],                                       'diff', '-c', '-2')    svntest.actions.run_and_verify_svn(None, expected_output, [],                                       'diff', '-r', '1')    svntest.actions.run_and_verify_svn(None, expected_output, [],                                       'diff', '-r', 'PREV', 'iota')  finally:    os.chdir(current_dir)#----------------------------------------------------------------------# Regression test for issue #1019: make sure we don't try to display# diffs when the file is marked as a binary type.  This tests all 3# uses of 'svn diff':  wc-wc, wc-repos, repos-repos.def dont_diff_binary_file(sbox):  "don't diff file marked as binary type"  sbox.build()  wc_dir = sbox.wc_dir    # Add a binary file to the project.  fp = open(os.path.join(sys.path[0], "theta.bin"))  theta_contents = fp.read()  # suck up contents of a test .png file  fp.close()  theta_path = os.path.join(wc_dir, 'A', 'theta')  fp = open(theta_path, 'w')  fp.write(theta_contents)    # write png filedata into 'A/theta'  fp.close()    svntest.main.run_svn(None, 'add', theta_path)    # Created expected output tree for 'svn ci'  expected_output = svntest.wc.State(wc_dir, {    'A/theta' : Item(verb='Adding  (bin)'),    })  # Create expected status tree  expected_status = svntest.actions.get_virginal_state(wc_dir, 2)  expected_status.tweak(wc_rev=1)  expected_status.add({    'A/theta' : Item(status='  ', wc_rev=2),    })  # Commit the new binary file, creating revision 2.  svntest.actions.run_and_verify_commit(wc_dir, expected_output,                                        expected_status, None,                                        None, None, None, None, wc_dir)  # Update the whole working copy to HEAD (rev 2)  expected_output = svntest.wc.State(wc_dir, {})  expected_disk = svntest.main.greek_state.copy()  expected_disk.add({    'A/theta' : Item(theta_contents,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -