Mercurial > hgsubversion
comparison tests/test_util.py @ 689:35a1e93b6f78
tests: move _add_svn_rev to test_util for reuse
author | Peter Arrenbrecht <peter.arrenbrecht@gmail.com> |
---|---|
date | Wed, 08 Sep 2010 09:57:06 +0200 |
parents | c3900ad3bf69 |
children | c11bf0dd38d3 |
comparison
equal
deleted
inserted
replaced
688:073132fc27f1 | 689:35a1e93b6f78 |
---|---|
182 for l in '[extensions]', 'hgsubversion=': | 182 for l in '[extensions]', 'hgsubversion=': |
183 print >> rc, l | 183 print >> rc, l |
184 | 184 |
185 self.repo_path = '%s/testrepo' % self.tmpdir | 185 self.repo_path = '%s/testrepo' % self.tmpdir |
186 self.wc_path = '%s/testrepo_wc' % self.tmpdir | 186 self.wc_path = '%s/testrepo_wc' % self.tmpdir |
187 self.svn_wc = None | |
187 | 188 |
188 # Previously, we had a MockUI class that wrapped ui, and giving access | 189 # Previously, we had a MockUI class that wrapped ui, and giving access |
189 # to the stream. The ui.pushbuffer() and ui.popbuffer() can be used | 190 # to the stream. The ui.pushbuffer() and ui.popbuffer() can be used |
190 # instead. Using the regular UI class, with all stderr redirected to | 191 # instead. Using the regular UI class, with all stderr redirected to |
191 # stdout ensures that the test setup is much more similar to usage | 192 # stdout ensures that the test setup is much more similar to usage |
229 subdir = '' | 230 subdir = '' |
230 return load_fixture_and_fetch(fixture_name, self.repo_path, | 231 return load_fixture_and_fetch(fixture_name, self.repo_path, |
231 self.wc_path, subdir=subdir, | 232 self.wc_path, subdir=subdir, |
232 stupid=stupid, layout=layout, | 233 stupid=stupid, layout=layout, |
233 startrev=startrev) | 234 startrev=startrev) |
235 | |
236 def _add_svn_rev(self, changes): | |
237 '''changes is a dict of filename -> contents''' | |
238 if self.svn_wc is None: | |
239 self.svn_wc = os.path.join(self.tmpdir, 'testsvn_wc') | |
240 subprocess.call([ | |
241 'svn', 'co', '-q', fileurl(self.repo_path), | |
242 self.svn_wc | |
243 ], | |
244 stdout=subprocess.PIPE, stderr=subprocess.STDOUT) | |
245 | |
246 for filename, contents in changes.iteritems(): | |
247 # filenames are / separated | |
248 filename = filename.replace('/', os.path.sep) | |
249 filename = os.path.join(self.svn_wc, filename) | |
250 open(filename, 'w').write(contents) | |
251 # may be redundant | |
252 subprocess.call(['svn', 'add', '-q', filename], | |
253 stdout=subprocess.PIPE, stderr=subprocess.STDOUT) | |
254 subprocess.call([ | |
255 'svn', 'commit', '-q', self.svn_wc, '-m', 'test changes'], | |
256 stdout=subprocess.PIPE, stderr=subprocess.STDOUT) | |
234 | 257 |
235 # define this as a property so that it reloads anytime we need it | 258 # define this as a property so that it reloads anytime we need it |
236 @property | 259 @property |
237 def repo(self): | 260 def repo(self): |
238 return hg.repository(testui(), self.wc_path) | 261 return hg.repository(testui(), self.wc_path) |