1260
1261
def test_get_global_config(self):
1261
1262
my_config = config.BranchConfig(FakeBranch('http://example.com'))
1262
1263
global_config = my_config._get_global_config()
1263
self.failUnless(isinstance(global_config, config.GlobalConfig))
1264
self.failUnless(global_config is my_config._get_global_config())
1264
self.assertIsInstance(global_config, config.GlobalConfig)
1265
self.assertIs(global_config, my_config._get_global_config())
1267
def assertLocationMatching(self, expected):
1268
self.assertEqual(expected,
1269
list(self.my_location_config._get_matching_sections()))
1266
1271
def test__get_matching_sections_no_match(self):
1267
1272
self.get_branch_config('/')
1268
self.assertEqual([], self.my_location_config._get_matching_sections())
1273
self.assertLocationMatching([])
1270
1275
def test__get_matching_sections_exact(self):
1271
1276
self.get_branch_config('http://www.example.com')
1272
self.assertEqual([('http://www.example.com', '')],
1273
self.my_location_config._get_matching_sections())
1277
self.assertLocationMatching([('http://www.example.com', '')])
1275
1279
def test__get_matching_sections_suffix_does_not(self):
1276
1280
self.get_branch_config('http://www.example.com-com')
1277
self.assertEqual([], self.my_location_config._get_matching_sections())
1281
self.assertLocationMatching([])
1279
1283
def test__get_matching_sections_subdir_recursive(self):
1280
1284
self.get_branch_config('http://www.example.com/com')
1281
self.assertEqual([('http://www.example.com', 'com')],
1282
self.my_location_config._get_matching_sections())
1285
self.assertLocationMatching([('http://www.example.com', 'com')])
1284
1287
def test__get_matching_sections_ignoreparent(self):
1285
1288
self.get_branch_config('http://www.example.com/ignoreparent')
1286
self.assertEqual([('http://www.example.com/ignoreparent', '')],
1287
self.my_location_config._get_matching_sections())
1289
self.assertLocationMatching([('http://www.example.com/ignoreparent',
1289
1292
def test__get_matching_sections_ignoreparent_subdir(self):
1290
1293
self.get_branch_config(
1291
1294
'http://www.example.com/ignoreparent/childbranch')
1292
self.assertEqual([('http://www.example.com/ignoreparent',
1294
self.my_location_config._get_matching_sections())
1295
self.assertLocationMatching([('http://www.example.com/ignoreparent',
1296
1298
def test__get_matching_sections_subdir_trailing_slash(self):
1297
1299
self.get_branch_config('/b')
1298
self.assertEqual([('/b/', '')],
1299
self.my_location_config._get_matching_sections())
1300
self.assertLocationMatching([('/b/', '')])
1301
1302
def test__get_matching_sections_subdir_child(self):
1302
1303
self.get_branch_config('/a/foo')
1303
self.assertEqual([('/a/*', ''), ('/a/', 'foo')],
1304
self.my_location_config._get_matching_sections())
1304
self.assertLocationMatching([('/a/*', ''), ('/a/', 'foo')])
1306
1306
def test__get_matching_sections_subdir_child_child(self):
1307
1307
self.get_branch_config('/a/foo/bar')
1308
self.assertEqual([('/a/*', 'bar'), ('/a/', 'foo/bar')],
1309
self.my_location_config._get_matching_sections())
1308
self.assertLocationMatching([('/a/*', 'bar'), ('/a/', 'foo/bar')])
1311
1310
def test__get_matching_sections_trailing_slash_with_children(self):
1312
1311
self.get_branch_config('/a/')
1313
self.assertEqual([('/a/', '')],
1314
self.my_location_config._get_matching_sections())
1312
self.assertLocationMatching([('/a/', '')])
1316
1314
def test__get_matching_sections_explicit_over_glob(self):
1317
1315
# XXX: 2006-09-08 jamesh
1319
1317
# was a config section for '/a/?', it would get precedence
1321
1319
self.get_branch_config('/a/c')
1322
self.assertEqual([('/a/c', ''), ('/a/*', ''), ('/a/', 'c')],
1323
self.my_location_config._get_matching_sections())
1320
self.assertLocationMatching([('/a/c', ''), ('/a/*', ''), ('/a/', 'c')])
1325
1322
def test__get_option_policy_normal(self):
1326
1323
self.get_branch_config('http://www.example.com')
2469
2466
# test_user_prompted ?
2470
2467
class TestAuthenticationRing(tests.TestCaseWithTransport):
2471
class TestAutoUserId(tests.TestCase):
2472
"""Test inferring an automatic user name."""
2474
def test_auto_user_id(self):
2475
"""Automatic inference of user name.
2477
This is a bit hard to test in an isolated way, because it depends on
2478
system functions that go direct to /etc or perhaps somewhere else.
2479
But it's reasonable to say that on Unix, with an /etc/mailname, we ought
2480
to be able to choose a user name with no configuration.
2482
if sys.platform == 'win32':
2483
raise TestSkipped("User name inference not implemented on win32")
2484
realname, address = config._auto_user_id()
2485
if os.path.exists('/etc/mailname'):
2486
self.assertTrue(realname)
2487
self.assertTrue(address)
2489
self.assertEquals((None, None), (realname, address))