host_file_system_provider_test.py revision f2477e01787aa58f445919b809d89e252beef54f
1#!/usr/bin/env python 2# Copyright 2013 The Chromium Authors. All rights reserved. 3# Use of this source code is governed by a BSD-style license that can be 4# found in the LICENSE file. 5 6from copy import deepcopy 7import unittest 8 9from caching_file_system import CachingFileSystem 10from extensions_paths import API 11from file_system import FileNotFoundError 12from host_file_system_provider import HostFileSystemProvider 13from object_store_creator import ObjectStoreCreator 14from offline_file_system import OfflineFileSystem 15from test_data.canned_data import CANNED_API_FILE_SYSTEM_DATA 16from test_file_system import TestFileSystem 17 18class HostFileSystemProviderTest(unittest.TestCase): 19 def setUp(self): 20 self._idle_path = '%s/idle.json' % API 21 self._canned_data = deepcopy(CANNED_API_FILE_SYSTEM_DATA) 22 23 def _constructor_for_test(self, branch, **optargs): 24 return TestFileSystem(self._canned_data[branch]) 25 26 def testWithCaching(self): 27 creator = HostFileSystemProvider( 28 ObjectStoreCreator.ForTest(), 29 constructor_for_test=self._constructor_for_test) 30 31 fs = creator.GetBranch('1500') 32 first_read = fs.ReadSingle(self._idle_path).Get() 33 self._canned_data['1500']['chrome']['common']['extensions'].get('api' 34 )['idle.json'] = 'blah blah blah' 35 second_read = fs.ReadSingle(self._idle_path).Get() 36 37 self.assertEqual(first_read, second_read) 38 39 def testWithOffline(self): 40 creator = HostFileSystemProvider( 41 ObjectStoreCreator.ForTest(), 42 offline=True, 43 constructor_for_test=self._constructor_for_test) 44 45 fs = creator.GetBranch('1500') 46 # Offline file system should raise a FileNotFoundError if read is attempted. 47 self.assertRaises(FileNotFoundError, fs.ReadSingle(self._idle_path).Get) 48 49if __name__ == '__main__': 50 unittest.main() 51