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

📄 switch_tests.py

📁 subversion-1.4.3-1.tar.gz 配置svn的源码
💻 PY
📖 第 1 页 / 共 3 页
字号:
#----------------------------------------------------------------------def update_switched_things(sbox):  "update switched wc things to HEAD"  sbox.build()  wc_dir = sbox.wc_dir    # Setup some switched things (don't bother verifying)  do_routine_switching(wc_dir, 0)  # Copy wc_dir to a backup location  wc_backup = sbox.add_wc_path('backup')  svntest.actions.duplicate_dir(wc_dir, wc_backup)    # Commit some stuff (don't bother verifying)  commit_routine_switching(wc_backup, 0)  # Some convenient path variables  iota_path = os.path.join(wc_dir, 'iota')  B_path = os.path.join(wc_dir, 'A', 'B')  # Create expected output tree for an update of wc_backup.  expected_output = svntest.wc.State(wc_dir, {    'iota' : Item(status='U '),    'A/B/pi' : Item(status='U '),    'A/B/Z' : Item(status='A '),    'A/B/Z/zeta' : Item(status='A '),    })  # Create expected disk tree for the update  expected_disk = get_routine_disk_state(wc_dir)  expected_disk.tweak('iota', contents="This is the file 'gamma'.\napple")  expected_disk.tweak('A/B/pi', contents="This is the file 'pi'.\nmelon")  expected_disk.add({    'A/B/Z' : Item(),    'A/B/Z/zeta' : Item("This is the file 'zeta'.\n"),    })  # Create expected status tree for the update.  expected_status = get_routine_status_state(wc_dir)  expected_status.tweak('iota', 'A/B', switched='S')  expected_status.tweak('A/B', 'A/B/pi', 'A/B/rho', 'A/B/tau', 'iota',                        wc_rev=2)  expected_status.add({    'A/B/Z' : Item(status='  ', wc_rev=2),    'A/B/Z/zeta' : Item(status='  ', wc_rev=2),    })  svntest.actions.run_and_verify_update(wc_dir,                                        expected_output,                                        expected_disk,                                        expected_status,                                        None, None, None,                                        None, None, 0,                                        B_path,                                        iota_path)#----------------------------------------------------------------------def rev_update_switched_things(sbox):  "reverse update switched wc things to an older rev"  sbox.build()  wc_dir = sbox.wc_dir    # Setup some switched things (don't bother verifying)  do_routine_switching(wc_dir, 0)  # Commit some stuff (don't bother verifying)  commit_routine_switching(wc_dir, 0)  # Some convenient path variables  iota_path = os.path.join(wc_dir, 'iota')  B_path = os.path.join(wc_dir, 'A', 'B')  # Update to HEAD (tested elsewhere)  svntest.main.run_svn (None, 'up', wc_dir)  # Now, reverse update, back to the pre-commit state.  expected_output = svntest.wc.State(wc_dir, {    'iota' : Item(status='U '),    'A/B/pi' : Item(status='U '),    'A/B/Z' : Item(status='D '),    })  # Create expected disk tree  expected_disk = get_routine_disk_state(wc_dir)  expected_disk.tweak('A/D/gamma', contents="This is the file 'gamma'.\napple")  expected_disk.tweak('A/D/G/pi', contents="This is the file 'pi'.\nmelon")  expected_disk.add({    'A/D/G/Z' : Item(),    'A/D/G/Z/zeta' : Item("This is the file 'zeta'.\n"),    })      # Create expected status tree for the update.  expected_status = get_routine_status_state(wc_dir)  expected_status.tweak(wc_rev=2)  expected_status.tweak('iota', 'A/B', switched='S')  expected_status.tweak('A/B', 'A/B/pi', 'A/B/rho', 'A/B/tau', 'iota',                        wc_rev=1)  expected_status.add({    'A/D/G/Z' : Item(status='  ', wc_rev=2),    'A/D/G/Z/zeta' : Item(status='  ', wc_rev=2),    })  svntest.actions.run_and_verify_update(wc_dir,                                        expected_output,                                        expected_disk,                                        expected_status,                                        None, None, None,                                        None, None, 1,                                        '-r', '1',                                        B_path,                                        iota_path)#----------------------------------------------------------------------def log_switched_file(sbox):  "show logs for a switched file"  sbox.build()  wc_dir = sbox.wc_dir    # Setup some switched things (don't bother verifying)  do_routine_switching(wc_dir, 0)  # edit and commit switched file 'iota'  iota_path = os.path.join(wc_dir, 'iota')  svntest.main.run_svn (None, 'ps', 'x', 'x', iota_path)  svntest.main.run_svn (None, 'ci', '-m',                         'set prop on switched iota',                         iota_path)  # log switched file 'iota'  output, error = svntest.main.run_svn (None, 'log', iota_path)  for line in output:    if line.find("set prop on switched iota") != -1:      break  else:    raise svntest.Failure#----------------------------------------------------------------------def relocate_deleted_missing_copied(sbox):  "relocate with deleted, missing and copied entries"  sbox.build()  wc_dir = sbox.wc_dir  # Delete A/mu to create a deleted entry for mu in A/.svn/entries  mu_path = os.path.join(wc_dir, 'A', 'mu')  svntest.actions.run_and_verify_svn(None, None, [], 'rm', mu_path)  expected_status = svntest.actions.get_virginal_state(wc_dir, 2)  expected_status.tweak(wc_rev=1)  expected_status.remove('A/mu')  expected_output = svntest.wc.State(wc_dir, {    'A/mu' : Item(verb='Deleting'),    })  svntest.actions.run_and_verify_commit (wc_dir,                                         expected_output,                                         expected_status,                                         None, None, None, None, None,                                         wc_dir)  # Remove A/B/F to create a missing entry  svntest.main.safe_rmtree(os.path.join(wc_dir, 'A', 'B', 'F'))  # Copy A/D/H to A/D/H2  H_path = os.path.join(wc_dir, 'A', 'D', 'H')  H2_path = os.path.join(wc_dir, 'A', 'D', 'H2')  svntest.actions.run_and_verify_svn(None, None, [], 'copy',                                     H_path, H2_path)  expected_status.add({    'A/D/H2'       : Item(status='A ', wc_rev='-', copied='+'),    'A/D/H2/chi'   : Item(status='  ', wc_rev='-', copied='+'),    'A/D/H2/omega' : Item(status='  ', wc_rev='-', copied='+'),    'A/D/H2/psi'   : Item(status='  ', wc_rev='-', copied='+'),    })  expected_status.tweak('A/B/F', status='! ', wc_rev='?')  svntest.actions.run_and_verify_status(wc_dir, expected_status)                                           # Relocate  repo_dir = sbox.repo_dir  repo_url = sbox.repo_url  other_repo_dir, other_repo_url = sbox.add_repo_path('other')  svntest.main.copy_repos(repo_dir, other_repo_dir, 2)  svntest.main.safe_rmtree(repo_dir, 1)  svntest.actions.run_and_verify_svn(None, None, [], 'switch', '--relocate',                                     repo_url, other_repo_url, wc_dir)  # Deleted and missing entries should be preserved, so update should  # show only A/B/F being reinstated  expected_output = svntest.wc.State(wc_dir, {    'A/B/F' : Item(status='A '),    })  expected_disk = svntest.main.greek_state.copy()  expected_disk.remove('A/mu')  expected_disk.add({    'A/D/H2'       : Item(),    'A/D/H2/chi'   : Item("This is the file 'chi'.\n"),    'A/D/H2/omega' : Item("This is the file 'omega'.\n"),    'A/D/H2/psi'   : Item("This is the file 'psi'.\n"),    })  expected_status.add({    'A/B/F'       : Item(status='  ', wc_rev='2'),    })  expected_status.tweak(wc_rev=2)  expected_status.tweak('A/D/H2', 'A/D/H2/chi', 'A/D/H2/omega', 'A/D/H2/psi',                        wc_rev='-')  svntest.actions.run_and_verify_update(wc_dir,                                        expected_output,                                        expected_disk,                                        expected_status)    # Commit to verify that copyfrom URLs have been relocated  expected_output = svntest.wc.State(wc_dir, {    'A/D/H2'       : Item(verb='Adding'),    'A/D/H2/chi'   : Item(verb='Adding'),    'A/D/H2/omega' : Item(verb='Adding'),    'A/D/H2/psi'   : Item(verb='Adding'),    })  expected_status.tweak('A/D/H2', 'A/D/H2/chi', 'A/D/H2/omega', 'A/D/H2/psi',                        status='  ', wc_rev='3', copied=None)  svntest.actions.run_and_verify_commit (wc_dir,                                         expected_output, expected_status,                                         None, None, None, None, None,                                         wc_dir)#----------------------------------------------------------------------def delete_subdir(sbox):  "switch that deletes a sub-directory"  sbox.build()  wc_dir = sbox.wc_dir  A_path = os.path.join(wc_dir, 'A')  A_url = svntest.main.current_repo_url + '/A'  A2_url = svntest.main.current_repo_url + '/A2'  A2_B_F_url = svntest.main.current_repo_url + '/A2/B/F'  svntest.actions.run_and_verify_svn(None,                                     ['\n', 'Committed revision 2.\n'], [],                                     'cp', '-m', 'make copy', A_url, A2_url)  svntest.actions.run_and_verify_svn(None,                                     ['\n', 'Committed revision 3.\n'], [],                                     'rm', '-m', 'delete subdir', A2_B_F_url)  expected_output = svntest.wc.State(wc_dir, {    'A/B/F' : Item(status='D '),    })  expected_disk = svntest.main.greek_state.copy()  expected_disk.remove('A/B/F')  expected_status = svntest.actions.get_virginal_state(wc_dir, 3)  expected_status.tweak('A', switched='S')  expected_status.remove('A/B/F')  expected_status.tweak('', 'iota', wc_rev=1)  # Used to fail with a 'directory not locked' error for A/B/F  svntest.actions.run_and_verify_switch(wc_dir, A_path, A2_url,                                        expected_output,                                        expected_disk,                                        expected_status)#----------------------------------------------------------------------# Issue 1532: Switch a file to a dir: can't switch it back to the filedef file_dir_file(sbox):  "switch a file to a dir and back to the file"  sbox.build()  wc_dir = sbox.wc_dir  file_path = os.path.join(wc_dir, 'iota')  file_url = svntest.main.current_repo_url + '/iota'  dir_url = svntest.main.current_repo_url + '/A/C'  svntest.actions.run_and_verify_svn(None, None, [],                                     'switch', dir_url, file_path)  svntest.actions.run_and_verify_svn(None, None, [],                                     'switch', file_url, file_path)#----------------------------------------------------------------------# Issue 1751: "svn switch --non-recursive" does not switch existing files,# and generates the wrong URL for new files.def nonrecursive_switching(sbox):  "non-recursive switch"  sbox.build()  wc1_dir = sbox.wc_dir  wc2_dir = os.path.join(wc1_dir, 'wc2')  # "Trunk" will be the existing dir "A/", with existing file "mu".  # "Branch" will be the new dir "branch/version1/", with added file "newfile".  # "wc1" will hold the whole repository (including trunk and branch).  # "wc2" will hold the "trunk" and then be switched to the "branch".  # It is irrelevant that wc2 is located on disk as a sub-directory of wc1.  trunk_url = svntest.main.current_repo_url + '/A'  branch_url = svntest.main.current_repo_url + '/branch'  version1_url = branch_url + '/version1'  wc1_new_file = os.path.join(wc1_dir, 'branch', 'version1', 'newfile')  wc2_new_file = os.path.join(wc2_dir, 'newfile')  wc2_mu_file = os.path.join(wc2_dir, 'mu')  wc2_B_dir = os.path.join(wc2_dir, 'B')  wc2_C_dir = os.path.join(wc2_dir, 'C')  wc2_D_dir = os.path.join(wc2_dir, 'D')    # Check out the trunk as "wc2"  svntest.main.run_svn(None, 'co', trunk_url, wc2_dir)  # Make a branch, and add a new file, in "wc_dir" and repository  svntest.main.run_svn(None, 'mkdir', '-m', '', branch_url)  svntest.main.run_svn(None, 'cp', '-m', '', trunk_url, version1_url)  svntest.main.run_svn(None, 'up', wc1_dir)  svntest.main.file_append(wc1_new_file, "This is the file 'newfile'.\n")  svntest.main.run_svn(None, 'add', wc1_new_file)  svntest.main.run_svn(None, 'ci', '-m', '', wc1_dir)  # Try to switch "wc2" to the branch (non-recursively)  svntest.actions.run_and_verify_svn(None, None, [],                                     'switch', '-N', version1_url, wc2_dir)  # Check the URLs of the (not switched) directories.  out, err = svntest.actions.run_and_verify_svn(None, None, [],                                                'info', wc2_B_dir)  if out[1].find('/A/B') == -1:    print out[1]    raise svntest.Failure  out, err = svntest.actions.run_and_verify_svn(None, None, [],                                                'info', wc2_C_dir)  if out[1].find('/A/C') == -1:    print out[1]    raise svntest.Failure  out, err = svntest.actions.run_and_verify_svn(None, None, [],                                                'info', wc2_D_dir)  if out[1].find('/A/D') == -1:    print out[1]    raise svntest.Failure  # Check the URLs of the switched files.  # ("svn status -u" might be a better check: it fails when newfile's URL  # is bad, and shows "S" when mu's URL is wrong.)  # mu: not switched  out, err = svntest.actions.run_and_verify_svn(None, None, [],                                                'info', wc2_mu_file)  if out[2].find('/branch/version1/mu') == -1:    print out[2]    raise svntest.Failure  # newfile: wrong URL  out, err = svntest.actions.run_and_verify_svn(None, None, [],                                                'info', wc2_new_file)  if out[2].find('/branch/version1/newfile') == -1:    print out[2]    raise svntest.Failure#----------------------------------------------------------------------def failed_anchor_is_target(sbox):  "anchor=target that fails due to local mods"  sbox.build()  wc_dir = sbox.wc_dir

⌨️ 快捷键说明

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