/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to breezy/tests/test_selftest.py

  • Committer: Breezy landing bot
  • Author(s): Jelmer Vernooij
  • Date: 2018-08-21 09:32:52 UTC
  • mfrom: (7065.3.15 python-bundle)
  • Revision ID: breezy.the.bot@gmail.com-20180821093252-dhir83sygqwzbv77
Fix some bundle-related tests on Python 3.

Merged from https://code.launchpad.net/~jelmer/brz/python-bundle/+merge/353123

Show diffs side-by-side

added added

removed removed

Lines of Context:
1784
1784
    return ExampleTests(name)
1785
1785
 
1786
1786
 
1787
 
def _get_skip_reasons(result):
1788
 
    # GZ 2017-06-06: Newer testtools doesn't have this, uses detail instead
1789
 
    return result.skip_reasons
1790
 
 
1791
 
 
1792
1787
class TestTestCaseLogDetails(tests.TestCase):
1793
1788
 
1794
1789
    def _run_test(self, test_name):
1815
1810
 
1816
1811
    def test_skip_has_no_log(self):
1817
1812
        result = self._run_test('test_skip')
1818
 
        reasons = _get_skip_reasons(result)
 
1813
        reasons = result.skip_reasons
1819
1814
        self.assertEqual({'reason'}, set(reasons))
1820
1815
        skips = reasons['reason']
1821
1816
        self.assertEqual(1, len(skips))
1826
1821
        # testtools doesn't know about addNotSupported, so it just gets
1827
1822
        # considered as a skip
1828
1823
        result = self._run_test('test_missing_feature')
1829
 
        reasons = _get_skip_reasons(result)
 
1824
        reasons = result.skip_reasons
1830
1825
        self.assertEqual({str(missing_feature)}, set(reasons))
1831
1826
        skips = reasons[str(missing_feature)]
1832
1827
        self.assertEqual(1, len(skips))
2246
2241
        content, result = self.run_subunit_stream('test_skip')
2247
2242
        self.assertNotContainsRe(content, b'(?m)^log$')
2248
2243
        self.assertNotContainsRe(content, b'this test will be skipped')
2249
 
        reasons = _get_skip_reasons(result)
 
2244
        reasons = result.skip_reasons
2250
2245
        self.assertEqual({'reason'}, set(reasons))
2251
2246
        skips = reasons['reason']
2252
2247
        self.assertEqual(1, len(skips))
2258
2253
        content, result = self.run_subunit_stream('test_missing_feature')
2259
2254
        self.assertNotContainsRe(content, b'(?m)^log$')
2260
2255
        self.assertNotContainsRe(content, b'missing the feature')
2261
 
        reasons = _get_skip_reasons(result)
 
2256
        reasons = result.skip_reasons
2262
2257
        self.assertEqual({'_MissingFeature\n'}, set(reasons))
2263
2258
        skips = reasons['_MissingFeature\n']
2264
2259
        self.assertEqual(1, len(skips))
2294
2289
 
2295
2290
class TestRunBzr(tests.TestCase):
2296
2291
 
 
2292
    result = 0
2297
2293
    out = ''
2298
2294
    err = ''
2299
2295
 
2300
 
    def _run_bzr_core(self, argv, retcode=0, encoding=None, stdin=None,
2301
 
                         working_dir=None):
 
2296
    def _run_bzr_core(self, argv, encoding=None, stdin=None,
 
2297
                      stdout=None, stderr=None, working_dir=None):
2302
2298
        """Override _run_bzr_core to test how it is invoked by run_bzr.
2303
2299
 
2304
2300
        Attempts to run bzr from inside this class don't actually run it.
2307
2303
        only need to test that it passes the right parameters to run_bzr.
2308
2304
        """
2309
2305
        self.argv = list(argv)
2310
 
        self.retcode = retcode
2311
2306
        self.encoding = encoding
2312
2307
        self.stdin = stdin
2313
2308
        self.working_dir = working_dir
2314
 
        return self.retcode, self.out, self.err
 
2309
        stdout.write(self.out)
 
2310
        stderr.write(self.err)
 
2311
        return self.result
2315
2312
 
2316
2313
    def test_run_bzr_error(self):
2317
2314
        self.out = "It sure does!\n"
 
2315
        self.result = 34
2318
2316
        out, err = self.run_bzr_error(['^$'], ['rocks'], retcode=34)
2319
2317
        self.assertEqual(['rocks'], self.argv)
2320
 
        self.assertEqual(34, self.retcode)
2321
2318
        self.assertEqual('It sure does!\n', out)
2322
2319
        self.assertEqual(out, self.out)
2323
2320
        self.assertEqual('', err)
2324
2321
        self.assertEqual(err, self.err)
2325
2322
 
2326
2323
    def test_run_bzr_error_regexes(self):
2327
 
        self.out = b''
2328
 
        self.err = b"bzr: ERROR: foobarbaz is not versioned"
 
2324
        self.out = ''
 
2325
        self.err = "bzr: ERROR: foobarbaz is not versioned"
 
2326
        self.result = 3
2329
2327
        out, err = self.run_bzr_error(
2330
 
            [b"bzr: ERROR: foobarbaz is not versioned"],
 
2328
            ["bzr: ERROR: foobarbaz is not versioned"],
2331
2329
            ['file-id', 'foobarbaz'])
2332
2330
 
2333
2331
    def test_encoding(self):
2334
2332
        """Test that run_bzr passes encoding to _run_bzr_core"""
2335
2333
        self.run_bzr('foo bar')
2336
 
        self.assertEqual(None, self.encoding)
 
2334
        self.assertEqual(osutils.get_user_encoding(), self.encoding)
2337
2335
        self.assertEqual(['foo', 'bar'], self.argv)
2338
2336
 
2339
2337
        self.run_bzr('foo bar', encoding='baz')
2340
2338
        self.assertEqual('baz', self.encoding)
2341
2339
        self.assertEqual(['foo', 'bar'], self.argv)
2342
2340
 
2343
 
    def test_retcode(self):
2344
 
        """Test that run_bzr passes retcode to _run_bzr_core"""
2345
 
        # Default is retcode == 0
2346
 
        self.run_bzr('foo bar')
2347
 
        self.assertEqual(0, self.retcode)
2348
 
        self.assertEqual(['foo', 'bar'], self.argv)
2349
 
 
2350
 
        self.run_bzr('foo bar', retcode=1)
2351
 
        self.assertEqual(1, self.retcode)
2352
 
        self.assertEqual(['foo', 'bar'], self.argv)
2353
 
 
2354
 
        self.run_bzr('foo bar', retcode=None)
2355
 
        self.assertEqual(None, self.retcode)
2356
 
        self.assertEqual(['foo', 'bar'], self.argv)
2357
 
 
2358
 
        self.run_bzr(['foo', 'bar'], retcode=3)
2359
 
        self.assertEqual(3, self.retcode)
2360
 
        self.assertEqual(['foo', 'bar'], self.argv)
2361
 
 
2362
2341
    def test_stdin(self):
2363
2342
        # test that the stdin keyword to run_bzr is passed through to
2364
2343
        # _run_bzr_core as-is. We do this by overriding