~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_selftest.py

  • Committer: Jonathan Riddell
  • Date: 2011-06-21 11:34:52 UTC
  • mfrom: (5989 +trunk)
  • mto: This revision was merged to the branch mainline in revision 6003.
  • Revision ID: jriddell@canonical.com-20110621113452-ktj67zy52th919c8
mergeĀ inĀ trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
2506
2506
 
2507
2507
 
2508
2508
class TestStartBzrSubProcess(tests.TestCase):
 
2509
    """Stub test start_bzr_subprocess."""
2509
2510
 
2510
 
    def check_popen_state(self):
2511
 
        """Replace to make assertions when popen is called."""
 
2511
    def _subprocess_log_cleanup(self):
 
2512
        """Inhibits the base version as we don't produce a log file."""
2512
2513
 
2513
2514
    def _popen(self, *args, **kwargs):
2514
 
        """Record the command that is run, so that we can ensure it is correct"""
 
2515
        """Override the base version to record the command that is run.
 
2516
 
 
2517
        From there we can ensure it is correct without spawning a real process.
 
2518
        """
2515
2519
        self.check_popen_state()
2516
2520
        self._popen_args = args
2517
2521
        self._popen_kwargs = kwargs
2518
2522
        raise _DontSpawnProcess()
2519
2523
 
 
2524
    def check_popen_state(self):
 
2525
        """Replace to make assertions when popen is called."""
 
2526
 
2520
2527
    def test_run_bzr_subprocess_no_plugins(self):
2521
2528
        self.assertRaises(_DontSpawnProcess, self.start_bzr_subprocess, [])
2522
2529
        command = self._popen_args[0]
2526
2533
 
2527
2534
    def test_allow_plugins(self):
2528
2535
        self.assertRaises(_DontSpawnProcess, self.start_bzr_subprocess, [],
2529
 
            allow_plugins=True)
 
2536
                          allow_plugins=True)
2530
2537
        command = self._popen_args[0]
2531
2538
        self.assertEqual([], command[2:])
2532
2539
 
2537
2544
            self.assertEqual('set variable', os.environ['EXISTANT_ENV_VAR'])
2538
2545
        self.check_popen_state = check_environment
2539
2546
        self.assertRaises(_DontSpawnProcess, self.start_bzr_subprocess, [],
2540
 
            env_changes={'EXISTANT_ENV_VAR':'set variable'})
 
2547
                          env_changes={'EXISTANT_ENV_VAR':'set variable'})
2541
2548
        # not set in theparent
2542
2549
        self.assertFalse('EXISTANT_ENV_VAR' in os.environ)
2543
2550
 
2549
2556
        os.environ['EXISTANT_ENV_VAR'] = 'set variable'
2550
2557
        self.check_popen_state = check_environment
2551
2558
        self.assertRaises(_DontSpawnProcess, self.start_bzr_subprocess, [],
2552
 
            env_changes={'EXISTANT_ENV_VAR':None})
 
2559
                          env_changes={'EXISTANT_ENV_VAR':None})
2553
2560
        # Still set in parent
2554
2561
        self.assertEqual('set variable', os.environ['EXISTANT_ENV_VAR'])
2555
2562
        del os.environ['EXISTANT_ENV_VAR']
2560
2567
            self.assertFalse('NON_EXISTANT_ENV_VAR' in os.environ)
2561
2568
        self.check_popen_state = check_environment
2562
2569
        self.assertRaises(_DontSpawnProcess, self.start_bzr_subprocess, [],
2563
 
            env_changes={'NON_EXISTANT_ENV_VAR':None})
 
2570
                          env_changes={'NON_EXISTANT_ENV_VAR':None})
2564
2571
 
2565
2572
    def test_working_dir(self):
2566
2573
        """Test that we can specify the working dir for the child"""
2569
2576
        chdirs = []
2570
2577
        def chdir(path):
2571
2578
            chdirs.append(path)
2572
 
        os.chdir = chdir
2573
 
        try:
2574
 
            def getcwd():
2575
 
                return 'current'
2576
 
            osutils.getcwd = getcwd
2577
 
            try:
2578
 
                self.assertRaises(_DontSpawnProcess, self.start_bzr_subprocess, [],
2579
 
                    working_dir='foo')
2580
 
            finally:
2581
 
                osutils.getcwd = orig_getcwd
2582
 
        finally:
2583
 
            os.chdir = orig_chdir
 
2579
        self.overrideAttr(os, 'chdir', chdir)
 
2580
        def getcwd():
 
2581
            return 'current'
 
2582
        self.overrideAttr(osutils, 'getcwd', getcwd)
 
2583
        self.assertRaises(_DontSpawnProcess, self.start_bzr_subprocess, [],
 
2584
                          working_dir='foo')
2584
2585
        self.assertEqual(['foo', 'current'], chdirs)
2585
2586
 
2586
2587
    def test_get_bzr_path_with_cwd_bzrlib(self):