~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_osutils.py

  • Committer: Martin Pool
  • Date: 2009-09-11 06:36:50 UTC
  • mto: This revision was merged to the branch mainline in revision 4688.
  • Revision ID: mbp@sourcefrog.net-20090911063650-yvb522sbe6k0i62r
Only mutter extension load errors when they occur, and record for later

Show diffs side-by-side

added added

removed removed

Lines of Context:
1806
1806
        try:
1807
1807
            import bzrlib._fictional_extension_py
1808
1808
        except ImportError, e:
1809
 
            osutils._failed_to_load_extension(e)
 
1809
            osutils.failed_to_load_extension(e)
1810
1810
            return True
1811
1811
 
 
1812
    def setUp(self):
 
1813
        super(TestFailedToLoadExtension, self).setUp()
 
1814
        self.saved_failures = osutils._extension_load_failures[:]
 
1815
        del osutils._extension_load_failures[:]
 
1816
        self.addCleanup(self.restore_failures)
 
1817
 
 
1818
    def restore_failures(self):
 
1819
        osutils._extension_load_failures = self.saved_failures
 
1820
 
1812
1821
    def test_failure_to_load(self):
1813
 
        k = 'BZR_IGNORE_MISSING_EXTENSIONS'
1814
 
        if k in os.environ:
1815
 
            del os.environ[k]
1816
 
        warnings, result = self.callCatchWarnings(self._try_loading)
1817
 
        self.assertEquals(result, True)
 
1822
        self._try_loading()
 
1823
        self.assertLength(1, osutils._extension_load_failures)
 
1824
        self.assertEquals(osutils._extension_load_failures[0],
 
1825
            "No module named _fictional_extension_py")
 
1826
 
 
1827
    def test_report_extension_load_failures(self):
 
1828
        self.assertTrue(self._try_loading())
 
1829
        warnings, result = self.callCatchWarnings(osutils.report_extension_load_failures)
1818
1830
        self.assertLength(1, warnings)
1819
 
        self.assertContainsRe(str(warnings[0]),
1820
 
            r".*Failed to load compiled extension: .*fictional.*")
1821
 
 
1822
 
    def test_failure_to_load_ignored(self):
1823
 
        os.environ['BZR_IGNORE_MISSING_EXTENSIONS'] = '1'
1824
 
        warnings, result = self.callCatchWarnings(self._try_loading)
1825
 
        self.assertEquals(result, True)
1826
 
        self.assertLength(0, warnings)