You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ju...@apache.org on 2010/11/05 04:09:38 UTC
svn commit: r1031411 -
/subversion/trunk/subversion/tests/cmdline/copy_tests.py
Author: julianfoad
Date: Fri Nov 5 03:09:38 2010
New Revision: 1031411
URL: http://svn.apache.org/viewvc?rev=1031411&view=rev
Log:
Expand the copy-over-deleted-node tests.
* subversion/tests/cmdline/copy_tests.py
(copy_repos_over_deleted_same_kind, copy_repos_over_deleted_other_kind):
Check expected status.
(copy_wc_over_deleted_same_kind, copy_wc_over_deleted_other_kind):
New tests.
(test_list): Add the new tests.
Modified:
subversion/trunk/subversion/tests/cmdline/copy_tests.py
Modified: subversion/trunk/subversion/tests/cmdline/copy_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/copy_tests.py?rev=1031411&r1=1031410&r2=1031411&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/copy_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/copy_tests.py Fri Nov 5 03:09:38 2010
@@ -4835,27 +4835,87 @@ def delete_replace_delete(sbox):
# Currently fails because pi, rho, tau get left behind
svntest.actions.run_and_verify_status(wc_dir, expected_status)
+A_B_children = ['A/B/lambda', 'A/B/F', 'A/B/E/alpha', 'A/B/E/beta', 'A/B/E']
+A_D_children = ['A/D/gamma', 'A/D/G', 'A/D/G/pi', 'A/D/G/rho', 'A/D/G/tau',
+ 'A/D/H', 'A/D/H/chi', 'A/D/H/psi', 'A/D/H/omega']
+
def copy_repos_over_deleted_same_kind(sbox):
"copy repos node over deleted node, same kind"
sbox.build(read_only = True)
+ expected_status = svntest.actions.get_virginal_state(sbox.wc_dir, 1)
main.run_svn(None, 'rm', os.path.join(sbox.wc_dir, 'iota'),
os.path.join(sbox.wc_dir, 'A/B'))
+ expected_status.tweak('iota', 'A/B', *A_B_children, status='D ')
main.run_svn(None, 'cp', sbox.repo_url + '/A/mu',
os.path.join(sbox.wc_dir, 'iota'))
+ expected_status.tweak('iota', status='R ', wc_rev='-', copied='+')
main.run_svn(None, 'cp', sbox.repo_url + '/A/D',
os.path.join(sbox.wc_dir, 'A/B'))
+ expected_status.tweak('A/B', status='R ', wc_rev='-', copied='+')
+ for child in A_D_children:
+ expected_status.add({ child.replace('A/D', 'A/B'):
+ Item(status=' ', wc_rev='-', copied='+')})
+ svntest.actions.run_and_verify_status(sbox.wc_dir, expected_status)
def copy_repos_over_deleted_other_kind(sbox):
"copy repos node over deleted node, other kind"
sbox.build(read_only = True)
+ expected_status = svntest.actions.get_virginal_state(sbox.wc_dir, 1)
main.run_svn(None, 'rm', os.path.join(sbox.wc_dir, 'iota'),
os.path.join(sbox.wc_dir, 'A/B'))
+ expected_status.tweak('iota', 'A/B', *A_B_children, status='D ')
main.run_svn(None, 'cp', sbox.repo_url + '/iota',
os.path.join(sbox.wc_dir, 'A/B'))
+ expected_status.tweak('A/B', status='R ', wc_rev='-', copied='+')
+ expected_status.remove(*A_B_children)
main.run_svn(None, 'cp', sbox.repo_url + '/A/B',
os.path.join(sbox.wc_dir, 'iota'))
+ expected_status.tweak('iota', status='R ', wc_rev='-', copied='+')
+ for child in A_B_children:
+ expected_status.add({ child.replace('A/B', 'iota'):
+ Item(status=' ', wc_rev='-', copied='+')})
+ svntest.actions.run_and_verify_status(sbox.wc_dir, expected_status)
+
+def copy_wc_over_deleted_same_kind(sbox):
+ "copy WC node over a deleted node, same kind"
+ sbox.build(read_only = True)
+
+ expected_status = svntest.actions.get_virginal_state(sbox.wc_dir, 1)
+ main.run_svn(None, 'rm', os.path.join(sbox.wc_dir, 'iota'),
+ os.path.join(sbox.wc_dir, 'A/B'))
+ expected_status.tweak('iota', 'A/B', *A_B_children, status='D ')
+ main.run_svn(None, 'cp', os.path.join(sbox.wc_dir, 'A/mu'),
+ os.path.join(sbox.wc_dir, 'iota'))
+ expected_status.tweak('iota', status='R ', wc_rev='-', copied='+')
+ main.run_svn(None, 'cp', os.path.join(sbox.wc_dir, 'A/D'),
+ os.path.join(sbox.wc_dir, 'A/B'))
+ expected_status.tweak('A/B', status='R ', wc_rev='-', copied='+')
+ for child in A_D_children:
+ expected_status.add({ child.replace('A/D', 'A/B'):
+ Item(status=' ', wc_rev='-', copied='+')})
+ svntest.actions.run_and_verify_status(sbox.wc_dir, expected_status)
+
+def copy_wc_over_deleted_other_kind(sbox):
+ "copy WC node over deleted node, other kind"
+ sbox.build(read_only = True)
+
+ expected_status = svntest.actions.get_virginal_state(sbox.wc_dir, 1)
+ main.run_svn(None, 'rm', os.path.join(sbox.wc_dir, 'iota'),
+ os.path.join(sbox.wc_dir, 'A/B'))
+ expected_status.tweak('iota', 'A/B', *A_B_children, status='D ')
+ main.run_svn(None, 'cp', os.path.join(sbox.wc_dir, 'A/mu'),
+ os.path.join(sbox.wc_dir, 'A/B'))
+ expected_status.tweak('A/B', status='R ', wc_rev='-', copied='+')
+ expected_status.remove(*A_B_children)
+ main.run_svn(None, 'cp', os.path.join(sbox.wc_dir, 'A/D'),
+ os.path.join(sbox.wc_dir, 'iota'))
+ expected_status.tweak('iota', status='R ', wc_rev='-', copied='+')
+ for child in A_D_children:
+ expected_status.add({ child.replace('A/D', 'iota'):
+ Item(status=' ', wc_rev='-', copied='+')})
+ svntest.actions.run_and_verify_status(sbox.wc_dir, expected_status)
########################################################################
@@ -4958,6 +5018,8 @@ test_list = [ None,
delete_replace_delete,
copy_repos_over_deleted_same_kind,
XFail(copy_repos_over_deleted_other_kind),
+ copy_wc_over_deleted_same_kind,
+ copy_wc_over_deleted_other_kind,
]
if __name__ == '__main__':