1380
1380
def test_get_parent_map(self):
1381
1381
"""Requesting the same revision should be returned from cache"""
1382
self.assertEqual({}, self.caching_pp.get_cached_map())
1382
self.assertEqual({}, self.caching_pp._cache)
1383
1383
self.assertEqual({'a':('b',)}, self.caching_pp.get_parent_map(['a']))
1384
1384
self.assertEqual(['a'], self.inst_pp.calls)
1385
1385
self.assertEqual({'a':('b',)}, self.caching_pp.get_parent_map(['a']))
1386
1386
# No new call, as it should have been returned from the cache
1387
1387
self.assertEqual(['a'], self.inst_pp.calls)
1388
self.assertEqual({'a':('b',)}, self.caching_pp.get_cached_map())
1388
self.assertEqual({'a':('b',)}, self.caching_pp._cache)
1390
1390
def test_get_parent_map_not_present(self):
1391
1391
"""The cache should also track when a revision doesn't exist"""
1394
1394
self.assertEqual({}, self.caching_pp.get_parent_map(['b']))
1396
1396
self.assertEqual(['b'], self.inst_pp.calls)
1397
self.assertEqual({'b':None}, self.caching_pp._parents_map)
1397
self.assertEqual({'b':None}, self.caching_pp._cache)
1399
1399
def test_get_parent_map_mixed(self):
1400
1400
"""Anything that can be returned from cache, should be"""
1431
1432
self.assertEqual({'rev1': []},
1432
1433
self.caching_pp.get_parent_map(['rev1']))
1433
1434
self.assertEqual(['rev1'], self.inst_pp.calls)
1434
self.assertIs(None, self.caching_pp.get_cached_map())
1435
self.assertIs(None, self.caching_pp._cache)
1437
def test_cache_initially_empty(self):
1438
self.assertEqual({}, self.caching_pp._cache)
1436
1440
def test_cached(self):
1437
self.assertEqual({}, self.caching_pp.get_cached_map())
1438
1441
self.assertEqual({'rev1': []},
1439
1442
self.caching_pp.get_parent_map(['rev1']))
1440
1443
self.assertEqual(['rev1'], self.inst_pp.calls)
1441
1444
self.assertEqual({'rev1': [], 'rev2': ['rev1']},
1442
self.caching_pp.get_cached_map())
1445
self.caching_pp._cache)
1443
1446
self.assertEqual({'rev1': []},
1444
1447
self.caching_pp.get_parent_map(['rev1']))
1445
1448
self.assertEqual(['rev1'], self.inst_pp.calls)
1450
def test_disable_cache_clears_cache(self):
1451
# Put something in the cache
1452
self.caching_pp.get_parent_map(['rev1'])
1453
self.assertEqual(2, len(self.caching_pp._cache))
1446
1454
self.caching_pp.disable_cache()
1447
self.assertIs(None, self.caching_pp.get_cached_map())
1455
self.assertIs(None, self.caching_pp._cache)
1449
1457
def test_cache_misses(self):
1450
self.assertEqual({}, self.caching_pp.get_cached_map())
1451
1458
self.caching_pp.get_parent_map(['rev3'])
1452
1459
self.caching_pp.get_parent_map(['rev3'])
1453
1460
self.assertEqual(['rev3'], self.inst_pp.calls)