~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/tests/test_config.py

(vila) Rename assertWarns in test_config to avoid clashing with unittest2
 assertWarns. (Vincent Ladeuil)

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2005-2012 Canonical Ltd
 
1
# Copyright (C) 2005-2014, 2016 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
2306
2306
        self.assertEquals('foo', opt.get_help_topic())
2307
2307
 
2308
2308
 
2309
 
class TestOptionConverterMixin(object):
 
2309
class TestOptionConverter(tests.TestCase):
2310
2310
 
2311
2311
    def assertConverted(self, expected, opt, value):
2312
2312
        self.assertEquals(expected, opt.convert_from_unicode(None, value))
2313
2313
 
2314
 
    def assertWarns(self, opt, value):
 
2314
    def assertCallsWarning(self, opt, value):
2315
2315
        warnings = []
 
2316
 
2316
2317
        def warning(*args):
2317
2318
            warnings.append(args[0] % args[1:])
2318
2319
        self.overrideAttr(trace, 'warning', warning)
2322
2323
            'Value "%s" is not valid for "%s"' % (value, opt.name),
2323
2324
            warnings[0])
2324
2325
 
2325
 
    def assertErrors(self, opt, value):
 
2326
    def assertCallsError(self, opt, value):
2326
2327
        self.assertRaises(errors.ConfigOptionValueError,
2327
2328
                          opt.convert_from_unicode, None, value)
2328
2329
 
2330
2331
        opt.invalid = None
2331
2332
        self.assertEquals(None, opt.convert_from_unicode(None, invalid_value))
2332
2333
        opt.invalid = 'warning'
2333
 
        self.assertWarns(opt, invalid_value)
 
2334
        self.assertCallsWarning(opt, invalid_value)
2334
2335
        opt.invalid = 'error'
2335
 
        self.assertErrors(opt, invalid_value)
2336
 
 
2337
 
 
2338
 
class TestOptionWithBooleanConverter(tests.TestCase, TestOptionConverterMixin):
 
2336
        self.assertCallsError(opt, invalid_value)
 
2337
 
 
2338
 
 
2339
class TestOptionWithBooleanConverter(TestOptionConverter):
2339
2340
 
2340
2341
    def get_option(self):
2341
2342
        return config.Option('foo', help='A boolean.',
2355
2356
        self.assertConverted(False, opt, u'False')
2356
2357
 
2357
2358
 
2358
 
class TestOptionWithIntegerConverter(tests.TestCase, TestOptionConverterMixin):
 
2359
class TestOptionWithIntegerConverter(TestOptionConverter):
2359
2360
 
2360
2361
    def get_option(self):
2361
2362
        return config.Option('foo', help='An integer.',
2373
2374
        self.assertConverted(16, opt, u'16')
2374
2375
 
2375
2376
 
2376
 
class TestOptionWithSIUnitConverter(tests.TestCase, TestOptionConverterMixin):
 
2377
class TestOptionWithSIUnitConverter(TestOptionConverter):
2377
2378
 
2378
2379
    def get_option(self):
2379
2380
        return config.Option('foo', help='An integer in SI units.',
2382
2383
    def test_convert_invalid(self):
2383
2384
        opt = self.get_option()
2384
2385
        self.assertConvertInvalid(opt, u'not-a-unit')
2385
 
        self.assertConvertInvalid(opt, u'Gb') # Forgot the int
2386
 
        self.assertConvertInvalid(opt, u'1b') # Forgot the unit
 
2386
        self.assertConvertInvalid(opt, u'Gb')  # Forgot the value
 
2387
        self.assertConvertInvalid(opt, u'1b')  # Forgot the unit
2387
2388
        self.assertConvertInvalid(opt, u'1GG')
2388
2389
        self.assertConvertInvalid(opt, u'1Mbb')
2389
2390
        self.assertConvertInvalid(opt, u'1MM')
2398
2399
        self.assertConverted(100, opt, u'100')
2399
2400
 
2400
2401
 
2401
 
class TestListOption(tests.TestCase, TestOptionConverterMixin):
 
2402
class TestListOption(TestOptionConverter):
2402
2403
 
2403
2404
    def get_option(self):
2404
2405
        return config.ListOption('foo', help='A list.')
2413
2414
    def test_convert_valid(self):
2414
2415
        opt = self.get_option()
2415
2416
        # An empty string is an empty list
2416
 
        self.assertConverted([], opt, '') # Using a bare str() just in case
 
2417
        self.assertConverted([], opt, '')  # Using a bare str() just in case
2417
2418
        self.assertConverted([], opt, u'')
2418
2419
        # A boolean
2419
2420
        self.assertConverted([u'True'], opt, u'True')
2423
2424
        self.assertConverted([u'bar'], opt, u'bar')
2424
2425
 
2425
2426
 
2426
 
class TestRegistryOption(tests.TestCase, TestOptionConverterMixin):
 
2427
class TestRegistryOption(TestOptionConverter):
2427
2428
 
2428
2429
    def get_option(self, registry):
2429
2430
        return config.RegistryOption('foo', registry,
2430
 
                help='A registry option.')
 
2431
                                     help='A registry option.')
2431
2432
 
2432
2433
    def test_convert_invalid(self):
2433
2434
        registry = _mod_registry.Registry()