Reworked the svnwrap tests to use the same fixture system as I created for the hgsubversion tests since it is much much faster.

This commit is contained in:
Augie Fackler 2008-10-09 23:37:22 -05:00
parent 0463db2112
commit cfee1e9650
3 changed files with 730 additions and 94 deletions

View File

@ -0,0 +1,352 @@
SVN-fs-dump-format-version: 2
UUID: e72213dc-9746-48d2-846a-a19c2c569b0d
Revision-number: 0
Prop-content-length: 56
Content-length: 56
K 8
svn:date
V 27
2008-10-09T14:46:06.470091Z
PROPS-END
Revision-number: 1
Prop-content-length: 111
Content-length: 111
K 7
svn:log
V 11
Empty dirs.
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-09T14:46:07.147162Z
PROPS-END
Node-path: branches
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10
PROPS-END
Node-path: tags
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10
PROPS-END
Node-path: trunk
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10
PROPS-END
Revision-number: 2
Prop-content-length: 114
Content-length: 114
K 7
svn:log
V 14
Initial Files.
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-09T14:46:08.147874Z
PROPS-END
Node-path: trunk/alpha
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 15
Text-content-md5: 8717538ba2f18a613eaa4892e8d178f7
Content-length: 25
PROPS-END
This is alpha.
Node-path: trunk/beta
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 14
Text-content-md5: 952a13b33256f343982d0a8f0e0af277
Content-length: 24
PROPS-END
This is beta.
Node-path: trunk/delta
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 15
Text-content-md5: e48d0bca73f04e800e7bd9fb58d49a62
Content-length: 25
PROPS-END
This is delta.
Revision-number: 3
Prop-content-length: 110
Content-length: 110
K 7
svn:log
V 10
Tag rev 1.
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-09T14:46:10.131807Z
PROPS-END
Node-path: tags/rev1
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 1
Node-copyfrom-path: trunk
Prop-content-length: 34
Content-length: 34
K 13
svn:mergeinfo
V 0
PROPS-END
Node-path: tags/rev1/alpha
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/alpha
Text-copy-source-md5: 8717538ba2f18a613eaa4892e8d178f7
Node-path: tags/rev1/beta
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/beta
Text-copy-source-md5: 952a13b33256f343982d0a8f0e0af277
Node-path: tags/rev1/delta
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/delta
Text-copy-source-md5: e48d0bca73f04e800e7bd9fb58d49a62
Revision-number: 4
Prop-content-length: 116
Content-length: 116
K 7
svn:log
V 16
Branch to crazy.
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-09T14:46:12.131174Z
PROPS-END
Node-path: branches/crazy
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 1
Node-copyfrom-path: trunk
Prop-content-length: 34
Content-length: 34
K 13
svn:mergeinfo
V 0
PROPS-END
Node-path: branches/crazy/alpha
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/alpha
Text-copy-source-md5: 8717538ba2f18a613eaa4892e8d178f7
Node-path: branches/crazy/beta
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/beta
Text-copy-source-md5: 952a13b33256f343982d0a8f0e0af277
Node-path: branches/crazy/delta
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/delta
Text-copy-source-md5: e48d0bca73f04e800e7bd9fb58d49a62
Revision-number: 5
Prop-content-length: 108
Content-length: 108
K 7
svn:log
V 9
Add gamma
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-09T14:46:13.143196Z
PROPS-END
Node-path: trunk/gamma
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 15
Text-content-md5: 255b705986e84fbb13db9c5a832739ae
Content-length: 25
PROPS-END
This is gamma.
Revision-number: 6
Prop-content-length: 108
Content-length: 108
K 7
svn:log
V 9
Add omega
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-09T14:46:14.144244Z
PROPS-END
Node-path: branches/crazy/omega
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 15
Text-content-md5: 22219e00c8dbb47ce790f0eb658e8014
Content-length: 25
PROPS-END
This is omega.
Revision-number: 7
Prop-content-length: 121
Content-length: 121
K 7
svn:log
V 21
Branch to more_crazy.
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-09T14:46:16.135900Z
PROPS-END
Node-path: branches/more_crazy
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 1
Node-copyfrom-path: trunk
Prop-content-length: 34
Content-length: 34
K 13
svn:mergeinfo
V 0
PROPS-END
Node-path: branches/more_crazy/alpha
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/alpha
Text-copy-source-md5: 8717538ba2f18a613eaa4892e8d178f7
Node-path: branches/more_crazy/beta
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/beta
Text-copy-source-md5: 952a13b33256f343982d0a8f0e0af277
Node-path: branches/more_crazy/delta
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/delta
Text-copy-source-md5: e48d0bca73f04e800e7bd9fb58d49a62
Node-path: branches/more_crazy/gamma
Node-kind: file
Node-action: add
Node-copyfrom-rev: 5
Node-copyfrom-path: trunk/gamma
Text-copy-source-md5: 255b705986e84fbb13db9c5a832739ae

View File

@ -0,0 +1,361 @@
SVN-fs-dump-format-version: 2
UUID: 1916bd89-caf8-4f3d-96a7-7d5a7968f6ea
Revision-number: 0
Prop-content-length: 56
Content-length: 56
K 8
svn:date
V 27
2008-10-09T15:32:50.842663Z
PROPS-END
Revision-number: 1
Prop-content-length: 111
Content-length: 111
K 7
svn:log
V 11
Empty dirs.
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-09T15:32:51.151627Z
PROPS-END
Node-path: dummyproj
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10
PROPS-END
Node-path: dummyproj/branches
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10
PROPS-END
Node-path: dummyproj/tags
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10
PROPS-END
Node-path: dummyproj/trunk
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10
PROPS-END
Revision-number: 2
Prop-content-length: 114
Content-length: 114
K 7
svn:log
V 14
Initial Files.
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-09T15:32:52.149125Z
PROPS-END
Node-path: dummyproj/trunk/alpha
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 15
Text-content-md5: 8717538ba2f18a613eaa4892e8d178f7
Content-length: 25
PROPS-END
This is alpha.
Node-path: dummyproj/trunk/beta
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 14
Text-content-md5: 952a13b33256f343982d0a8f0e0af277
Content-length: 24
PROPS-END
This is beta.
Node-path: dummyproj/trunk/delta
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 15
Text-content-md5: e48d0bca73f04e800e7bd9fb58d49a62
Content-length: 25
PROPS-END
This is delta.
Revision-number: 3
Prop-content-length: 110
Content-length: 110
K 7
svn:log
V 10
Tag rev 1.
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-09T15:32:54.131909Z
PROPS-END
Node-path: dummyproj/tags/rev1
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 1
Node-copyfrom-path: dummyproj/trunk
Prop-content-length: 34
Content-length: 34
K 13
svn:mergeinfo
V 0
PROPS-END
Node-path: dummyproj/tags/rev1/alpha
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: dummyproj/trunk/alpha
Text-copy-source-md5: 8717538ba2f18a613eaa4892e8d178f7
Node-path: dummyproj/tags/rev1/beta
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: dummyproj/trunk/beta
Text-copy-source-md5: 952a13b33256f343982d0a8f0e0af277
Node-path: dummyproj/tags/rev1/delta
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: dummyproj/trunk/delta
Text-copy-source-md5: e48d0bca73f04e800e7bd9fb58d49a62
Revision-number: 4
Prop-content-length: 116
Content-length: 116
K 7
svn:log
V 16
Branch to crazy.
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-09T15:32:56.132149Z
PROPS-END
Node-path: dummyproj/branches/crazy
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 1
Node-copyfrom-path: dummyproj/trunk
Prop-content-length: 34
Content-length: 34
K 13
svn:mergeinfo
V 0
PROPS-END
Node-path: dummyproj/branches/crazy/alpha
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: dummyproj/trunk/alpha
Text-copy-source-md5: 8717538ba2f18a613eaa4892e8d178f7
Node-path: dummyproj/branches/crazy/beta
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: dummyproj/trunk/beta
Text-copy-source-md5: 952a13b33256f343982d0a8f0e0af277
Node-path: dummyproj/branches/crazy/delta
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: dummyproj/trunk/delta
Text-copy-source-md5: e48d0bca73f04e800e7bd9fb58d49a62
Revision-number: 5
Prop-content-length: 108
Content-length: 108
K 7
svn:log
V 9
Add gamma
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-09T15:32:57.142842Z
PROPS-END
Node-path: dummyproj/trunk/gamma
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 15
Text-content-md5: 255b705986e84fbb13db9c5a832739ae
Content-length: 25
PROPS-END
This is gamma.
Revision-number: 6
Prop-content-length: 108
Content-length: 108
K 7
svn:log
V 9
Add omega
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-09T15:32:58.146324Z
PROPS-END
Node-path: dummyproj/branches/crazy/omega
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 15
Text-content-md5: 22219e00c8dbb47ce790f0eb658e8014
Content-length: 25
PROPS-END
This is omega.
Revision-number: 7
Prop-content-length: 121
Content-length: 121
K 7
svn:log
V 21
Branch to more_crazy.
K 10
svn:author
V 5
durin
K 8
svn:date
V 27
2008-10-09T15:33:00.138992Z
PROPS-END
Node-path: dummyproj/branches/more_crazy
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 1
Node-copyfrom-path: dummyproj/trunk
Prop-content-length: 34
Content-length: 34
K 13
svn:mergeinfo
V 0
PROPS-END
Node-path: dummyproj/branches/more_crazy/alpha
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: dummyproj/trunk/alpha
Text-copy-source-md5: 8717538ba2f18a613eaa4892e8d178f7
Node-path: dummyproj/branches/more_crazy/beta
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: dummyproj/trunk/beta
Text-copy-source-md5: 952a13b33256f343982d0a8f0e0af277
Node-path: dummyproj/branches/more_crazy/delta
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: dummyproj/trunk/delta
Text-copy-source-md5: e48d0bca73f04e800e7bd9fb58d49a62
Node-path: dummyproj/branches/more_crazy/gamma
Node-kind: file
Node-action: add
Node-copyfrom-rev: 5
Node-copyfrom-path: dummyproj/trunk/gamma
Text-copy-source-md5: 255b705986e84fbb13db9c5a832739ae

View File

@ -1,4 +1,5 @@
import os
import popen2
import shutil
import tempfile
import unittest
@ -9,57 +10,20 @@ import svnwrap
class TestBasicRepoLayout(unittest.TestCase):
def setUp(self):
self.oldwd = os.getcwd()
self.tmpdir = tempfile.mkdtemp('svnwrap_test')
self.repo_path = '%s/testrepo' % self.tmpdir
wc_path = '%s/testrepo_wc' % self.tmpdir
os.spawnvp(os.P_WAIT, 'svnadmin', ['svnadmin', 'create',
os.spawnvp(os.P_WAIT, 'svnadmin', ['svnadmin', 'create',
self.repo_path,])
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'checkout',
'file://%s' % self.repo_path,
wc_path,])
os.chdir(wc_path)
for d in ['branches', 'tags', 'trunk']:
os.mkdir(os.path.join(wc_path, d))
#r1
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add', 'branches', 'tags', 'trunk'])
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Empty dirs.'])
#r2
files = ['alpha', 'beta', 'delta']
for f in files:
open(os.path.join(wc_path, 'trunk', f), 'w').write('This is %s.\n' % f)
os.chdir('trunk')
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add']+files)
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Initial Files.'])
os.chdir('..')
#r3
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'cp', 'trunk', 'tags/rev1'])
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Tag rev 1.'])
#r4
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'cp', 'trunk', 'branches/crazy'])
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Branch to crazy.'])
#r5
open(os.path.join(wc_path, 'trunk', 'gamma'), 'w').write('This is %s.\n'
% 'gamma')
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add', 'trunk/gamma', ])
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Add gamma'])
#r6
open(os.path.join(wc_path, 'branches', 'crazy', 'omega'),
'w').write('This is %s.\n' % 'omega')
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add', 'branches/crazy/omega', ])
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Add omega'])
#r7
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'cp', 'trunk', 'branches/more_crazy'])
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Branch to more_crazy.'])
proc = popen2.Popen4(['svnadmin', 'load', self.repo_path,])
inp = open(os.path.join(os.path.dirname(__file__), 'fixtures',
'project_root_at_repo_root.svndump'))
proc.tochild.write(inp.read())
proc.tochild.close()
proc.wait()
self.repo = svnwrap.SubversionRepo('file://%s' % self.repo_path)
def tearDown(self):
shutil.rmtree(self.tmpdir)
os.chdir(self.oldwd)
def test_num_revs(self):
@ -91,56 +55,15 @@ class TestBasicRepoLayout(unittest.TestCase):
class TestRootAsSubdirOfRepo(TestBasicRepoLayout):
def setUp(self):
self.oldwd = os.getcwd()
self.tmpdir = tempfile.mkdtemp('svnwrap_test')
self.repo_path = '%s/testrepo' % self.tmpdir
wc_path = '%s/testrepo_wc' % self.tmpdir
os.spawnvp(os.P_WAIT, 'svnadmin', ['svnadmin', 'create',
os.spawnvp(os.P_WAIT, 'svnadmin', ['svnadmin', 'create',
self.repo_path,])
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'checkout',
'file://%s' % self.repo_path,
wc_path,])
self.repo_path += '/dummyproj'
os.chdir(wc_path)
os.mkdir('dummyproj')
os.chdir('dummyproj')
wc_path += '/dummyproj'
for d in ['branches', 'tags', 'trunk']:
os.mkdir(os.path.join(wc_path, d))
#r1
os.chdir('..')
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add', 'dummyproj'])
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Empty dirs.'])
os.chdir('dummyproj')
#r2
files = ['alpha', 'beta', 'delta']
for f in files:
open(os.path.join(wc_path, 'trunk', f), 'w').write('This is %s.\n' % f)
os.chdir('trunk')
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add']+files)
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Initial Files.'])
os.chdir('..')
#r3
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'cp', 'trunk', 'tags/rev1'])
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Tag rev 1.'])
#r4
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'cp', 'trunk', 'branches/crazy'])
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Branch to crazy.'])
#r5
open(os.path.join(wc_path, 'trunk', 'gamma'), 'w').write('This is %s.\n'
% 'gamma')
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add', 'trunk/gamma', ])
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Add gamma'])
#r6
open(os.path.join(wc_path, 'branches', 'crazy', 'omega'),
'w').write('This is %s.\n' % 'omega')
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'add', 'branches/crazy/omega', ])
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Add omega'])
#r7
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'cp', 'trunk', 'branches/more_crazy'])
os.spawnvp(os.P_WAIT, 'svn', ['svn', 'ci', '-m', 'Branch to more_crazy.'])
self.repo = svnwrap.SubversionRepo('file://%s' % (self.repo_path))
proc = popen2.Popen4(['svnadmin', 'load', self.repo_path,])
inp = open(os.path.join(os.path.dirname(__file__), 'fixtures',
'project_root_not_repo_root.svndump'))
proc.tochild.write(inp.read())
proc.tochild.close()
proc.wait()
self.repo = svnwrap.SubversionRepo('file://%s/dummyproj' %
self.repo_path)