Home | History | Annotate | Download | only in server2
      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 
      6 import unittest
      7 
      8 from caching_file_system import CachingFileSystem
      9 from file_system import FileNotFoundError
     10 from host_file_system_creator import HostFileSystemCreator
     11 from object_store_creator import ObjectStoreCreator
     12 from offline_file_system import OfflineFileSystem
     13 from test_data.canned_data import CANNED_API_FILE_SYSTEM_DATA
     14 from test_file_system import TestFileSystem
     15 
     16 def ConstructorForTest(branch, revision=None):
     17   return TestFileSystem(CANNED_API_FILE_SYSTEM_DATA[str(branch)])
     18 
     19 class HostFileSystemCreatorTest(unittest.TestCase):
     20   def setUp(self):
     21     self._idle_path = 'api/idle.json'
     22 
     23   def testWithCaching(self):
     24     creator = HostFileSystemCreator(ObjectStoreCreator.ForTest(),
     25                                     constructor_for_test=ConstructorForTest)
     26 
     27     fs = creator.Create('trunk')
     28     firstRead = fs.ReadSingle(self._idle_path)
     29     CANNED_API_FILE_SYSTEM_DATA['trunk']['api']['idle.json'] = 'blah blah blah'
     30     secondRead = fs.ReadSingle(self._idle_path)
     31 
     32     self.assertEqual(firstRead, secondRead)
     33 
     34   def testWithOffline(self):
     35     creator = HostFileSystemCreator(ObjectStoreCreator.ForTest(),
     36                                     offline=True,
     37                                     constructor_for_test=ConstructorForTest)
     38 
     39     fs = creator.Create('trunk')
     40     # Offline file system should raise a FileNotFoundError if read is attempted.
     41     self.assertRaises(FileNotFoundError, fs.ReadSingle, self._idle_path)
     42 
     43 if __name__ == '__main__':
     44   unittest.main()
     45