| # Copyright 2013 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| from file_system import FileSystem, FileNotFoundError |
| from future import Future |
| |
| |
| class OfflineFileSystem(FileSystem): |
| '''An offline FileSystem which masquerades as another file system. It throws |
| FileNotFound error for all operations, and overrides GetIdentity. |
| ''' |
| def __init__(self, fs): |
| self._fs = fs |
| |
| def Read(self, paths, skip_not_found=False): |
| if skip_not_found: return Future(value={}) |
| def raise_file_not_found(): |
| raise FileNotFoundError('File system is offline, cannot read %s' % paths) |
| return Future(callback=raise_file_not_found) |
| |
| def Stat(self, path): |
| raise FileNotFoundError('File system is offline, cannot read %s' % path) |
| |
| def GetIdentity(self): |
| return self._fs.GetIdentity() |