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

📄 externals_tests.py

📁 subversion-1.4.3-1.tar.gz 配置svn的源码
💻 PY
📖 第 1 页 / 共 3 页
字号:
  svntest.actions.run_and_verify_svn("", None, [],                                     'checkout',                                     '--username', svntest.main.wc_author,                                     '--password', svntest.main.wc_passwd,                                     repo_url, wc_dir)  svntest.actions.run_and_verify_svn("", None, [],                                     'checkout',                                     '--username', svntest.main.wc_author,                                     '--password', svntest.main.wc_passwd,                                     other_repo_url, other_wc_dir)  # Commit some modifications from the other_wc.  other_gamma_path = os.path.join(other_wc_dir, 'A', 'D', 'gamma')  svntest.main.file_append(other_gamma_path, "New text in other gamma.\n")  expected_output = svntest.wc.State(other_wc_dir, {    'A/D/gamma' : Item(verb='Sending'),    })  expected_status = svntest.actions.get_virginal_state(other_wc_dir, 5)  expected_status.tweak('A/D/gamma', wc_rev=6)  svntest.actions.run_and_verify_commit(other_wc_dir,                                        expected_output,                                        expected_status,                                        None, None, None, None, None,                                        other_wc_dir)    # Now update the regular wc to see if we get the change.  Note that  # none of the module *properties* in this wc have been changed; only  # the source repository of the modules has received a change, and  # we're verifying that an update here pulls that change.  # The output's going to be all screwy because of the module  # notifications, so don't bother parsing it, just run update  # directly.  svntest.actions.run_and_verify_svn("", None, [], 'up', wc_dir)  external_gamma_path = os.path.join(wc_dir, 'A', 'D', 'exdir_A', 'D', 'gamma')  fp = open(external_gamma_path, 'r')  lines = fp.readlines()  if not ((len(lines) == 2)          and (lines[0] == "This is the file 'gamma'.\n")          and (lines[1] == "New text in other gamma.\n")):    raise svntest.Failure("Unexpected contents for externally modified " +                          external_gamma_path)  fp.close()  # Commit more modifications  other_rho_path = os.path.join(other_wc_dir, 'A', 'D', 'G', 'rho')  svntest.main.file_append(other_rho_path, "New text in other rho.\n")  expected_output = svntest.wc.State(other_wc_dir, {    'A/D/G/rho' : Item(verb='Sending'),    })  expected_status = svntest.actions.get_virginal_state(other_wc_dir, 5)  expected_status.tweak('A/D/gamma', wc_rev=6)  expected_status.tweak('A/D/G/rho', wc_rev=7)  svntest.actions.run_and_verify_commit(other_wc_dir,                                        expected_output,                                        expected_status,                                        None, None, None, None, None,                                        other_wc_dir)  svntest.actions.run_and_verify_svn("", None, [],                                     'up', os.path.join(wc_dir, "A", "C"))  external_rho_path = os.path.join(wc_dir, 'A', 'C', 'exdir_G', 'rho')  fp = open(external_rho_path, 'r')  lines = fp.readlines()  if not ((len(lines) == 2)          and (lines[0] == "This is the file 'rho'.\n")          and (lines[1] == "New text in other rho.\n")):    raise svntest.Failure("Unexpected contents for externally modified " +                          external_rho_path)  fp.close()#----------------------------------------------------------------------def modify_and_update_receive_new_external(sbox):  "commit and update additional externals"  externals_test_setup(sbox)  wc_dir         = sbox.wc_dir  repo_dir       = sbox.repo_dir  repo_url       = sbox.repo_url  other_repo_url = repo_url + ".other"  # Checkout a working copy  svntest.actions.run_and_verify_svn("", None, [],                                     'checkout',                                     '--username', svntest.main.wc_author,                                     '--password', svntest.main.wc_passwd,                                     repo_url, wc_dir)  # Add one more external item  B_path = os.path.join(wc_dir, "A/B")  externals_desc = \          "exdir_G       " + other_repo_url + "/A/D/G" + "\n" + \          "exdir_H  -r 1 " + other_repo_url + "/A/D/H" + "\n" + \          "exdir_Z       " + other_repo_url + "/A/D/H" + "\n"  tmp_f = os.tempnam()  svntest.main.file_append(tmp_f, externals_desc)  svntest.actions.run_and_verify_svn("", None, [],                                     'pset', '-F', tmp_f,                                     'svn:externals', B_path)  os.remove(tmp_f)  # Now cd into A/B and try updating  was_cwd = os.getcwd()  os.chdir(B_path)  try:    # Once upon a time there was a core-dump here        svntest.actions.run_and_verify_svn("update failed",                                       SVNAnyOutput, [], 'up' )  finally:    os.chdir(was_cwd)  exdir_Z_path = os.path.join(B_path, "exdir_Z")  if not os.path.exists(exdir_Z_path):    raise svntest.Failure("Probing for " + exdir_Z_path + " failed.")#----------------------------------------------------------------------def disallow_dot_or_dotdot_directory_reference(sbox):  "error if external target dir involves '.' or '..'"  sbox.build()  wc_dir         = sbox.wc_dir  repo_url       = sbox.repo_url  # Try to set illegal externals in the original WC.  def set_externals_for_path_expect_error(path, val, dir):    tmp_f = os.tempnam(dir, 'tmp')    svntest.main.file_append(tmp_f, val)    svntest.actions.run_and_verify_svn("", None, SVNAnyOutput,                                       'pset', '-F', tmp_f,                                       'svn:externals', path)    os.remove(tmp_f)  B_path = os.path.join(wc_dir, 'A', 'B')  G_path = os.path.join(wc_dir, 'A', 'D', 'G')  H_path = os.path.join(wc_dir, 'A', 'D', 'H')  C_path = os.path.join(wc_dir, 'A', 'C')  F_path = os.path.join(wc_dir, 'A', 'C', 'F')  externals_value_1 = "../foo"         + " " + repo_url + "/A/B/E" + "\n"  externals_value_2 = "foo/bar/../baz" + " " + repo_url + "/A/B/E" + "\n"  externals_value_3 = "foo/.."         + " " + repo_url + "/A/B/E" + "\n"  externals_value_4 = "."              + " " + repo_url + "/A/B/E" + "\n"  externals_value_5 = "./"             + " " + repo_url + "/A/B/E" + "\n"  externals_value_6 = ".."             + " " + repo_url + "/A/B/E" + "\n"  externals_value_7 = "././/.///."     + " " + repo_url + "/A/B/E" + "\n"  externals_value_8 = "/foo"           + " " + repo_url + "/A/B/E" + "\n"  set_externals_for_path_expect_error(B_path, externals_value_1, wc_dir)  set_externals_for_path_expect_error(G_path, externals_value_2, wc_dir)  set_externals_for_path_expect_error(H_path, externals_value_3, wc_dir)  set_externals_for_path_expect_error(C_path, externals_value_4, wc_dir)  set_externals_for_path_expect_error(F_path, externals_value_5, wc_dir)  set_externals_for_path_expect_error(B_path, externals_value_6, wc_dir)  set_externals_for_path_expect_error(G_path, externals_value_7, wc_dir)  set_externals_for_path_expect_error(H_path, externals_value_8, wc_dir)#----------------------------------------------------------------------def export_with_externals(sbox):  "test exports with externals"  externals_test_setup(sbox)  wc_dir         = sbox.wc_dir  repo_dir       = sbox.repo_dir  repo_url       = sbox.repo_url  # Create a working copy.  svntest.actions.run_and_verify_svn("", None, [],                                     'export',                                     '--username', svntest.main.wc_author,                                     '--password', svntest.main.wc_passwd,                                     repo_url, wc_dir)  # Probe the working copy a bit, see if it's as expected.  exdir_G_path    = os.path.join(wc_dir, "A", "C", "exdir_G")  exdir_G_pi_path = os.path.join(exdir_G_path, "pi")  exdir_H_path       = os.path.join(wc_dir, "A", "C", "exdir_H")  exdir_H_omega_path = os.path.join(exdir_H_path, "omega")  x_path     = os.path.join(wc_dir, "A", "D", "x")  y_path     = os.path.join(x_path, "y")  z_path     = os.path.join(y_path, "z")  blah_path  = os.path.join(z_path, "blah")  alpha_path = os.path.join(blah_path, "E", "alpha")  beta_path  = os.path.join(blah_path, "E", "beta")  if (not os.path.exists(exdir_G_path)):    raise svntest.Failure("Probing for " + exdir_G_path + " failed.")  if (not os.path.exists(exdir_G_pi_path)):    raise svntest.Failure("Probing for " + exdir_G_pi_path + " failed.")  if (not os.path.exists(exdir_H_path)):    raise svntest.Failure("Probing for " + exdir_H_path + " failed.")  if (not os.path.exists(exdir_H_omega_path)):    raise svntest.Failure("Probing for " + exdir_H_omega_path + " failed.")  if (not os.path.exists(x_path)):    raise svntest.Failure("Probing for " + x_path + " failed.")  if (not os.path.exists(y_path)):    raise svntest.Failure("Probing for " + y_path + " failed.")  if (not os.path.exists(z_path)):    raise svntest.Failure("Probing for " + z_path + " failed.")  if (not os.path.exists(z_path)):    raise svntest.Failure("Probing for " + z_path + " failed.")  if (not os.path.exists(alpha_path)):    raise svntest.Failure("Probing for " + alpha_path + " failed.")  if (not os.path.exists(beta_path)):    raise svntest.Failure("Probing for " + beta_path + " failed.")  # Pick some files, make sure their contents are as expected.  fp = open(exdir_G_pi_path, 'r')  lines = fp.readlines()  if not ((len(lines) == 2) \          and (lines[0] == "This is the file 'pi'.\n") \          and (lines[1] == "Added to pi in revision 3.\n")):    raise svntest.Failure("Unexpected contents for rev 1 of " +                          exdir_G_pi_path)  fp = open(exdir_H_omega_path, 'r')  lines = fp.readlines()  if not ((len(lines) == 1) and (lines[0] == "This is the file 'omega'.\n")):    raise svntest.Failure("Unexpected contents for rev 1 of " +                          exdir_H_omega_path)######################################################################### Run the tests# list all tests here, starting with None:test_list = [ None,              checkout_with_externals,              update_receive_new_external,              update_lose_external,              update_change_pristine_external,              update_change_modified_external,              update_receive_change_under_external,              modify_and_update_receive_new_external,              disallow_dot_or_dotdot_directory_reference,              export_with_externals,             ]if __name__ == '__main__':  warnings.filterwarnings('ignore', 'tempnam', RuntimeWarning)  svntest.main.run_tests(test_list)  # NOTREACHED### End of file.

⌨️ 快捷键说明

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