switch_tests.py
来自「linux subdivision ying gai ke yi le ba」· Python 代码 · 共 831 行 · 第 1/3 页
PY
831 行
# Create expected output tree for an update of wc_backup.
expected_output = svntest.wc.State(wc_dir, {
'iota' : Item(status='U '),
'A/D/gamma' : Item(status='U '),
'A/B/pi' : Item(status='U '),
'A/B/Z' : Item(status='A '),
'A/B/Z/zeta' : Item(status='A '),
'A/D/G/pi' : Item(status='U '),
'A/D/G/Z' : Item(status='A '),
'A/D/G/Z/zeta' : Item(status='A '),
})
# Create expected disk tree for the update
expected_disk = get_routine_disk_state(wc_dir)
expected_disk.tweak('iota', contents="This is the file 'gamma'.apple")
expected_disk.tweak('A/D/gamma', contents="This is the file 'gamma'.apple")
expected_disk.tweak('A/B/pi', contents="This is the file 'pi'.watermelon")
expected_disk.tweak('A/D/G/pi', contents="This is the file 'pi'.watermelon")
expected_disk.add({
'A/B/Z' : Item(),
'A/B/Z/zeta' : Item(contents="This is the file 'zeta'."),
'A/D/G/Z' : Item(),
'A/D/G/Z/zeta' : Item(contents="This is the file 'zeta'."),
})
# Create expected status tree for the update.
expected_status = get_routine_status_state(wc_dir)
expected_status.tweak(repos_rev=2, wc_rev=2)
expected_status.add({
'A/D/G/Z' : Item(status=' ', wc_rev=2, repos_rev=2),
'A/D/G/Z/zeta' : Item(status=' ', wc_rev=2, repos_rev=2),
'A/B/Z' : Item(status=' ', wc_rev=2, repos_rev=2),
'A/B/Z/zeta' : Item(status=' ', wc_rev=2, repos_rev=2),
})
expected_status.tweak('iota', 'A/B', switched='S')
svntest.actions.run_and_verify_update(wc_dir,
expected_output,
expected_disk,
expected_status)
#----------------------------------------------------------------------
def full_rev_update(sbox):
"reverse update wc that contains switched things"
sbox.build()
wc_dir = sbox.wc_dir
# Setup some switched things (don't bother verifying)
do_routine_switching(wc_dir, 0)
# Commit some stuff (don't bother verifying)
commit_routine_switching(wc_dir, 0)
# Update to HEAD (tested elsewhere)
svntest.main.run_svn (None, 'up', wc_dir)
# Some convenient path variables
iota_path = os.path.join(wc_dir, 'iota')
gamma_path = os.path.join(wc_dir, 'A', 'D', 'gamma')
Bpi_path = os.path.join(wc_dir, 'A', 'B', 'pi')
BZ_path = os.path.join(wc_dir, 'A', 'B', 'Z')
Gpi_path = os.path.join(wc_dir, 'A', 'D', 'G', 'pi')
GZ_path = os.path.join(wc_dir, 'A', 'D', 'G', 'Z')
# Now, reverse update, back to the pre-commit state.
expected_output = svntest.wc.State(wc_dir, {
'iota' : Item(status='U '),
'A/D/gamma' : Item(status='U '),
'A/B/pi' : Item(status='U '),
'A/B/Z' : Item(status='D '),
'A/D/G/pi' : Item(status='U '),
'A/D/G/Z' : Item(status='D '),
})
# Create expected disk tree
expected_disk = get_routine_disk_state(wc_dir)
# Create expected status
expected_status = get_routine_status_state(wc_dir)
expected_status.tweak(repos_rev=2)
expected_status.tweak('iota', 'A/B', switched='S')
svntest.actions.run_and_verify_update(wc_dir,
expected_output,
expected_disk,
expected_status,
None, None, None,
None, None, 1,
'-r', '1', wc_dir)
#----------------------------------------------------------------------
def update_switched_things(sbox):
"update switched wc things to HEAD"
sbox.build()
wc_dir = sbox.wc_dir
# Setup some switched things (don't bother verifying)
do_routine_switching(wc_dir, 0)
# Copy wc_dir to a backup location
wc_backup = sbox.add_wc_path('backup')
svntest.actions.duplicate_dir(wc_dir, wc_backup)
# Commit some stuff (don't bother verifying)
commit_routine_switching(wc_backup, 0)
# Some convenient path variables
iota_path = os.path.join(wc_dir, 'iota')
B_path = os.path.join(wc_dir, 'A', 'B')
# Create expected output tree for an update of wc_backup.
expected_output = svntest.wc.State(wc_dir, {
'iota' : Item(status='U '),
'A/B/pi' : Item(status='U '),
'A/B/Z' : Item(status='A '),
'A/B/Z/zeta' : Item(status='A '),
})
# Create expected disk tree for the update
expected_disk = get_routine_disk_state(wc_dir)
expected_disk.tweak('iota', contents="This is the file 'gamma'.apple")
expected_disk.tweak('A/B/pi', contents="This is the file 'pi'.watermelon")
expected_disk.add({
'A/B/Z' : Item(),
'A/B/Z/zeta' : Item("This is the file 'zeta'."),
})
# Create expected status tree for the update.
expected_status = get_routine_status_state(wc_dir)
expected_status.tweak(repos_rev=2)
expected_status.tweak('iota', 'A/B', switched='S')
expected_status.tweak('A/B', 'A/B/pi', 'A/B/rho', 'A/B/tau', 'iota',
wc_rev=2)
expected_status.add({
'A/B/Z' : Item(status=' ', wc_rev=2, repos_rev=2),
'A/B/Z/zeta' : Item(status=' ', wc_rev=2, repos_rev=2),
})
svntest.actions.run_and_verify_update(wc_dir,
expected_output,
expected_disk,
expected_status,
None, None, None,
None, None, 0,
B_path,
iota_path)
#----------------------------------------------------------------------
def rev_update_switched_things(sbox):
"reverse update switched wc things to an older rev"
sbox.build()
wc_dir = sbox.wc_dir
# Setup some switched things (don't bother verifying)
do_routine_switching(wc_dir, 0)
# Commit some stuff (don't bother verifying)
commit_routine_switching(wc_dir, 0)
# Some convenient path variables
iota_path = os.path.join(wc_dir, 'iota')
B_path = os.path.join(wc_dir, 'A', 'B')
# Update to HEAD (tested elsewhere)
svntest.main.run_svn (None, 'up', wc_dir)
# Now, reverse update, back to the pre-commit state.
expected_output = svntest.wc.State(wc_dir, {
'iota' : Item(status='U '),
'A/B/pi' : Item(status='U '),
'A/B/Z' : Item(status='D '),
})
# Create expected disk tree
expected_disk = get_routine_disk_state(wc_dir)
expected_disk.tweak('A/D/gamma', contents="This is the file 'gamma'.apple")
expected_disk.tweak('A/D/G/pi', contents="This is the file 'pi'.watermelon")
expected_disk.add({
'A/D/G/Z' : Item(),
'A/D/G/Z/zeta' : Item("This is the file 'zeta'."),
})
# Create expected status tree for the update.
expected_status = get_routine_status_state(wc_dir)
expected_status.tweak(repos_rev=2, wc_rev=2)
expected_status.tweak('iota', 'A/B', switched='S')
expected_status.tweak('A/B', 'A/B/pi', 'A/B/rho', 'A/B/tau', 'iota',
wc_rev=1)
expected_status.add({
'A/D/G/Z' : Item(status=' ', wc_rev=2, repos_rev=2),
'A/D/G/Z/zeta' : Item(status=' ', wc_rev=2, repos_rev=2),
})
svntest.actions.run_and_verify_update(wc_dir,
expected_output,
expected_disk,
expected_status,
None, None, None,
None, None, 1,
'-r', '1',
B_path,
iota_path)
#----------------------------------------------------------------------
def log_switched_file(sbox):
"show logs for a switched file"
sbox.build()
wc_dir = sbox.wc_dir
# Setup some switched things (don't bother verifying)
do_routine_switching(wc_dir, 0)
# edit and commit switched file 'iota'
iota_path = os.path.join(wc_dir, 'iota')
svntest.main.run_svn (None, 'ps', 'x', 'x', iota_path)
svntest.main.run_svn (None, 'ci', '-m',
'set prop on switched iota',
iota_path)
# log switched file 'iota'
output, error = svntest.main.run_svn (None, 'log', iota_path)
for line in output:
if line.find("set prop on switched iota") != -1:
break
else:
raise svntest.Failure
#----------------------------------------------------------------------
def relocate_deleted_missing_copied(sbox):
"relocate with deleted, missing and copied entries"
sbox.build()
wc_dir = sbox.wc_dir
# Delete A/mu to create a deleted entry for mu in A/.svn/entries
mu_path = os.path.join(wc_dir, 'A', 'mu')
svntest.actions.run_and_verify_svn(None, None, [], 'rm', mu_path)
expected_status = svntest.actions.get_virginal_state(wc_dir, 2)
expected_status.tweak(wc_rev=1)
expected_status.remove('A/mu')
expected_output = svntest.wc.State(wc_dir, {
'A/mu' : Item(verb='Deleting'),
})
svntest.actions.run_and_verify_commit (wc_dir,
expected_output,
expected_status,
None, None, None, None, None,
wc_dir)
# Remove A/B/F to create a missing entry
svntest.main.safe_rmtree(os.path.join(wc_dir, 'A', 'B', 'F'))
# Copy A/D/H to A/D/H2
H_path = os.path.join(wc_dir, 'A', 'D', 'H')
H2_path = os.path.join(wc_dir, 'A', 'D', 'H2')
svntest.actions.run_and_verify_svn(None, None, [], 'copy',
H_path, H2_path)
expected_status.add({
'A/D/H2' : Item(status='A ', wc_rev='-', copied='+', repos_rev=2),
'A/D/H2/chi' : Item(status=' ', wc_rev='-', copied='+', repos_rev=2),
'A/D/H2/omega' : Item(status=' ', wc_rev='-', copied='+', repos_rev=2),
'A/D/H2/psi' : Item(status=' ', wc_rev='-', copied='+', repos_rev=2),
})
expected_status.remove('A/B/F')
svntest.actions.run_and_verify_status(wc_dir, expected_status)
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?