📄 svnsync_tests.py
字号:
svntest.main.wc_passwd, dest_sbox.wc_dir) # Commit some change to the destination, which should be detected by svnsync svntest.main.file_append(os.path.join(dest_sbox.wc_dir, 'A', 'B', 'lambda'), 'new lambda text') svntest.actions.run_and_verify_svn(None, None, [], 'ci', '-m', 'msg', '--username', svntest.main.wc_author, '--password', svntest.main.wc_passwd, dest_sbox.wc_dir) run_sync(dest_sbox.repo_url, ".*Destination HEAD \\(2\\) is not the last merged revision \\(1\\).*")#----------------------------------------------------------------------def basic_authz(sbox): "verify that unreadable content is not synced" skip_test_when_no_authz_available() sbox.build("svnsync-basic-authz") write_restrictive_svnserve_conf(svntest.main.current_repo_dir) dest_sbox = sbox.clone_dependent() build_repos(dest_sbox) svntest.actions.enable_revprop_changes(svntest.main.current_repo_dir) run_init(dest_sbox.repo_url, sbox.repo_url) fp = open(sbox.authz_file, 'w') fp.write("[svnsync-basic-authz:/]\n" + "* = r\n" + "\n" + "[svnsync-basic-authz:/A/B]\n" + "* = \n" + "\n" + "[svnsync-basic-authz-1:/]\n" + "* = rw\n") fp.close() run_sync(dest_sbox.repo_url) lambda_url = dest_sbox.repo_url + '/A/B/lambda' # this file should have been blocked by authz svntest.actions.run_and_verify_svn(None, [], svntest.SVNAnyOutput, 'cat', '--username', svntest.main.wc_author, '--password', svntest.main.wc_passwd, lambda_url)#----------------------------------------------------------------------def copy_from_unreadable_dir(sbox): "verify that copies from unreadable dirs work" skip_test_when_no_authz_available() sbox.build("svnsync-copy-from-unreadable-dir") B_url = sbox.repo_url + '/A/B' P_url = sbox.repo_url + '/A/P' # Set a property on the directory we're going to copy, and a file in it, to # confirm that they're transmitted when we later sync the copied directory svntest.actions.run_and_verify_svn(None, None, [], 'pset', 'foo', 'bar', sbox.wc_dir + '/A/B/lambda') svntest.actions.run_and_verify_svn(None, None, [], 'pset', 'baz', 'zot', sbox.wc_dir + '/A/B') svntest.actions.run_and_verify_svn(None, None, [], 'ci', sbox.wc_dir + '/A/B', '-m', 'log_msg') # Now copy that directory so we'll see it in our synced copy svntest.actions.run_and_verify_svn(None, None, [], 'cp', B_url, P_url, '--username', svntest.main.wc_author, '--password', svntest.main.wc_passwd, '-m', 'Copy B to P') write_restrictive_svnserve_conf(svntest.main.current_repo_dir) dest_sbox = sbox.clone_dependent() build_repos(dest_sbox) svntest.actions.enable_revprop_changes(svntest.main.current_repo_dir) fp = open(sbox.authz_file, 'w') # For mod_dav_svn's parent path setup we need per-repos permissions in # the authz file... if sbox.repo_url.startswith('http'): fp.write("[svnsync-copy-from-unreadable-dir:/]\n" + "* = r\n" + "\n" + "[svnsync-copy-from-unreadable-dir:/A/B]\n" + "* = \n" + "\n" + "[svnsync-copy-from-unreadable-dir-1:/]\n" + "* = rw") # Otherwise we can just go with the permissions needed for the source # repository. else: fp.write("[/]\n" + "* = r\n" + "\n" + "[/A/B]\n" + "* =\n") fp.close() run_init(dest_sbox.repo_url, sbox.repo_url) run_sync(dest_sbox.repo_url) lambda_url = dest_sbox.repo_url + '/A/B/lambda' expected_out = [ 'Changed paths:\n', ' A /A/P\n', ' A /A/P/E\n', ' A /A/P/E/alpha\n', ' A /A/P/E/beta\n', ' A /A/P/F\n', ' A /A/P/lambda\n', '\n', 'Copy B to P\n', ] out, err = svntest.main.run_svn(None, 'log', '--username', svntest.main.wc_author, '--password', svntest.main.wc_passwd, '-r', '3', '-v', dest_sbox.repo_url) if err: raise svntest.actions.SVNUnexpectedStderr(err) svntest.actions.compare_and_display_lines(None, 'LOG', expected_out, out[2:11]) svntest.actions.run_and_verify_svn(None, ['bar\n'], [], 'pget', 'foo', dest_sbox.repo_url + '/A/P/lambda') svntest.actions.run_and_verify_svn(None, ['zot\n'], [], 'pget', 'baz', dest_sbox.repo_url + '/A/P')def url_encoding(sbox): "test url encoding issues" run_test(sbox, "url-encoding-bug.dump")# A test for copying revisions that lack a property that already exists# on the destination rev as part of the commit (i.e. svn:author in this# case, but svn:date would also work).def no_author(sbox): "test copying revs with no svn:author revprops" run_test(sbox, "no-author.dump")######################################################################### Run the tests# list all tests here, starting with None:test_list = [ None, copy_and_modify, copy_from_previous_version_and_modify, copy_from_previous_version, modified_in_place, tag_empty_trunk, tag_trunk_with_dir, tag_trunk_with_file2, tag_trunk_with_file, tag_with_modified_file, dir_prop_change, file_dir_file, copy_parent_modify_prop, detect_meddling, basic_authz, copy_from_unreadable_dir, url_encoding, no_author, ]if __name__ == '__main__': svntest.main.run_tests(test_list) # NOTREACHED### End of file.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -