~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/script.py

  • Committer: Vincent Ladeuil
  • Date: 2009-09-18 13:07:23 UTC
  • mto: (4713.1.1 integration)
  • mto: This revision was merged to the branch mainline in revision 4714.
  • Revision ID: v.ladeuil+lp@free.fr-20090918130723-sq6fml55uyed5hee
Revert the jail_root parameter addition.

* bzrlib/tests/script.py:
(ScriptRunner): Since we can access the test_case when we need the
jail root and it's defined by the test case anyway, no need to
provide it ahead of time.

Show diffs side-by-side

added added

removed removed

Lines of Context:
159
159
 
160
160
class ScriptRunner(object):
161
161
 
162
 
    def __init__(self, jail_root='/'):
163
 
        self.jail_root = jail_root
 
162
    def __init__(self):
164
163
        self.output_checker = doctest.OutputChecker()
165
164
        self.check_options = doctest.ELLIPSIS
166
165
 
302
301
                return 1, None, '%s: No such file or directory\n' % (out_name,)
303
302
        return 0, output, None
304
303
 
305
 
    def _ensure_in_jail(self, path):
306
 
        if not osutils.is_inside(self.jail_root, osutils.normalizepath(path)):
307
 
            raise ValueError('%s is not inside %s' % (path, self.jail_root))
 
304
    def _ensure_in_jail(self, test_case, path):
 
305
        jail_root = test_case.get_jail_root()
 
306
        if not osutils.is_inside(jail_root, osutils.normalizepath(path)):
 
307
            raise ValueError('%s is not inside %s' % (path, jail_root))
308
308
 
309
309
    def do_cd(self, test_case, input, args):
310
310
        if len(args) > 1:
311
311
            raise SyntaxError('Usage: cd [dir]')
312
312
        if len(args) == 1:
313
313
            d = args[0]
314
 
            self._ensure_in_jail(d)
 
314
            self._ensure_in_jail(test_case, d)
315
315
        else:
316
 
            d = self.jail_root
 
316
            # The test "home" directory is the root of its jail
 
317
            d = test_case.get_jail_root()
317
318
        os.chdir(d)
318
319
        return 0, None, None
319
320
 
321
322
        if not args or len(args) != 1:
322
323
            raise SyntaxError('Usage: mkdir dir')
323
324
        d = args[0]
324
 
        self._ensure_in_jail(d)
 
325
        self._ensure_in_jail(test_case, d)
325
326
        os.mkdir(d)
326
327
        return 0, None, None
327
328
 
344
345
        if not args or opts:
345
346
            raise SyntaxError('Usage: rm [-fr] path+')
346
347
        for p in args:
347
 
            self._ensure_in_jail(p)
 
348
            self._ensure_in_jail(test_case, p)
348
349
            # FIXME: Should we put that in osutils ?
349
350
            try:
350
351
                os.remove(p)
378
379
 
379
380
    def setUp(self):
380
381
        super(TestCaseWithMemoryTransportAndScript, self).setUp()
381
 
        # We don't have a jail_root to provide here. Yet.
382
382
        self.script_runner = ScriptRunner()
383
383
 
 
384
    def get_jail_root(self):
 
385
        raise NotImplementedError(self.get_jail_root)
 
386
 
384
387
    def run_script(self, script):
385
388
        return self.script_runner.run_script(script, self)
386
389
 
408
411
 
409
412
    def setUp(self):
410
413
        super(TestCaseWithTransportAndScript, self).setUp()
411
 
        self.script_runner = ScriptRunner(self.test_dir)
 
414
        self.script_runner = ScriptRunner()
 
415
 
 
416
    def get_jail_root(self):
 
417
        return self.test_dir
412
418
 
413
419
    def run_script(self, script):
414
420
        return self.script_runner.run_script(script, self)