[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: svn commit: r1090288 - in /subversion/trunk/subversion/tests/cmdline: svntest/actions.py update_tests.py

From: Daniel Shahaf <d.s_at_daniel.shahaf.name>
Date: Thu, 21 Apr 2011 20:35:40 +0300

rhuijben_at_apache.org wrote on Fri, Apr 08, 2011 at 15:06:45 -0000:
> Author: rhuijben
> Date: Fri Apr 8 15:06:44 2011
> New Revision: 1090288
>
> URL: http://svn.apache.org/viewvc?rev=1090288&view=rev
> Log:
> Fix a test for wc-ng, by removing the assumption that you can chdir to any
> directory in a working copy, including deleted ones.
>
> Fixing of this test also required r1090281.
>
> * subversion/tests/cmdline/svntest/actions.py
> (deep_trees_skipping_on_update): Don't chdir, just check the path in the
> result.
>
> * subversion/tests/cmdline/update_tests.py
> (tree_conflicts_on_update_2_3): Remove XFail marker and disable invalid
> set until somebody understands why there are too many items there.
>
> Modified:
> subversion/trunk/subversion/tests/cmdline/svntest/actions.py
> subversion/trunk/subversion/tests/cmdline/update_tests.py
>
> Modified: subversion/trunk/subversion/tests/cmdline/svntest/actions.py
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/svntest/actions.py?rev=1090288&r1=1090287&r2=1090288&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/tests/cmdline/svntest/actions.py (original)
> +++ subversion/trunk/subversion/tests/cmdline/svntest/actions.py Fri Apr 8 15:06:44 2011
> @@ -2560,10 +2560,9 @@ def deep_trees_skipping_on_update(sbox,
> # This time, cd to the subdir before updating it.
> was_cwd = os.getcwd()
> for path, skipped in chdir_skip_paths:
> - #print("CHDIR TO: %s" % j(base, path))
> - os.chdir(j(base, path))
> - run_and_verify_update('',
> - wc.State('', {skipped : Item(verb='Skipped')}),
> + p = j(base, path)
> + run_and_verify_update(p,
> + wc.State(p, {skipped : Item(verb='Skipped')}),
> None, None)
> os.chdir(was_cwd)
>
>
> Modified: subversion/trunk/subversion/tests/cmdline/update_tests.py
> URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/update_tests.py?rev=1090288&r1=1090287&r2=1090288&view=diff
> ==============================================================================
> --- subversion/trunk/subversion/tests/cmdline/update_tests.py (original)
> +++ subversion/trunk/subversion/tests/cmdline/update_tests.py Fri Apr 8 15:06:44 2011
> @@ -4573,7 +4573,6 @@ def tree_conflicts_on_update_2_2(sbox):
> #
> # Marked as XFail until issue #3329 is resolved.
> @Issue(3329)
> -_at_XFail()
> def tree_conflicts_on_update_2_3(sbox):
> "tree conflicts 2.3: skip on 2nd update"
>
> @@ -4622,7 +4621,9 @@ def tree_conflicts_on_update_2_3(sbox):
> ('D', 'D1'),
> ('F', 'alpha'),
> ('DDD', 'D1'),
> - ('', 'D/D1', 'F/alpha', 'DD/D1', 'DF/D1', 'DDD/D1', 'DDF/D1'),
> +
> + # BH: The next line gives an unpack error. Please fix.
> + #('', 'D/D1', 'F/alpha', 'DD/D1', 'DF/D1', 'DDD/D1', 'DDF/D1'),
> ]

I assume it gives an unpack error because it won't unpack the 7-tuple
into a 2-tuple in 'for foo, bar in the_7_tuple'.

I've tried to fix it as follows,

[[[
Index: subversion/tests/cmdline/update_tests.py
===================================================================
--- subversion/tests/cmdline/update_tests.py (revision 1095774)
+++ subversion/tests/cmdline/update_tests.py (working copy)
@@ -4624,7 +4624,7 @@ def tree_conflicts_on_update_2_3(sbox):
     ('DDD', 'D1'),
 
     # BH: The next line gives an unpack error. Please fix.
- #('', 'D/D1', 'F/alpha', 'DD/D1', 'DF/D1', 'DDD/D1', 'DDF/D1'),
+ ('', ('D/D1', 'F/alpha', 'DD/D1', 'DF/D1', 'DDD/D1', 'DDF/D1')),
     ]
   # Note: We don't step *into* a directory that's deleted in the repository.
   # E.g. ('DDD/D1/D2', '') would correctly issue a "path does not
Index: subversion/tests/cmdline/svntest/actions.py
===================================================================
--- subversion/tests/cmdline/svntest/actions.py (revision 1095774)
+++ subversion/tests/cmdline/svntest/actions.py (working copy)
@@ -2564,15 +2564,22 @@ def deep_trees_skipping_on_update(sbox, test_case,
 
   run_and_verify_unquiet_status(base, x_status)
 
+ def set_of_skipped_paths(skipped):
+ if isinstance(skipped, type('')):
+ return (skipped,) # single-element tuple
+ else:
+ return skipped # is probably a tuple
+
   # Try to update each in-conflict subtree. Expect a 'Skipped' output for
   # each, and the WC status to be unchanged.
   # This time, cd to the subdir before updating it.
   was_cwd = os.getcwd()
   for path, skipped in chdir_skip_paths:
     p = j(base, path)
- run_and_verify_update(p,
- wc.State(p, {skipped : Item(verb='Skipped')}),
- None, None)
+ for skipped_path in set_of_skipped_paths(skipped):
+ run_and_verify_update(p,
+ wc.State(p, {skipped_path : Item(verb='Skipped')}),
+ None, None)
   os.chdir(was_cwd)
 
   run_and_verify_unquiet_status(base, x_status)
Index:
]]]

but then it fails with:

[[[
% ../runpytest update tree_conflicts_on_update_2_3
Couldn't find node 'DDD' in expected output tree
 * Node name: DDD
    Path: svn-test-work/working_copies/update_tests-47/local_leaf_edit_incoming_tree_del_skipping/DDD
    Contents: N/A (node is a directory)
    Properties: {}
    Attributes: {}
    Children: 1
Unequal at node local_leaf_edit_incoming_tree_del_skipping
Unequal at node update_tests-47
Unequal at node working_copies
Unequal at node svn-test-work
ACTUAL OUTPUT TREE:
svntest.wc.State(wc_dir, {})CWD: /home/daniel/src/svn/t1/subversion/tests/cmdline
EXCEPTION: SVNTreeUnequal
]]]

Does that help? I have not yet looked further into it (because I don't
know the surrounding code or the context of the change).

Daniel
(and... by the way, the helper is wrong. It should be a helper that
allows to write 'for path, set_of_skipped_paths in foo' rather than what
the above path implements.)
Received on 2011-04-21 19:36:17 CEST

This is an archived mail posted to the Subversion Dev mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.