On Wed, Nov 17, 2010 at 2:14 AM, Johan Corveleyn <jcor...@gmail.com> wrote:
> The attached patch expands the test "move_file_back_and_forth"
> (copy_tests.py 45) as a regression test for issue#3429.
>
> [[[
> Expand move_file_back_and_forth test to verify issue #3429
> ("svn mv A B; svn mv B A" generates replace without history).
>
> * subversion/tests/cmdline/copy_tests.py
>  (move_file_back_and_forth): Check expected status before commit.
> ]]]

I just realized that I can add a similar check to
move_dir_back_and_forth. Here is a second patch that expands both
tests.

(note: can the "if svntest.main.wc_is_singledb(wc_dir)" be dropped
from move_dir_back_and_forth?)

Log message:
[[[
Expand move_file_back_and_forth and move_dir_back_and_forth tests to verify
issue #3429 ("svn mv A B; svn mv B A" generates replace without history).

* subversion/tests/cmdline/copy_tests.py
  (move_file_back_and_forth): Check expected status before commit.
  (move_dir_back_and_forth): Check expected status after executing the moves.
]]]

Cheers,
-- 
Johan
Index: subversion/tests/cmdline/copy_tests.py
===================================================================
--- subversion/tests/cmdline/copy_tests.py      (revision 1035851)
+++ subversion/tests/cmdline/copy_tests.py      (working copy)
@@ -2428,17 +2428,27 @@ def move_file_back_and_forth(sbox):
   svntest.actions.run_and_verify_svn(None, None, [], 'mv',
                                      rho_move_path, rho_path)
 
+  # Create expected status tree before commit
+  expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
+  expected_status.add({
+    'A/D/G/rho' : Item(status='R ', copied='+', wc_rev='-'),
+    })
+
+  # Test status before commit
+  svntest.actions.run_and_verify_status(wc_dir, expected_status)
+
   # Created expected output tree for 'svn ci':
   expected_output = svntest.wc.State(wc_dir, {
     'A/D/G/rho' : Item(verb='Replacing'),
     })
 
-  # Create expected status tree
+  # Create expected status tree after commit
   expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
   expected_status.add({
     'A/D/G/rho' : Item(status='  ', wc_rev=2),
     })
 
+  # Test commit output and status
   svntest.actions.run_and_verify_commit(wc_dir,
                                         expected_output,
                                         expected_status,
@@ -2474,6 +2484,23 @@ def move_dir_back_and_forth(sbox):
   svntest.actions.run_and_verify_svn(None, None, expected_err,
                                      'mv', D_move_path, D_path)
 
+  if svntest.main.wc_is_singledb(wc_dir):
+    # Verify if status indicates a replace with history
+    expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
+    expected_status.add({
+      'A/D'               : Item(status='R ', copied='+', wc_rev='-'),
+      'A/D/G'             : Item(status='  ', copied='+', wc_rev='-'),
+      'A/D/G/pi'          : Item(status='  ', copied='+', wc_rev='-'),
+      'A/D/G/rho'         : Item(status='  ', copied='+', wc_rev='-'),
+      'A/D/G/tau'         : Item(status='  ', copied='+', wc_rev='-'),
+      'A/D/gamma'         : Item(status='  ', copied='+', wc_rev='-'),
+      'A/D/H'             : Item(status='  ', copied='+', wc_rev='-'),
+      'A/D/H/chi'         : Item(status='  ', copied='+', wc_rev='-'),
+      'A/D/H/omega'       : Item(status='  ', copied='+', wc_rev='-'),
+      'A/D/H/psi'         : Item(status='  ', copied='+', wc_rev='-'),
+      })
+    svntest.actions.run_and_verify_status(wc_dir, expected_status)
+
 def copy_move_added_paths(sbox):
   "copy and move added paths without commits"
 

Reply via email to