501
495
def test_signatures_default(self):
502
496
my_config = config.Config()
503
self.assertFalse(my_config.signature_needed())
498
self.applyDeprecated(deprecated_in((2, 5, 0)),
499
my_config.signature_needed))
504
500
self.assertEqual(config.CHECK_IF_POSSIBLE,
505
my_config.signature_checking())
501
self.applyDeprecated(deprecated_in((2, 5, 0)),
502
my_config.signature_checking))
506
503
self.assertEqual(config.SIGN_WHEN_REQUIRED,
507
my_config.signing_policy())
504
self.applyDeprecated(deprecated_in((2, 5, 0)),
505
my_config.signing_policy))
509
507
def test_signatures_template_method(self):
510
508
my_config = InstrumentedConfig()
511
self.assertEqual(config.CHECK_NEVER, my_config.signature_checking())
509
self.assertEqual(config.CHECK_NEVER,
510
self.applyDeprecated(deprecated_in((2, 5, 0)),
511
my_config.signature_checking))
512
512
self.assertEqual(['_get_signature_checking'], my_config._calls)
514
514
def test_signatures_template_method_none(self):
515
515
my_config = InstrumentedConfig()
516
516
my_config._signatures = None
517
517
self.assertEqual(config.CHECK_IF_POSSIBLE,
518
my_config.signature_checking())
518
self.applyDeprecated(deprecated_in((2, 5, 0)),
519
my_config.signature_checking))
519
520
self.assertEqual(['_get_signature_checking'], my_config._calls)
521
522
def test_gpg_signing_command_default(self):
522
523
my_config = config.Config()
523
self.assertEqual('gpg', my_config.gpg_signing_command())
524
self.assertEqual('gpg',
525
self.applyDeprecated(deprecated_in((2, 5, 0)),
526
my_config.gpg_signing_command))
525
528
def test_get_user_option_default(self):
526
529
my_config = config.Config()
529
532
def test_post_commit_default(self):
530
533
my_config = config.Config()
531
self.assertEqual(None, my_config.post_commit())
534
self.assertEqual(None, self.applyDeprecated(deprecated_in((2, 5, 0)),
535
my_config.post_commit))
533
538
def test_log_format_default(self):
534
539
my_config = config.Config()
535
self.assertEqual('long', my_config.log_format())
540
self.assertEqual('long',
541
self.applyDeprecated(deprecated_in((2, 5, 0)),
542
my_config.log_format))
537
544
def test_acceptable_keys_default(self):
538
545
my_config = config.Config()
539
self.assertEqual(None, my_config.acceptable_keys())
546
self.assertEqual(None, self.applyDeprecated(deprecated_in((2, 5, 0)),
547
my_config.acceptable_keys))
541
549
def test_validate_signatures_in_log_default(self):
542
550
my_config = config.Config()
1066
get_si = conf.get_user_option_as_int_from_SI
1074
def get_si(s, default=None):
1075
return self.applyDeprecated(
1076
deprecated_in((2, 5, 0)),
1077
conf.get_user_option_as_int_from_SI, s, default)
1067
1078
self.assertEqual(100, get_si('plain'))
1068
1079
self.assertEqual(5000, get_si('si_k'))
1069
1080
self.assertEqual(5000, get_si('si_kb'))
1235
1247
def test_signatures_always(self):
1236
1248
my_config = config.GlobalConfig.from_string(sample_always_signatures)
1237
1249
self.assertEqual(config.CHECK_NEVER,
1238
my_config.signature_checking())
1250
self.applyDeprecated(deprecated_in((2, 5, 0)),
1251
my_config.signature_checking))
1239
1252
self.assertEqual(config.SIGN_ALWAYS,
1240
my_config.signing_policy())
1241
self.assertEqual(True, my_config.signature_needed())
1253
self.applyDeprecated(deprecated_in((2, 5, 0)),
1254
my_config.signing_policy))
1255
self.assertEqual(True,
1256
self.applyDeprecated(deprecated_in((2, 5, 0)),
1257
my_config.signature_needed))
1243
1259
def test_signatures_if_possible(self):
1244
1260
my_config = config.GlobalConfig.from_string(sample_maybe_signatures)
1245
1261
self.assertEqual(config.CHECK_NEVER,
1246
my_config.signature_checking())
1262
self.applyDeprecated(deprecated_in((2, 5, 0)),
1263
my_config.signature_checking))
1247
1264
self.assertEqual(config.SIGN_WHEN_REQUIRED,
1248
my_config.signing_policy())
1249
self.assertEqual(False, my_config.signature_needed())
1265
self.applyDeprecated(deprecated_in((2, 5, 0)),
1266
my_config.signing_policy))
1267
self.assertEqual(False, self.applyDeprecated(deprecated_in((2, 5, 0)),
1268
my_config.signature_needed))
1251
1270
def test_signatures_ignore(self):
1252
1271
my_config = config.GlobalConfig.from_string(sample_ignore_signatures)
1253
1272
self.assertEqual(config.CHECK_ALWAYS,
1254
my_config.signature_checking())
1273
self.applyDeprecated(deprecated_in((2, 5, 0)),
1274
my_config.signature_checking))
1255
1275
self.assertEqual(config.SIGN_NEVER,
1256
my_config.signing_policy())
1257
self.assertEqual(False, my_config.signature_needed())
1276
self.applyDeprecated(deprecated_in((2, 5, 0)),
1277
my_config.signing_policy))
1278
self.assertEqual(False, self.applyDeprecated(deprecated_in((2, 5, 0)),
1279
my_config.signature_needed))
1259
1281
def _get_sample_config(self):
1260
1282
my_config = config.GlobalConfig.from_string(sample_config_text)
1263
1285
def test_gpg_signing_command(self):
1264
1286
my_config = self._get_sample_config()
1265
self.assertEqual("gnome-gpg", my_config.gpg_signing_command())
1266
self.assertEqual(False, my_config.signature_needed())
1287
self.assertEqual("gnome-gpg",
1288
self.applyDeprecated(
1289
deprecated_in((2, 5, 0)), my_config.gpg_signing_command))
1290
self.assertEqual(False, self.applyDeprecated(deprecated_in((2, 5, 0)),
1291
my_config.signature_needed))
1268
1293
def test_gpg_signing_key(self):
1269
1294
my_config = self._get_sample_config()
1270
self.assertEqual("DD4D5088", my_config.gpg_signing_key())
1295
self.assertEqual("DD4D5088",
1296
self.applyDeprecated(deprecated_in((2, 5, 0)),
1297
my_config.gpg_signing_key))
1272
1299
def _get_empty_config(self):
1273
1300
my_config = config.GlobalConfig()
1289
1318
def test_post_commit_default(self):
1290
1319
my_config = self._get_sample_config()
1291
self.assertEqual(None, my_config.post_commit())
1320
self.assertEqual(None,
1321
self.applyDeprecated(deprecated_in((2, 5, 0)),
1322
my_config.post_commit))
1293
1324
def test_configured_logformat(self):
1294
1325
my_config = self._get_sample_config()
1295
self.assertEqual("short", my_config.log_format())
1326
self.assertEqual("short",
1327
self.applyDeprecated(deprecated_in((2, 5, 0)),
1328
my_config.log_format))
1297
1330
def test_configured_acceptable_keys(self):
1298
1331
my_config = self._get_sample_config()
1299
self.assertEqual("amy", my_config.acceptable_keys())
1332
self.assertEqual("amy",
1333
self.applyDeprecated(deprecated_in((2, 5, 0)),
1334
my_config.acceptable_keys))
1301
1336
def test_configured_validate_signatures_in_log(self):
1302
1337
my_config = self._get_sample_config()
1538
1573
self.get_branch_config('http://www.example.com',
1539
1574
global_config=sample_ignore_signatures)
1540
1575
self.assertEqual(config.CHECK_ALWAYS,
1541
self.my_config.signature_checking())
1576
self.applyDeprecated(deprecated_in((2, 5, 0)),
1577
self.my_config.signature_checking))
1542
1578
self.assertEqual(config.SIGN_NEVER,
1543
self.my_config.signing_policy())
1579
self.applyDeprecated(deprecated_in((2, 5, 0)),
1580
self.my_config.signing_policy))
1545
1582
def test_signatures_never(self):
1546
1583
self.get_branch_config('/a/c')
1547
1584
self.assertEqual(config.CHECK_NEVER,
1548
self.my_config.signature_checking())
1585
self.applyDeprecated(deprecated_in((2, 5, 0)),
1586
self.my_config.signature_checking))
1550
1588
def test_signatures_when_available(self):
1551
1589
self.get_branch_config('/a/', global_config=sample_ignore_signatures)
1552
1590
self.assertEqual(config.CHECK_IF_POSSIBLE,
1553
self.my_config.signature_checking())
1591
self.applyDeprecated(deprecated_in((2, 5, 0)),
1592
self.my_config.signature_checking))
1555
1594
def test_signatures_always(self):
1556
1595
self.get_branch_config('/b')
1557
1596
self.assertEqual(config.CHECK_ALWAYS,
1558
self.my_config.signature_checking())
1597
self.applyDeprecated(deprecated_in((2, 5, 0)),
1598
self.my_config.signature_checking))
1560
1600
def test_gpg_signing_command(self):
1561
1601
self.get_branch_config('/b')
1562
self.assertEqual("gnome-gpg", self.my_config.gpg_signing_command())
1602
self.assertEqual("gnome-gpg",
1603
self.applyDeprecated(deprecated_in((2, 5, 0)),
1604
self.my_config.gpg_signing_command))
1564
1606
def test_gpg_signing_command_missing(self):
1565
1607
self.get_branch_config('/a')
1566
self.assertEqual("false", self.my_config.gpg_signing_command())
1608
self.assertEqual("false",
1609
self.applyDeprecated(deprecated_in((2, 5, 0)),
1610
self.my_config.gpg_signing_command))
1568
1612
def test_gpg_signing_key(self):
1569
1613
self.get_branch_config('/b')
1570
self.assertEqual("DD4D5088", self.my_config.gpg_signing_key())
1614
self.assertEqual("DD4D5088", self.applyDeprecated(deprecated_in((2, 5, 0)),
1615
self.my_config.gpg_signing_key))
1572
1617
def test_gpg_signing_key_default(self):
1573
1618
self.get_branch_config('/a')
1574
self.assertEqual("erik@bagfors.nu", self.my_config.gpg_signing_key())
1619
self.assertEqual("erik@bagfors.nu",
1620
self.applyDeprecated(deprecated_in((2, 5, 0)),
1621
self.my_config.gpg_signing_key))
1576
1623
def test_get_user_option_global(self):
1577
1624
self.get_branch_config('/a')
1761
1809
return my_config
1763
1811
def test_user_id(self):
1764
branch = FakeBranch(user_id='Robert Collins <robertc@example.net>')
1812
branch = FakeBranch()
1765
1813
my_config = config.BranchConfig(branch)
1766
self.assertEqual("Robert Collins <robertc@example.net>",
1767
my_config.username())
1814
self.assertIsNot(None, my_config.username())
1768
1815
my_config.branch.control_files.files['email'] = "John"
1769
1816
my_config.set_user_option('email',
1770
1817
"Robert Collins <robertc@example.org>")
1771
self.assertEqual("John", my_config.username())
1772
del my_config.branch.control_files.files['email']
1773
1818
self.assertEqual("Robert Collins <robertc@example.org>",
1774
my_config.username())
1776
def test_not_set_in_branch(self):
1777
my_config = self.get_branch_config(global_config=sample_config_text)
1778
self.assertEqual(u"Erik B\u00e5gfors <erik@bagfors.nu>",
1779
my_config._get_user_id())
1780
my_config.branch.control_files.files['email'] = "John"
1781
self.assertEqual("John", my_config._get_user_id())
1819
my_config.username())
1783
1821
def test_BZR_EMAIL_OVERRIDES(self):
1784
1822
self.overrideEnv('BZR_EMAIL', "Robert Collins <robertc@example.org>")
1790
1828
def test_signatures_forced(self):
1791
1829
my_config = self.get_branch_config(
1792
1830
global_config=sample_always_signatures)
1793
self.assertEqual(config.CHECK_NEVER, my_config.signature_checking())
1794
self.assertEqual(config.SIGN_ALWAYS, my_config.signing_policy())
1795
self.assertTrue(my_config.signature_needed())
1831
self.assertEqual(config.CHECK_NEVER,
1832
self.applyDeprecated(deprecated_in((2, 5, 0)),
1833
my_config.signature_checking))
1834
self.assertEqual(config.SIGN_ALWAYS,
1835
self.applyDeprecated(deprecated_in((2, 5, 0)),
1836
my_config.signing_policy))
1837
self.assertTrue(self.applyDeprecated(deprecated_in((2, 5, 0)),
1838
my_config.signature_needed))
1797
1840
def test_signatures_forced_branch(self):
1798
1841
my_config = self.get_branch_config(
1799
1842
global_config=sample_ignore_signatures,
1800
1843
branch_data_config=sample_always_signatures)
1801
self.assertEqual(config.CHECK_NEVER, my_config.signature_checking())
1802
self.assertEqual(config.SIGN_ALWAYS, my_config.signing_policy())
1803
self.assertTrue(my_config.signature_needed())
1844
self.assertEqual(config.CHECK_NEVER,
1845
self.applyDeprecated(deprecated_in((2, 5, 0)),
1846
my_config.signature_checking))
1847
self.assertEqual(config.SIGN_ALWAYS,
1848
self.applyDeprecated(deprecated_in((2, 5, 0)),
1849
my_config.signing_policy))
1850
self.assertTrue(self.applyDeprecated(deprecated_in((2, 5, 0)),
1851
my_config.signature_needed))
1805
1853
def test_gpg_signing_command(self):
1806
1854
my_config = self.get_branch_config(
1807
1855
global_config=sample_config_text,
1808
1856
# branch data cannot set gpg_signing_command
1809
1857
branch_data_config="gpg_signing_command=pgp")
1810
self.assertEqual('gnome-gpg', my_config.gpg_signing_command())
1858
self.assertEqual('gnome-gpg',
1859
self.applyDeprecated(deprecated_in((2, 5, 0)),
1860
my_config.gpg_signing_command))
1812
1862
def test_get_user_option_global(self):
1813
1863
my_config = self.get_branch_config(global_config=sample_config_text)
1820
1870
location_config=sample_branches_text)
1821
1871
self.assertEqual(my_config.branch.base, '/a/c')
1822
1872
self.assertEqual('bzrlib.tests.test_config.post_commit',
1823
my_config.post_commit())
1873
self.applyDeprecated(deprecated_in((2, 5, 0)),
1874
my_config.post_commit))
1824
1875
my_config.set_user_option('post_commit', 'rmtree_root')
1825
1876
# post-commit is ignored when present in branch data
1826
1877
self.assertEqual('bzrlib.tests.test_config.post_commit',
1827
my_config.post_commit())
1878
self.applyDeprecated(deprecated_in((2, 5, 0)),
1879
my_config.post_commit))
1828
1880
my_config.set_user_option('post_commit', 'rmtree_root',
1829
1881
store=config.STORE_LOCATION)
1830
self.assertEqual('rmtree_root', my_config.post_commit())
1882
self.assertEqual('rmtree_root',
1883
self.applyDeprecated(deprecated_in((2, 5, 0)),
1884
my_config.post_commit))
1832
1886
def test_config_precedence(self):
1833
1887
# FIXME: eager test, luckily no persitent config file makes it fail
2312
2366
class TestOptionConverterMixin(object):
2314
2368
def assertConverted(self, expected, opt, value):
2315
self.assertEquals(expected, opt.convert_from_unicode(value))
2369
self.assertEquals(expected, opt.convert_from_unicode(value),
2370
'Expecting %s, got %s' % (expected, value,))
2317
2372
def assertWarns(self, opt, value):
2376
2432
self.assertConverted(16, opt, u'16')
2435
class TestOptionWithSIUnitConverter(tests.TestCase, TestOptionConverterMixin):
2437
def get_option(self):
2438
return config.Option('foo', help='An integer in SI units.',
2439
from_unicode=config.int_SI_from_store)
2441
def test_convert_invalid(self):
2442
opt = self.get_option()
2443
self.assertConvertInvalid(opt, u'not-a-unit')
2444
self.assertConvertInvalid(opt, u'Gb') # Forgot the int
2445
self.assertConvertInvalid(opt, u'1b') # Forgot the unit
2446
self.assertConvertInvalid(opt, u'1GG')
2447
self.assertConvertInvalid(opt, u'1Mbb')
2448
self.assertConvertInvalid(opt, u'1MM')
2450
def test_convert_valid(self):
2451
opt = self.get_option()
2452
self.assertConverted(int(5e3), opt, u'5kb')
2453
self.assertConverted(int(5e6), opt, u'5M')
2454
self.assertConverted(int(5e6), opt, u'5MB')
2455
self.assertConverted(int(5e9), opt, u'5g')
2456
self.assertConverted(int(5e9), opt, u'5gB')
2457
self.assertConverted(100, opt, u'100')
2379
2460
class TestOptionWithListConverter(tests.TestCase, TestOptionConverterMixin):
2381
2462
def get_option(self):
4510
4591
self.assertEquals((None, None), (realname, address))
4594
class EmailOptionTests(tests.TestCase):
4596
def test_default_email_uses_BZR_EMAIL(self):
4597
# BZR_EMAIL takes precedence over EMAIL
4598
self.overrideEnv('BZR_EMAIL', 'jelmer@samba.org')
4599
self.overrideEnv('EMAIL', 'jelmer@apache.org')
4600
self.assertEquals('jelmer@samba.org', config.default_email())
4602
def test_default_email_uses_EMAIL(self):
4603
self.overrideEnv('BZR_EMAIL', None)
4604
self.overrideEnv('EMAIL', 'jelmer@apache.org')
4605
self.assertEquals('jelmer@apache.org', config.default_email())
4607
def test_BZR_EMAIL_overrides(self):
4608
self.overrideEnv('BZR_EMAIL', 'jelmer@apache.org')
4609
self.assertEquals('jelmer@apache.org',
4610
config.email_from_store('jelmer@debian.org'))
4611
self.overrideEnv('BZR_EMAIL', None)
4612
self.overrideEnv('EMAIL', 'jelmer@samba.org')
4613
self.assertEquals('jelmer@debian.org',
4614
config.email_from_store('jelmer@debian.org'))