Alien-SVN

 view release on metacpan or  search on metacpan

src/subversion/subversion/tests/cmdline/lock_tests.py  view on Meta::CPAN


  svntest.actions.run_and_verify_status(wc_dir, expected_status)

  # Make sure the unlock operation fails as pre-unlock hook blocks it.
  expected_unlock_fail_err_re = ".*error text|.*500 Internal Server Error"
  svntest.actions.run_and_verify_svn2(None, None, expected_unlock_fail_err_re,
                                      1, 'unlock', pi_path)
  svntest.actions.run_and_verify_status(wc_dir, expected_status)

#----------------------------------------------------------------------
def lock_invalid_token(sbox):
  "verify pre-lock hook returning invalid token"

  sbox.build()

  hook_path = os.path.join(sbox.repo_dir, 'hooks', 'pre-lock')
  svntest.main.create_python_hook_script(hook_path,
    '# encoding=utf-8\n'
    'import sys\n'
    'sys.stdout.write("тест")\n'
    'sys.exit(0)\n')

  fname = 'iota'
  file_path = os.path.join(sbox.wc_dir, fname)

  svntest.actions.run_and_verify_svn2(None, None,
                                      "svn: warning: W160037: " \
                                      ".*scheme.*'opaquelocktoken'", 0,
                                      'lock', '-m', '', file_path)

@Issue(3105)
def lock_multi_wc(sbox):
  "obtain locks in multiple working copies in one go"

  sbox.build()

  sbox2 = sbox.clone_dependent(copy_wc=True)

  wc_name = os.path.basename(sbox.wc_dir)
  wc2_name = os.path.basename(sbox2.wc_dir)

  expected_output = svntest.verify.UnorderedOutput([
    '\'%s\' locked by user \'jrandom\'.\n' % os.path.join(wc_name, 'iota'),
    '\'%s\' locked by user \'jrandom\'.\n' % os.path.join(wc2_name, 'A', 'mu'),
  ])

  svntest.actions.run_and_verify_svn(None, expected_output, [],
                                     'lock', sbox.ospath('iota'),
                                             sbox2.ospath('A/mu'))

  expected_output = svntest.verify.UnorderedOutput([
    '\'%s\' unlocked.\n' % os.path.join(wc_name, 'iota'),
    '\'%s\' unlocked.\n' % os.path.join(wc2_name, 'A', 'mu'),
  ])
  svntest.actions.run_and_verify_svn(None, expected_output, [],
                                     'unlock', sbox.ospath('iota'),
                                               sbox2.ospath('A/mu'))

@Issue(3378)
def locks_stick_over_switch(sbox):
  "locks are kept alive over switching"

  sbox.build()
  wc_dir = sbox.wc_dir
  repo_url = sbox.repo_url

  svntest.actions.run_and_verify_svn(None, None, [],
                                     'cp', sbox.ospath('A'), repo_url + '/AA',
                                     '-m', '')

  expected_output = svntest.verify.UnorderedOutput([
    '\'iota\' locked by user \'jrandom\'.\n',
    '\'%s\' locked by user \'jrandom\'.\n' % os.path.join('A', 'D', 'H', 'chi'),
    '\'%s\' locked by user \'jrandom\'.\n' % os.path.join('A', 'mu'),
  ])
  svntest.actions.run_and_verify_svn(None, expected_output, [],
                                     'lock', sbox.ospath('A/D/H/chi'),
                                             sbox.ospath('A/mu'),
                                             sbox.ospath('iota'))

  expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
  expected_status.tweak('A/D/H/chi', 'A/mu', 'iota', writelocked='K')

  # Make sure the file is still locked
  svntest.actions.run_and_verify_status(wc_dir, expected_status)

  expected_output = svntest.wc.State(wc_dir, {
  })

  expected_status.tweak(wc_rev=2)
  expected_status.tweak('', wc_rev=1)
  expected_status.tweak('iota', writelocked='K', wc_rev=1)

  switched_status = expected_status.copy()
  switched_status.tweak(writelocked=None)
  switched_status.tweak('iota', writelocked='K')
  switched_status.tweak('A', switched='S')

  svntest.actions.run_and_verify_switch(wc_dir, sbox.ospath('A'),
                                        repo_url + '/AA',
                                        expected_output, None, switched_status)

  # And now switch back to verify that the locks reappear
  expected_output = svntest.wc.State(wc_dir, {
  })
  svntest.actions.run_and_verify_switch(wc_dir, sbox.ospath('A'),
                                        repo_url + '/A',
                                        expected_output, None, expected_status)

@Issue(4304)
def lock_unlock_deleted(sbox):
  "lock/unlock a deleted file"

  sbox.build()
  wc_dir = sbox.wc_dir
  svntest.actions.run_and_verify_svn(None, None, [],
                                     'rm', sbox.ospath('A/mu'))

  expected_status = svntest.actions.get_virginal_state(wc_dir, 1)
  expected_status.tweak('A/mu', status='D ')
  svntest.actions.run_and_verify_status(wc_dir, expected_status)



( run in 0.620 second using v1.01-cache-2.11-cpan-df04353d9ac )