Noorul Islam K M <noo...@collab.net> writes:

> Index: subversion/tests/cmdline/svnadmin_tests.py
> ===================================================================
> --- subversion/tests/cmdline/svnadmin_tests.py        (revision 1150581)
> +++ subversion/tests/cmdline/svnadmin_tests.py        (working copy)
> @@ -26,6 +26,7 @@
>  
>  # General modules
>  import os
> +import re
>  import shutil
>  import sys
>  
> @@ -33,6 +34,7 @@
>  import svntest
>  from svntest.verify import SVNExpectedStdout, SVNExpectedStderr
>  from svntest.verify import SVNUnexpectedStderr
> +from svntest.verify import UnorderedOutput
>  from svntest.main import SVN_PROP_MERGEINFO
>  
>  # (abbreviation)
> @@ -1381,6 +1383,92 @@
>      'STDERR', expected_stderr, errput):
>      raise svntest.Failure
>  
> +def test_lslocks_and_rmlocks(sbox):
> +  "test 'svnadmin lslocks' and 'svnadmin rmlocks'"
> +  
> +  def verify_lslocks_output(expected, actual):
> +    """Verify expected output and actual output match."""
> +    expected_output = svntest.verify.UnorderedRegexOutput(expected)
> +    svntest.verify.compare_and_display_lines('message', 'label',
> +                                             expected_output, output)
> +    svntest.verify.verify_exit_code(None, exit_code, 0)

So exit_code is the variable of that name that is in scope at the call
site?  I'm not much of a Python expert, is that good practice?

> +
> +  sbox.build(create_wc=False)
> +  iota_url = sbox.repo_url + '/iota'
> +  lambda_url = sbox.repo_url + '/A/B/lambda'
> +
> +  exit_code, output, errput = svntest.main.run_svnadmin("lslocks",
> +                                                        sbox.repo_dir)
> +
> +  if exit_code or errput or output:
> +    print("Error: 'lslocks' failed")
> +    raise svntest.Failure

Don't use print, use

    raise svntest.Failure("...")

> +
> +  expected_output = UnorderedOutput(
> +    ["'A/B/lambda' locked by user 'jrandom'.\n",
> +     "'iota' locked by user 'jrandom'.\n"])
> +  
> +  # Lock iota and A/B/lambda using svn client
> +  svntest.actions.run_and_verify_svn(None, expected_output,
> +                                     [], "lock", "-m", "Locking files",
> +                                     iota_url, lambda_url)
> +
> +  expected_output = [
> +      "Path: /A/B/lambda",
> +      "UUID Token: opaquelocktoken",
> +      "Owner: jrandom",
> +      "Created:",
> +      "Expires:",
> +      "Comment \(1 line\):",
> +      "Locking files",
> +      "Path: /iota",
> +      "UUID Token: opaquelocktoken.*",      
> +      "\n", # empty line    
> +      ]
> +
> +  # List all locks
> +  exit_code, output, errput = svntest.main.run_svnadmin("lslocks",
> +                                                        sbox.repo_dir)
> +  
> +  if errput:
> +    print("Error: 'lsocks' failed")
> +    raise svntest.Failure

       raise SVNUnexpectedStderr(errput)

> +
> +  verify_lslocks_output(expected_output, output)
> +
> +  # List lock in path /A
> +  exit_code, output, errput = svntest.main.run_svnadmin("lslocks",
> +                                                        sbox.repo_dir,
> +                                                        "A")
> +  if errput:
> +    print("Error: 'lsocks' failed")
> +    raise svntest.Failure
> +
> +  expected_output = [
> +    "Path: /A/B/lambda",
> +    "UUID Token: opaquelocktoken",
> +    "Owner: jrandom",
> +    "Created:",
> +    "Expires:",
> +    "Comment \(1 line\):",
> +    "Locking files",
> +    "\n", # empty line    
> +    ]
> +
> +  verify_lslocks_output(expected_output, output)
> +
> +  # Remove locks
> +  exit_code, output, errput = svntest.main.run_svnadmin("rmlocks",
> +                                                        sbox.repo_dir,
> +                                                        "iota",
> +                                                        "A/B/lambda")
> +  expected_output = UnorderedOutput(["Removed lock on '/iota'.\n",
> +                                     "Removed lock on '/A/B/lambda'.\n"])
> +  
> +  svntest.verify.verify_outputs(
> +    "Unexpected output while running 'svnadmin rmlocks'.",
> +    output, [], expected_output, None)
> +
>  ########################################################################
>  # Run the tests
>  
> @@ -1410,6 +1498,7 @@
>                hotcopy_symlink,
>                load_bad_props,
>                verify_non_utf8_paths,
> +              test_lslocks_and_rmlocks,
>               ]
>  
>  if __name__ == '__main__':

-- 
uberSVN: Apache Subversion Made Easy
http://www.uberSVN.com

Reply via email to