1261
1260
def test_get_global_config(self):
1262
1261
my_config = config.BranchConfig(FakeBranch('http://example.com'))
1263
1262
global_config = 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()))
1263
self.failUnless(isinstance(global_config, config.GlobalConfig))
1264
self.failUnless(global_config is my_config._get_global_config())
1271
1266
def test__get_matching_sections_no_match(self):
1272
1267
self.get_branch_config('/')
1273
self.assertLocationMatching([])
1268
self.assertEqual([], self.my_location_config._get_matching_sections())
1275
1270
def test__get_matching_sections_exact(self):
1276
1271
self.get_branch_config('http://www.example.com')
1277
self.assertLocationMatching([('http://www.example.com', '')])
1272
self.assertEqual([('http://www.example.com', '')],
1273
self.my_location_config._get_matching_sections())
1279
1275
def test__get_matching_sections_suffix_does_not(self):
1280
1276
self.get_branch_config('http://www.example.com-com')
1281
self.assertLocationMatching([])
1277
self.assertEqual([], self.my_location_config._get_matching_sections())
1283
1279
def test__get_matching_sections_subdir_recursive(self):
1284
1280
self.get_branch_config('http://www.example.com/com')
1285
self.assertLocationMatching([('http://www.example.com', 'com')])
1281
self.assertEqual([('http://www.example.com', 'com')],
1282
self.my_location_config._get_matching_sections())
1287
1284
def test__get_matching_sections_ignoreparent(self):
1288
1285
self.get_branch_config('http://www.example.com/ignoreparent')
1289
self.assertLocationMatching([('http://www.example.com/ignoreparent',
1286
self.assertEqual([('http://www.example.com/ignoreparent', '')],
1287
self.my_location_config._get_matching_sections())
1292
1289
def test__get_matching_sections_ignoreparent_subdir(self):
1293
1290
self.get_branch_config(
1294
1291
'http://www.example.com/ignoreparent/childbranch')
1295
self.assertLocationMatching([('http://www.example.com/ignoreparent',
1292
self.assertEqual([('http://www.example.com/ignoreparent',
1294
self.my_location_config._get_matching_sections())
1298
1296
def test__get_matching_sections_subdir_trailing_slash(self):
1299
1297
self.get_branch_config('/b')
1300
self.assertLocationMatching([('/b/', '')])
1298
self.assertEqual([('/b/', '')],
1299
self.my_location_config._get_matching_sections())
1302
1301
def test__get_matching_sections_subdir_child(self):
1303
1302
self.get_branch_config('/a/foo')
1304
self.assertLocationMatching([('/a/*', ''), ('/a/', 'foo')])
1303
self.assertEqual([('/a/*', ''), ('/a/', 'foo')],
1304
self.my_location_config._get_matching_sections())
1306
1306
def test__get_matching_sections_subdir_child_child(self):
1307
1307
self.get_branch_config('/a/foo/bar')
1308
self.assertLocationMatching([('/a/*', 'bar'), ('/a/', 'foo/bar')])
1308
self.assertEqual([('/a/*', 'bar'), ('/a/', 'foo/bar')],
1309
self.my_location_config._get_matching_sections())
1310
1311
def test__get_matching_sections_trailing_slash_with_children(self):
1311
1312
self.get_branch_config('/a/')
1312
self.assertLocationMatching([('/a/', '')])
1313
self.assertEqual([('/a/', '')],
1314
self.my_location_config._get_matching_sections())
1314
1316
def test__get_matching_sections_explicit_over_glob(self):
1315
1317
# XXX: 2006-09-08 jamesh
1317
1319
# was a config section for '/a/?', it would get precedence
1319
1321
self.get_branch_config('/a/c')
1320
self.assertLocationMatching([('/a/c', ''), ('/a/*', ''), ('/a/', 'c')])
1322
self.assertEqual([('/a/c', ''), ('/a/*', ''), ('/a/', 'c')],
1323
self.my_location_config._get_matching_sections())
1322
1325
def test__get_option_policy_normal(self):
1323
1326
self.get_branch_config('http://www.example.com')
2466
2469
# test_user_prompted ?
2467
2470
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.assertIsNot(None, realname)
2487
self.assertIsNot(None, address)
2489
self.assertEquals((None, None), (realname, address))