You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by ph...@apache.org on 2014/04/03 12:21:45 UTC

svn commit: r1584336 - /subversion/trunk/subversion/tests/cmdline/lock_tests.py

Author: philip
Date: Thu Apr  3 10:21:45 2014
New Revision: 1584336

URL: http://svn.apache.org/r1584336
Log:
New test to exercise multiple path lock/unlock where one path 
has a pre- hook failure.

* subversion/tests/cmdline/lock_tests.py
  (many_locks_hooks): New test.
  (test_list): Add new test.

Modified:
    subversion/trunk/subversion/tests/cmdline/lock_tests.py

Modified: subversion/trunk/subversion/tests/cmdline/lock_tests.py
URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/tests/cmdline/lock_tests.py?rev=1584336&r1=1584335&r2=1584336&view=diff
==============================================================================
--- subversion/trunk/subversion/tests/cmdline/lock_tests.py (original)
+++ subversion/trunk/subversion/tests/cmdline/lock_tests.py Thu Apr  3 10:21:45 2014
@@ -2178,6 +2178,58 @@ def non_root_locks(sbox):
   expected_status.tweak('A/D/G/pi', writelocked=None)
   svntest.actions.run_and_verify_status(wc_dir, expected_status)
 
+def many_locks_hooks(sbox):
+  "many locks with hooks"
+
+  sbox.build()
+  wc_dir = sbox.wc_dir
+
+  # Prevent locking '/A/D/G/pi'.
+  svntest.main.create_python_hook_script(os.path.join(sbox.repo_dir,
+                                                      'hooks', 'pre-lock'),
+                                         'import sys\n'
+                                         'if sys.argv[2] == "/A/D/G/pi":\n'
+                                         '  sys.exit(1)\n'
+                                         'sys.exit(0)\n')
+
+  # Prevent unlocking '/A/mu'.
+  svntest.main.create_python_hook_script(os.path.join(sbox.repo_dir,
+                                                      'hooks', 'pre-unlock'),
+                                         'import sys\n'
+                                         'if sys.argv[2] == "/A/mu":\n'
+                                         '  sys.exit(1)\n'
+                                         'sys.exit(0)\n')
+
+  svntest.actions.run_and_verify_svn2(None,
+                                      ".* locked",
+                                      "svn: warning: W165001: .*", 0,
+                                      'lock',
+                                      sbox.ospath('iota'),
+                                      sbox.ospath('A/mu'),
+                                      sbox.ospath('A/B/E/alpha'),
+                                      sbox.ospath('A/D/G/pi'),
+                                      sbox.ospath('A/D/G/rho'))
+
+  expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
+  expected_status.tweak('iota', 'A/mu', 'A/B/E/alpha', 'A/D/G/rho',
+                        writelocked='K')
+  svntest.actions.run_and_verify_status(wc_dir, expected_status)
+
+  svntest.actions.run_and_verify_svn2(None,
+                                      ".* unlocked",
+                                      "svn: warning: W165001: .*", 0,
+                                      'unlock',
+                                      sbox.ospath('iota'),
+                                      sbox.ospath('A/mu'),
+                                      sbox.ospath('A/B/E/alpha'),
+                                      sbox.ospath('A/D/G/rho'))
+
+  expected_status.tweak('iota', 'A/B/E/alpha', 'A/D/G/rho',
+                        writelocked=None)
+  svntest.actions.run_and_verify_status(wc_dir, expected_status)
+
+
+
 ########################################################################
 # Run the tests
 
@@ -2238,6 +2290,7 @@ test_list = [ None,
               dav_lock_timeout,
               create_dav_lock_timeout,
               non_root_locks,
+              many_locks_hooks,
             ]
 
 if __name__ == '__main__':