comparison tests/test_util.py @ 866:20e73b5ab6f7

test_util: merge load_svndump_fixture() into TestBase
author Patrick Mezard <patrick@mezard.eu>
date Thu, 19 Apr 2012 18:29:28 +0200
parents 04729f3a3d17
children 50c13e01c7e3
comparison
equal deleted inserted replaced
865:04729f3a3d17 866:20e73b5ab6f7
156 u.setconfig('hgsubversion', 'stupid', bools[stupid]) 156 u.setconfig('hgsubversion', 'stupid', bools[stupid])
157 u.setconfig('hgsubversion', 'layout', layout) 157 u.setconfig('hgsubversion', 'layout', layout)
158 u.setconfig('hgsubversion', 'startrev', startrev) 158 u.setconfig('hgsubversion', 'startrev', startrev)
159 return u 159 return u
160 160
161 def load_svndump_fixture(path, fixture_name):
162 '''Loads an svnadmin dump into a fresh repo at path, which should not
163 already exist.
164 '''
165 if os.path.exists(path): rmtree(path)
166 subprocess.call(['svnadmin', 'create', path, ],
167 stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
168 inp = open(os.path.join(FIXTURES, fixture_name))
169 proc = subprocess.Popen(['svnadmin', 'load', path, ], stdin=inp,
170 stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
171 proc.communicate()
172
173 def dispatch(cmd): 161 def dispatch(cmd):
174 try: 162 try:
175 req = dispatchmod.request(cmd) 163 req = dispatchmod.request(cmd)
176 dispatchmod.dispatch(req) 164 dispatchmod.dispatch(req)
177 except AttributeError, e: 165 except AttributeError, e:
264 _verify_our_modules() 252 _verify_our_modules()
265 253
266 def ui(self, stupid=False, layout='auto'): 254 def ui(self, stupid=False, layout='auto'):
267 return testui(stupid, layout) 255 return testui(stupid, layout)
268 256
257 def load_svndump(self, fixture_name):
258 '''Loads an svnadmin dump into a fresh repo. Return the svn repo
259 path.
260 '''
261 path = self.repo_path
262 if os.path.exists(path):
263 rmtree(path)
264 subprocess.call(['svnadmin', 'create', path,],
265 stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
266 inp = open(os.path.join(FIXTURES, fixture_name))
267 proc = subprocess.Popen(['svnadmin', 'load', path,], stdin=inp,
268 stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
269 proc.communicate()
270 return path
271
269 def _load_fixture_and_fetch(self, fixture_name, subdir=None, stupid=False, 272 def _load_fixture_and_fetch(self, fixture_name, subdir=None, stupid=False,
270 layout='auto', startrev=0, externals=None, 273 layout='auto', startrev=0, externals=None,
271 noupdate=True): 274 noupdate=True):
272 if layout == 'single': 275 if layout == 'single':
273 if subdir is None: 276 if subdir is None:
274 subdir = 'trunk' 277 subdir = 'trunk'
275 elif subdir is None: 278 elif subdir is None:
276 subdir = '' 279 subdir = ''
277 load_svndump_fixture(self.repo_path, fixture_name) 280 repo_path = self.load_svndump(fixture_name)
278 projectpath = self.repo_path 281 projectpath = repo_path
279 if subdir: 282 if subdir:
280 projectpath += '/' + subdir 283 projectpath += '/' + subdir
281 284
282 cmd = [ 285 cmd = [
283 'clone', 286 'clone',