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

📄 log_tests.py

📁 subversion-1.4.3-1.tar.gz 配置svn的源码
💻 PY
📖 第 1 页 / 共 2 页
字号:
    # try to check in a change using a versioned file as your log entry.    svntest.actions.run_and_verify_svn("", None, SVNAnyOutput,                                       'ci', '-F', log_path)    # force it.  should not produce any errors.    svntest.actions.run_and_verify_svn ("", None, [],                                        'ci', '-F', log_path, '--force-log')    svntest.main.file_append (mu_path, "2")    # try the same thing, but specifying the file to commit explicitly.    svntest.actions.run_and_verify_svn("", None, SVNAnyOutput,                                       'ci', '-F', log_path, mu_path)    # force it...  should succeed.    svntest.actions.run_and_verify_svn ("", None, [],                                        'ci',                                        '-F', log_path,                                        '--force-log', mu_path)  finally:    os.chdir (was_cwd)#----------------------------------------------------------------------def log_with_empty_repos(sbox):  "'svn log' on an empty repository"  # Create virgin repos  svntest.main.safe_rmtree(sbox.repo_dir, 1)  svntest.main.create_repos(sbox.repo_dir)  svntest.main.set_repos_paths(sbox.repo_dir)  svntest.actions.run_and_verify_svn ("", None, [],                                      'log',                                      '--username', svntest.main.wc_author,                                      '--password', svntest.main.wc_passwd,                                      svntest.main.current_repo_url)#----------------------------------------------------------------------def log_where_nothing_changed(sbox):  "'svn log -rN some_dir_unchanged_in_N'"  sbox.build()  # Fix bug whereby running 'svn log -rN SOMEPATH' would result in an  # xml protocol error if there were no changes in revision N  # underneath SOMEPATH.  This problem was introduced in revision  # 3811, which didn't cover the case where svn_repos_get_logs might  # invoke log_receiver zero times.  Since the receiver never ran, the  # lrb->needs_header flag never got cleared.  Control would proceed  # without error to the end of dav_svn__log_report(), which would  # send a closing tag even though no opening tag had ever been sent.  rho_path = os.path.join (sbox.wc_dir, 'A', 'D', 'G', 'rho')  svntest.main.file_append (rho_path, "some new material in rho")  svntest.actions.run_and_verify_svn(None, None, [], 'ci', '-m',                                     'log msg', rho_path)  # Now run 'svn log -r2' on a directory unaffected by revision 2.  H_path = os.path.join (sbox.wc_dir, 'A', 'D', 'H')  svntest.actions.run_and_verify_svn(None, None, [],                                     'log', '-r', '2', H_path)#----------------------------------------------------------------------def log_to_revision_zero(sbox):  "'svn log -v -r 1:0 wc_root'"  sbox.build()  # This used to segfault the server.    svntest.actions.run_and_verify_svn(None, None, [],                                     'log', '-v',                                     '-r', '1:0', sbox.wc_dir)#----------------------------------------------------------------------def log_with_path_args(sbox):  "'svn log', with args, top of wc"  guarantee_repos_and_wc(sbox)  was_cwd = os.getcwd()  os.chdir(sbox.wc_dir)  try:    output, err = svntest.actions.run_and_verify_svn(      None, None, [],      'log', svntest.main.current_repo_url, 'A/D/G', 'A/D/H')    log_chain = parse_log_output (output)    check_log_chain(log_chain, [8, 6, 5, 3, 1])  finally:    os.chdir (was_cwd)#----------------------------------------------------------------------def dynamic_revision(sbox):  "'svn log -r COMMITTED' of dynamic/local WC rev"  guarantee_repos_and_wc(sbox)  was_cwd = os.getcwd()  os.chdir(sbox.wc_dir)  try:    for rev in ('HEAD', 'BASE', 'COMMITTED', 'PREV'):      svntest.actions.run_and_verify_svn(None, None, [], 'log', '-r', rev)  finally:    os.chdir(was_cwd)#----------------------------------------------------------------------def log_wc_with_peg_revision(sbox):  "'svn log wc_target@N'"  guarantee_repos_and_wc(sbox)  my_path = os.path.join(sbox.wc_dir, "A", "B", "E", "beta") + "@8"  output, err = svntest.actions.run_and_verify_svn(None, None, [],                                                   'log', my_path)  check_log_chain(parse_log_output(output), [1])#----------------------------------------------------------------------def url_missing_in_head(sbox):  "'svn log target@N' when target removed from HEAD"  guarantee_repos_and_wc(sbox)  my_url = svntest.main.current_repo_url + "/A/B/E/alpha" + "@8"    output, err = svntest.actions.run_and_verify_svn(None, None, [],                                                   'log', my_url)  check_log_chain(parse_log_output(output), [3, 1])#----------------------------------------------------------------------def log_through_copyfrom_history(sbox):  "'svn log TGT' with copyfrom history"  sbox.build()  wc_dir = sbox.wc_dir  msg_file=os.path.join (sbox.repo_dir, 'log-msg')  msg_file=os.path.abspath (msg_file)  mu_path = os.path.join (wc_dir, 'A', 'mu')  mu2_path = os.path.join (wc_dir, 'A', 'mu2')  mu_URL = svntest.main.current_repo_url + '/A/mu'  mu2_URL = svntest.main.current_repo_url + '/A/mu2'     msg2=""" Log message for revision 2   but with multiple lines  to test the code"""    msg4=""" Log message for revision 4  but with multiple lines  to test the code"""  msg6=""" Log message for revision 6   but with multiple lines  to test the code"""  log_file=open (msg_file, 'w')  log_file.write (msg2)  log_file.close ()  svntest.main.file_append (mu_path, "2")  svntest.actions.run_and_verify_svn (None, None, [], 'ci', wc_dir,                                      '-F', msg_file)  svntest.main.file_append (mu2_path, "this is mu2")  svntest.actions.run_and_verify_svn (None, None, [], 'add', mu2_path)  svntest.actions.run_and_verify_svn (None, None, [], 'ci', wc_dir,                                      '-m', "Log message for revision 3")  svntest.actions.run_and_verify_svn (None, None, [], 'rm', mu2_path)  log_file=open (msg_file, 'w')  log_file.write (msg4)  log_file.close ()  svntest.actions.run_and_verify_svn (None, None, [], 'ci', wc_dir,                                      '-F', msg_file)  svntest.main.file_append (mu_path, "5")  svntest.actions.run_and_verify_svn (None, None, [], 'ci', wc_dir,                                      '-m', "Log message for revision 5")  log_file=open (msg_file, 'w')  log_file.write (msg6)  log_file.close ()  svntest.actions.run_and_verify_svn (None, None, [],                                      'cp', '-r', '5', mu_URL, mu2_URL,                                      '-F', msg_file)  svntest.actions.run_and_verify_svn (None, None, [], 'up', wc_dir)  # The full log for mu2 is relatively unsurprising  output, err = svntest.actions.run_and_verify_svn (None, None, [],                                                    'log', mu2_path)  log_chain = parse_log_output (output)  check_log_chain(log_chain, [6, 5, 2, 1])  output, err = svntest.actions.run_and_verify_svn (None, None, [],                                                    'log', mu2_URL)  log_chain = parse_log_output (output)  check_log_chain(log_chain, [6, 5, 2, 1])  # First "oddity", the full log for mu2 doesn't include r3, but the -r3  # log works!  peg_mu2_path = mu2_path + "@3"  output, err = svntest.actions.run_and_verify_svn (None, None, [],                                                    'log', '-r', '3',                                                     peg_mu2_path)  log_chain = parse_log_output (output)  check_log_chain(log_chain, [3])  peg_mu2_URL = mu2_URL + "@3"  output, err = svntest.actions.run_and_verify_svn (None, None, [],                                                    'log', '-r', '3',                                                     peg_mu2_URL)  log_chain = parse_log_output (output)  check_log_chain(log_chain, [3])  output, err = svntest.actions.run_and_verify_svn (None, None, [],                                                    'log', '-r', '2',                                                     mu2_path)  log_chain = parse_log_output (output)  check_log_chain (log_chain, [2])  output, err = svntest.actions.run_and_verify_svn (None, None, [],                                                    'log', '-r', '2',                                                     mu2_URL)  log_chain = parse_log_output (output)  check_log_chain(log_chain, [2])#----------------------------------------------------------------------def escape_control_chars(sbox):  "mod_dav_svn must escape invalid XML control chars"  dump_str = """SVN-fs-dump-format-version: 2UUID: ffcae364-69ee-0310-a980-ca5f10462af2Revision-number: 0Prop-content-length: 56Content-length: 56K 8svn:dateV 272005-01-24T10:09:21.759592ZPROPS-ENDRevision-number: 1Prop-content-length: 128Content-length: 128K 7svn:logV 100This msg contains a Ctrl-T (\x14) and a Ctrl-I (\t).The former might be escaped, but the latter never.K 10svn:authorV 7jrandomK 8svn:dateV 272005-01-24T10:09:22.012524ZPROPS-END"""  # Create virgin repos and working copy  svntest.main.safe_rmtree(sbox.repo_dir, 1)  svntest.main.create_repos(sbox.repo_dir)  svntest.main.set_repos_paths(sbox.repo_dir)  URL = svntest.main.current_repo_url  # load dumpfile with control character into repos to get  # a log with control char content  output, errput = \    svntest.main.run_command_stdin(    "%s load --quiet %s" % (svntest.main.svnadmin_binary, sbox.repo_dir),    None, 1, dump_str)  # run log  output, errput = svntest.actions.run_and_verify_svn ("", None, [], 'log', URL)  # Verify the output contains either the expected fuzzy escape  # sequence, or the literal control char.  match_unescaped_ctrl_re = "This msg contains a Ctrl-T \(.\) " \                            "and a Ctrl-I \(\t\)\."  match_escaped_ctrl_re = "^This msg contains a Ctrl-T \(\?\\\\020\) " \                          "and a Ctrl-I \(\t\)\."  matched = None  for line in output:    if re.match (match_unescaped_ctrl_re, line) \       or re.match (match_escaped_ctrl_re, line):      matched = 1  if not matched:    raise svntest.Failure ("log message not transmitted properly:" +                           str(output) + "\n" + "error: " + str(errput))#----------------------------------------------------------------------def log_xml_empty_date(sbox):  "svn log --xml must not print empty date elements"  sbox.build()  # Create the revprop-change hook for this test  svntest.actions.enable_revprop_changes(svntest.main.current_repo_dir)  date_re = re.compile('<date');  # Ensure that we get a date before we delete the property.  output, errput = svntest.actions.run_and_verify_svn("", None, [],                                                      'log', '--xml', '-r1',                                                      sbox.wc_dir)  matched = 0  for line in output:    if date_re.search(line):      matched = 1  if not matched:    raise svntest.Failure ("log contains no date element")  # Set the svn:date revprop to the empty string on revision 1.  svntest.actions.run_and_verify_svn("", None, [],                                     'pdel', '--revprop', '-r1', 'svn:date',                                     sbox.wc_dir)  output, errput = svntest.actions.run_and_verify_svn("", None, [],                                                      'log', '--xml', '-r1',                                                      sbox.wc_dir)  for line in output:      if date_re.search(line):      raise svntest.Failure ("log contains date element when svn:date is empty")#----------------------------------------------------------------------def log_limit(sbox):  "svn log --limit"  guarantee_repos_and_wc(sbox)  out, err = svntest.actions.run_and_verify_svn(None, None, [],                                                'log', '--limit', '2',                                                svntest.main.current_repo_url)  log_chain = parse_log_output (out)  check_log_chain(log_chain, [9, 8])  out, err = svntest.actions.run_and_verify_svn(None, None, [],                                                'log', '--limit', '2',                                                svntest.main.current_repo_url,                                                'A/B')  log_chain = parse_log_output (out)  check_log_chain(log_chain, [9, 6])  out, err = svntest.actions.run_and_verify_svn(None, None, [],                                                'log', '--limit', '2',                                                '--revision', '2:HEAD',                                                svntest.main.current_repo_url,                                                'A/B')  log_chain = parse_log_output (out)  check_log_chain(log_chain, [3, 6])  out, err = svntest.actions.run_and_verify_svn(None, None, [],                                                'log', '--limit', '2',                                                '--revision', '1',                                                svntest.main.current_repo_url,                                                'A/B')  log_chain = parse_log_output (out)  check_log_chain(log_chain, [1])  must_be_positive = ".*Argument to --limit must be positive.*"  # error expected when limit <= 0  svntest.actions.run_and_verify_svn(None, None, must_be_positive,                                     'log', '--limit', '0', '--revision', '1',                                     svntest.main.current_repo_url, 'A/B')                                                  svntest.actions.run_and_verify_svn(None, None, must_be_positive,                                     'log', '--limit', '-1', '--revision', '1',                                     svntest.main.current_repo_url, 'A/B')                                                                                                def log_base_peg(sbox):  "run log on an @BASE target"  guarantee_repos_and_wc(sbox)  target = os.path.join(sbox.wc_dir, 'A', 'B', 'E', 'beta') + '@BASE'  out, err = svntest.actions.run_and_verify_svn(None, None, [], 'log', target)  log_chain = parse_log_output(out)  check_log_chain(log_chain, [9, 1])  svntest.actions.run_and_verify_svn(None, None, [], 'update', '-r', '1',                                     sbox.wc_dir)  out, err = svntest.actions.run_and_verify_svn(None, None, [], 'log', target)  log_chain = parse_log_output(out)  check_log_chain(log_chain, [1])######################################################################### Run the tests# list all tests here, starting with None:test_list = [ None,              plain_log,              versioned_log_message,              log_with_empty_repos,              log_where_nothing_changed,              log_to_revision_zero,              dynamic_revision,              log_with_path_args,              log_wc_with_peg_revision,              url_missing_in_head,              log_through_copyfrom_history,              escape_control_chars,              log_xml_empty_date,              log_limit,              log_base_peg,             ]if __name__ == '__main__':  svntest.main.run_tests(test_list)  # NOTREACHED### End of file.

⌨️ 快捷键说明

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