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__':