def test_BadRead(self):
     # Check that reading from a non-existant key, fails.
     with working_directory.TemporaryWorkingDirectory() as work_dir:
         mem_storage = fake_storage.FakeStorage()
         storage = local_storage_cache.LocalStorageCache(
             cache_path=os.path.join(work_dir, 'db'), storage=mem_storage)
         self.assertEquals(None, storage.GetData('foo'))
 def test_HitWrappedStorage(self):
     # Check that if something isn't locally cached primary storage is hit.
     with working_directory.TemporaryWorkingDirectory() as work_dir:
         mem_storage = fake_storage.FakeStorage()
         storage = local_storage_cache.LocalStorageCache(
             cache_path=os.path.join(work_dir, 'db'), storage=mem_storage)
         mem_storage.PutData('hello', 'foo')
         self.assertEquals('hello', storage.GetData('foo'))
 def test_HitLocalFirst(self):
     # Check that reading hits local storage first.
     with working_directory.TemporaryWorkingDirectory() as work_dir:
         mem_storage = fake_storage.FakeStorage()
         storage = local_storage_cache.LocalStorageCache(
             cache_path=os.path.join(work_dir, 'db'), storage=mem_storage)
         storage.PutData('there', 'foo')
         mem_storage.PutData('hello', 'foo')
         self.assertEquals('there', storage.GetData('foo'))
 def test_Exists(self):
     # Checks that exists works properly.
     with working_directory.TemporaryWorkingDirectory() as work_dir:
         mem_storage = fake_storage.FakeStorage()
         storage = local_storage_cache.LocalStorageCache(
             cache_path=os.path.join(work_dir, 'db'), storage=mem_storage)
         storage.PutData('bar', 'foo')
         self.assertTrue(storage.Exists('foo'))
         self.assertFalse(storage.Exists('bad_foo'))
 def test_WriteRead(self):
     # Check that things written with PutData can be read back.
     with working_directory.TemporaryWorkingDirectory() as work_dir:
         mem_storage = fake_storage.FakeStorage()
         storage = local_storage_cache.LocalStorageCache(
             cache_path=os.path.join(work_dir, 'db'), storage=mem_storage)
         storage.PutData('bar', 'foo')
         self.CanBeReadBothWays(storage, 'foo',
                                os.path.join(work_dir, 'out'), 'bar')
 def test_AcceptSlashesAndDots(self):
     # Check that keys with slashes and dots are okay.
     with working_directory.TemporaryWorkingDirectory() as work_dir:
         mem_storage = fake_storage.FakeStorage()
         storage = local_storage_cache.LocalStorageCache(
             cache_path=os.path.join(work_dir, 'db'), storage=mem_storage)
         storage.PutData('hello', 'this/is/a/cool_test.txt')
         self.assertEquals('hello',
                           storage.GetData('this/is/a/cool_test.txt'))
 def test_WriteOnlyToLocal(self):
     # Check that things written hit local storage, not the network.
     with working_directory.TemporaryWorkingDirectory() as work_dir:
         mem_storage = fake_storage.FakeStorage()
         storage = local_storage_cache.LocalStorageCache(
             cache_path=os.path.join(work_dir, 'db'), storage=mem_storage)
         storage.PutData('bar', 'foo')
         self.assertEquals(None, mem_storage.GetData('foo'))
         bar = os.path.join(work_dir, 'bar_file')
         file_tools.WriteFile('bar', bar)
         storage.PutFile(bar, 'foo')
         self.assertEquals(None, mem_storage.GetData('foo'))
 def test_InvalidKey(self):
     # Check that an invalid key asserts.
     with working_directory.TemporaryWorkingDirectory() as work_dir:
         mem_storage = fake_storage.FakeStorage()
         storage = local_storage_cache.LocalStorageCache(
             cache_path=os.path.join(work_dir, 'db'), storage=mem_storage)
         bar = os.path.join(work_dir, 'bar_file')
         file_tools.WriteFile('bar', bar)
         self.assertRaises(KeyError, storage.PutData, 'bar', 'foo$')
         self.assertRaises(KeyError, storage.GetData, 'foo^')
         self.assertRaises(KeyError, storage.PutFile, bar, 'foo#')
         self.assertRaises(KeyError, storage.GetFile, 'foo!', 'bar')
Exemplo n.º 9
0
    def CreateStorage(self):
        """Create a storage object for this build.

    Returns:
      A storage object (GSDStorage).
    """
        if self._options.buildbot:
            return gsd_storage.GSDStorage(write_bucket='nativeclient-once',
                                          read_buckets=['nativeclient-once'])
        elif self._options.trybot:
            return gsd_storage.GSDStorage(
                write_bucket='nativeclient-once-try',
                read_buckets=['nativeclient-once', 'nativeclient-once-try'])
        else:
            read_buckets = []
            if self._options.use_remote_cache:
                read_buckets += ['nativeclient-once']
            return local_storage_cache.LocalStorageCache(
                cache_path=self._options.cache,
                storage=gsd_storage.GSDStorage(write_bucket=None,
                                               read_buckets=read_buckets))