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

📄 prop_tests.py

📁 subversion-1.4.3-1.tar.gz 配置svn的源码
💻 PY
📖 第 1 页 / 共 3 页
字号:
  svntest.actions.run_and_verify_svn("Error in property commit",                                     None, [], 'ci', '-m', 'logmsg', wc_dir)  # Schedule both files for deletion  svntest.main.run_svn(None, 'rm', iota_path, lambda_path)  # Now recreate the files, and schedule them for addition.  # Poof, the 'new' files don't have any properties at birth.  svntest.main.file_append (iota_path, 'iota TNG')  svntest.main.file_append (lambda_path, 'lambda TNG')  svntest.main.run_svn(None, 'add', iota_path, lambda_path)  # Sanity check:  the two files should be scheduled for (R)eplacement.  expected_status = svntest.actions.get_virginal_state(wc_dir, 1)  expected_status.tweak('iota', wc_rev=2, status='R ')  expected_status.tweak('A/B/lambda', wc_rev=2, status='R ')  svntest.actions.run_and_verify_status(wc_dir, expected_status)  # Now add a property to lambda.  Iota still doesn't have any.  svntest.main.run_svn(None, 'propset', 'capacitor', 'flux', lambda_path)    # Commit, with careful output checking.  We're actually going to  # scan the working copy for props after the commit.  expected_output = svntest.wc.State(wc_dir, {    'iota' : Item(verb='Replacing'),    'A/B/lambda' : Item(verb='Replacing'),    })  # Expected status tree:  lambda has one prop, iota doesn't.  expected_status = svntest.actions.get_virginal_state(wc_dir, 1)  expected_status.tweak('iota', wc_rev=3)  expected_status.tweak('A/B/lambda', wc_rev=3, status='  ')  svntest.actions.run_and_verify_commit (wc_dir, expected_output,                                         expected_status,                                         None, None, None, None, None,                                         wc_dir)#----------------------------------------------------------------------def revert_replacement_props(sbox):  "props work when reverting a replacement"  # Bootstrap  sbox.build()  wc_dir = sbox.wc_dir  # Add a property to two files  iota_path = os.path.join(wc_dir, 'iota')  lambda_path = os.path.join(wc_dir, 'A', 'B', 'lambda')  svntest.main.run_svn(None, 'propset', 'cash-sound', 'cha-ching!', iota_path)  svntest.main.run_svn(None, 'propset', 'boson', 'W', lambda_path)  # Commit rev 2. (### someday use run_and_verify_commit for better coverage)  svntest.actions.run_and_verify_svn("Error in property commit", None, [],                                     'ci', '-m', 'logmsg', wc_dir)  # Schedule both files for deletion  svntest.main.run_svn(None, 'rm', iota_path, lambda_path)  # Now recreate the files, and schedule them for addition.  # Poof, the 'new' files don't have any properties at birth.  svntest.main.file_append (iota_path, 'iota TNG')  svntest.main.file_append (lambda_path, 'lambda TNG')  svntest.main.run_svn(None, 'add', iota_path, lambda_path)  # Sanity check:  the two files should be scheduled for (R)eplacement.  expected_status = svntest.actions.get_virginal_state(wc_dir, 1)  expected_status.tweak('iota', wc_rev=2, status='R ')  expected_status.tweak('A/B/lambda', wc_rev=2, status='R ')  svntest.actions.run_and_verify_status(wc_dir, expected_status)  # Now add a property to lambda.  Iota still doesn't have any.  svntest.main.run_svn(None, 'propset', 'capacitor', 'flux', lambda_path)    # Now revert both files.  svntest.main.run_svn(None, 'revert', iota_path, lambda_path)  # Do an update; even though the update is really a no-op,  # run_and_verify_update has the nice feature of scanning disk as  # well as running status.  We want to verify that we truly have a  # *pristine* revision 2 tree, with the original rev 2 props, and no  # local mods at all.  expected_output = svntest.wc.State(wc_dir, {    })  expected_status = svntest.actions.get_virginal_state(wc_dir, 2)  expected_status.tweak('iota', status='  ')  expected_status.tweak('A/B/lambda', status='  ')  expected_disk = svntest.main.greek_state.copy()  expected_disk.tweak('iota', props={'cash-sound' : 'cha-ching!'})  expected_disk.tweak('A/B/lambda', props={'boson' : 'W'})  # scan disk for props too.  svntest.actions.run_and_verify_update(wc_dir,                                        expected_output,                                        expected_disk,                                        expected_status,                                        None, None, None, None, None,                                        1)#----------------------------------------------------------------------def inappropriate_props(sbox):  "try to set inappropriate props"  # Bootstrap  sbox.build()  wc_dir = sbox.wc_dir    A_path = os.path.join(wc_dir, 'A')  E_path = os.path.join(wc_dir, 'A', 'B', 'E')  iota_path = os.path.join(wc_dir, 'iota')  expected_status = svntest.actions.get_virginal_state(wc_dir, 1)  svntest.actions.run_and_verify_status(wc_dir, expected_status)  # These should produce an error  svntest.actions.run_and_verify_svn('Illegal target', None,                                     svntest.SVNAnyOutput, 'propset',                                     'svn:executable', 'on', A_path)  svntest.actions.run_and_verify_svn('Illegal target', None,                                     svntest.SVNAnyOutput, 'propset',                                     'svn:keywords', 'LastChangedDate',                                     A_path)  svntest.actions.run_and_verify_svn('Illegal target', None,                                     svntest.SVNAnyOutput, 'propset',                                     'svn:eol-style', 'native', A_path)  svntest.actions.run_and_verify_svn('Illegal target', None,                                     svntest.SVNAnyOutput, 'propset',                                     'svn:mime-type', 'image/png', A_path)  svntest.actions.run_and_verify_svn('Illegal target', None,                                     svntest.SVNAnyOutput, 'propset',                                     'svn:ignore', '*.o', iota_path)  svntest.actions.run_and_verify_svn('Illegal target', None,                                     svntest.SVNAnyOutput, 'propset',                                     'svn:externals',                                     'foo http://host.com/repos', iota_path)  svntest.actions.run_and_verify_svn('Illegal target', None,                                     svntest.SVNAnyOutput, 'propset',                                     'svn:author', 'socrates', iota_path)    svntest.actions.run_and_verify_svn('Illegal target', None,                                     svntest.SVNAnyOutput, 'propset',                                     'svn:log', 'log message', iota_path)   svntest.actions.run_and_verify_svn('Illegal target', None,                                     svntest.SVNAnyOutput, 'propset',                                     'svn:date', 				     'Tue Jan 19 04:14:07 2038',				     iota_path)    svntest.actions.run_and_verify_svn('Illegal target', None,                                     svntest.SVNAnyOutput, 'propset',                                     'svn:original-date',				     'Thu Jan  1 01:00:00 1970',				     iota_path)  # Status unchanged  svntest.actions.run_and_verify_status(wc_dir, expected_status)  # Recursive setting of inappropriate dir prop should work on files  svntest.actions.run_and_verify_svn(None, None, [], 'propset', '-R',                                     'svn:executable', 'on', E_path)  expected_status.tweak('A/B/E/alpha', 'A/B/E/beta', status=' M')  svntest.actions.run_and_verify_status(wc_dir, expected_status)# Issue #920. Don't allow setting of svn:eol-style on binary files or files # with inconsistent eol types.    path = os.path.join(wc_dir, 'binary')  svntest.main.file_append(path, "binary")  svntest.main.run_svn(None, 'add', path)    svntest.main.run_svn(None, 'propset', 'svn:mime-type',                        'application/octet-stream', path)  svntest.actions.run_and_verify_svn('Illegal target', None,                                     svntest.SVNAnyOutput,                                     'propset', 'svn:eol-style',                                     'CRLF', path)     path = os.path.join(wc_dir, 'multi-eol')  svntest.main.file_append(path, "line1\rline2\n")  svntest.main.run_svn(None, 'add', path)    svntest.actions.run_and_verify_svn('Illegal target', None,                                     svntest.SVNAnyOutput,                                     'propset', 'svn:eol-style',                                     'LF', path)      path = os.path.join(wc_dir, 'backwards-eol')  svntest.main.file_append(path, "line1\n\r")  svntest.main.run_svn(None, 'add', path)    svntest.actions.run_and_verify_svn('Illegal target', None,                                     svntest.SVNAnyOutput,                                     'propset', 'svn:eol-style',                                     'native', path)      path = os.path.join(wc_dir, 'incomplete-eol')  svntest.main.file_append(path, "line1\r\n\r")  svntest.main.run_svn(None, 'add', path)    svntest.actions.run_and_verify_svn('Illegal target', None,                                     svntest.SVNAnyOutput,                                     'propset', 'svn:eol-style',                                     'CR', path)    # Issue #2065. Do allow setting of svn:eol-style on binary files or files # with inconsistent eol types if --force is passed.    path = os.path.join(wc_dir, 'binary')  svntest.main.file_append(path, "binary")  svntest.actions.run_and_verify_svn(None, None, [],                                     'propset', '--force',                                     'svn:eol-style', 'CRLF',                                     path)     path = os.path.join(wc_dir, 'multi-eol')  svntest.actions.run_and_verify_svn(None, None, [],                                     'propset', '--force',                                     'svn:eol-style', 'LF',                                     path)      path = os.path.join(wc_dir, 'backwards-eol')  svntest.actions.run_and_verify_svn(None, None, [],                                     'propset', '--force',                                     'svn:eol-style', 'native',                                     path)      path = os.path.join(wc_dir, 'incomplete-eol')  svntest.actions.run_and_verify_svn(None, None, [],                                     'propset', '--force',                                     'svn:eol-style', 'CR',                                     path)   #----------------------------------------------------------------------# Issue #976.  When copying a file, do not determine svn:executable# and svn:mime-type values as though the file is brand new, instead# use the copied file's property values.def copy_inherits_special_props(sbox):  "file copies inherit (not re-derive) special props"  # Bootstrap  sbox.build()  wc_dir = sbox.wc_dir  orig_mime_type = 'image/fake_image'  # Create two paths  new_path1 = os.path.join(wc_dir, 'new_file1.bin')  new_path2 = os.path.join(wc_dir, 'new_file2.bin')  # Create the first path as a binary file.  To have svn treat the  # file as binary, have a 0x00 in the file.  svntest.main.file_append(new_path1, "binary file\000")  svntest.main.run_svn(None, 'add', new_path1)  # Add initial svn:mime-type to the file  svntest.main.run_svn(None, 'propset', 'svn:mime-type', orig_mime_type,                       new_path1)  # Set the svn:executable property on the file if this is a system  # that can handle chmod, in which case svn will turn on the  # executable bits on the file.  Then remove the executable bits  # manually on the file and see the value of svn:executable in the  # copied file.  if os.name == 'posix':    svntest.main.run_svn(None, 'propset', 'svn:executable', 'on', new_path1)    os.chmod(new_path1, 0644)  # Commit the file  svntest.main.run_svn(None, 'ci', '-m', 'create file and set svn:mime-type',                       wc_dir)  # Copy the file  svntest.main.run_svn(None, 'cp', new_path1, new_path2)  # Check the svn:mime-type  actual_stdout, actual_stderr = svntest.main.run_svn(None,                                                      'pg',                                                      'svn:mime-type',                                                      new_path2)  expected_stdout = [orig_mime_type + '\n']  if actual_stdout != expected_stdout:    print "svn pg svn:mime-type output does not match expected."    print "Expected standard output: ", expected_stdout, "\n"    print "Actual standard output: ", actual_stdout, "\n"    raise svntest.actions.SVNUnexpectedOutput  # Check the svn:executable value.  # The value of the svn:executable property is now always forced to '*'  if os.name == 'posix':    actual_stdout, actual_stderr = svntest.main.run_svn(None,                                                        'pg',                                                        'svn:executable',                                                        new_path2)    expected_stdout = ['*\n']    if actual_stdout != expected_stdout:      print "svn pg svn:executable output does not match expected."      print "Expected standard output: ", expected_stdout, "\n"      print "Actual standard output: ", actual_stdout, "\n"      raise svntest.actions.SVNUnexpectedOutput#----------------------------------------------------------------------def revprop_change(sbox):  "set, get, and delete a revprop change"  sbox.build()  # Create the revprop-change hook for this test  svntest.actions.enable_revprop_changes(svntest.main.current_repo_dir)  svntest.actions.run_and_verify_svn(None, None, [],                                     'propset', '--revprop', '-r', '0',                                     'cash-sound', 'cha-ching!', sbox.wc_dir)  svntest.actions.run_and_verify_svn(None, None, [],                                     'propget', '--revprop', '-r', '0',                                     'cash-sound', sbox.wc_dir)  svntest.actions.run_and_verify_svn(None, None, [],                                     'propdel', '--revprop', '-r', '0',                                     'cash-sound', sbox.wc_dir)  actual_stdout, actual_stderr = svntest.main.run_svn(None,                                                      'pg', '--revprop',                                                      '-r', '0',                                                      'cash-sound',                                                      sbox.wc_dir)  # The property should have been deleted.  regex = 'cha-ching'  for line in actual_stdout:    if re.match(regex, line):      raise svntest.Failure#----------------------------------------------------------------------def prop_value_conversions(sbox):  "some svn: properties should be converted"  # Bootstrap  sbox.build()  wc_dir = sbox.wc_dir    A_path = os.path.join(wc_dir, 'A')  B_path = os.path.join(wc_dir, 'A', 'B')  iota_path = os.path.join(wc_dir, 'iota')  lambda_path = os.path.join(wc_dir, 'A', 'B', 'lambda')  mu_path = os.path.join(wc_dir, 'A', 'mu')  # We'll use a file to set the prop values, so that weird characters  # in the props don't confuse the shell.  propval_path = os.path.join(wc_dir, 'propval.tmp')  propval_file = open(propval_path, 'wb')  def set_prop(name, value, path, valf=propval_file, valp=propval_path):    valf.seek(0)    valf.truncate(0)    valf.write(value)    valf.flush()    svntest.main.run_svn(None, 'propset', '-F', valp, name, path)  # Leading and trailing whitespace should be stripped  set_prop('svn:mime-type', ' text/html\n\n', iota_path)  set_prop('svn:mime-type', 'text/html', mu_path)  # Leading and trailing whitespace should be stripped  set_prop('svn:eol-style', '\nnative\n', iota_path)  set_prop('svn:eol-style', 'native', mu_path)  # A trailing newline should be added  set_prop('svn:ignore', '*.o\nfoo.c', A_path)

⌨️ 快捷键说明

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