def test_account_details_cached_miss_mtime(self): mc = SimMemcache() the_path = "/tmp/bar" def mock_get_account_details_from_fs(acc_path, acc_stats): mt = 100 cc = 2 cl = ['a', 'b'] return utils.AccountDetails(mt, cc, cl) def mock_do_stat(path): class MockStat(object): def __init__(self, mtime): self.st_mtime = mtime return MockStat(100) ad = mock_get_account_details_from_fs(the_path, None) ad.container_list = ['x', 'y'] ad.mtime = 200 mc.set(utils.MEMCACHE_ACCOUNT_DETAILS_KEY_PREFIX + utils.strip_obj_storage_path(the_path), ad) orig_gcdff = utils._get_account_details_from_fs orig_ds = utils.do_stat utils._get_account_details_from_fs = mock_get_account_details_from_fs utils.do_stat = mock_do_stat try: retval = utils.get_account_details(the_path, memcache=mc) correct_ad = mock_get_account_details_from_fs(the_path, None) assert retval == (correct_ad.container_list, correct_ad.container_count) assert correct_ad != ad finally: utils._get_account_details_from_fs = orig_gcdff utils.do_stat = orig_ds
def test_account_details_uncached(self): the_path = "/tmp/bar" def mock_get_account_details_from_fs(acc_path, acc_stats): mt = 100 cc = 2 cl = ['a', 'b'] return utils.AccountDetails(mt, cc, cl) orig_gcdff = utils._get_account_details_from_fs utils._get_account_details_from_fs = mock_get_account_details_from_fs try: retval = utils.get_account_details(the_path) ad = mock_get_account_details_from_fs(the_path, None) assert retval == (ad.container_list, ad.container_count) finally: utils._get_account_details_from_fs = orig_gcdff