Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(73)

Unified Diff: chrome/common/extensions/docs/server2/caching_file_system_test.py

Issue 15009006: Docserver: refactor Servlet, ObjectStore, and ServerInstance architecture to (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cduvall, redirect fix Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/common/extensions/docs/server2/caching_file_system_test.py
diff --git a/chrome/common/extensions/docs/server2/caching_file_system_test.py b/chrome/common/extensions/docs/server2/caching_file_system_test.py
index 9eee8161076551be90a9df7ad3b693dd7b720fd2..e7f7ecfb67670a29208990f49b4439540304851b 100755
--- a/chrome/common/extensions/docs/server2/caching_file_system_test.py
+++ b/chrome/common/extensions/docs/server2/caching_file_system_test.py
@@ -11,6 +11,7 @@ from caching_file_system import CachingFileSystem
from file_system import FileSystem, StatInfo
from future import Future
from local_file_system import LocalFileSystem
+from mock_file_system import MockFileSystem
from object_store_creator import ObjectStoreCreator
from test_file_system import TestFileSystem
from test_object_store import TestObjectStore
@@ -25,22 +26,25 @@ class CachingFileSystemTest(unittest.TestCase):
# the underlying object store data is the same, within each test.
self._object_store_dbs = {}
- def _CreateCachingFileSystem(self, fs, use_existing_values=False):
- def object_store_constructor(namespace, start_empty=False):
+ def _CreateCachingFileSystem(self, fs, start_empty=False):
+ def store_type_constructor(namespace, start_empty=False):
+ '''Returns an ObjectStore backed onto test-lifetime-persistent objects
+ in |_object_store_dbs|.
+ '''
if namespace not in self._object_store_dbs:
self._object_store_dbs[namespace] = {}
db = self._object_store_dbs[namespace]
if start_empty:
db.clear()
return TestObjectStore(namespace, init=db)
- return CachingFileSystem(
- fs,
- ObjectStoreCreator.TestFactory(store_type=object_store_constructor),
- use_existing_values=use_existing_values)
+ object_store_creator = ObjectStoreCreator('test',
+ start_empty=start_empty,
+ store_type=store_type_constructor)
+ return CachingFileSystem(fs, object_store_creator)
def testReadFiles(self):
- file_system = CachingFileSystem(_CreateLocalFs(),
- ObjectStoreCreator.TestFactory())
+ file_system = self._CreateCachingFileSystem(
+ _CreateLocalFs(), start_empty=False)
expected = {
'./test1.txt': 'test1\n',
'./test2.txt': 'test2\n',
@@ -51,8 +55,8 @@ class CachingFileSystemTest(unittest.TestCase):
file_system.Read(['./test1.txt', './test2.txt', './test3.txt']).Get())
def testListDir(self):
- file_system = CachingFileSystem(_CreateLocalFs(),
- ObjectStoreCreator.TestFactory())
+ file_system = self._CreateCachingFileSystem(
+ _CreateLocalFs(), start_empty=False)
expected = ['dir/'] + ['file%d.html' % i for i in range(7)]
file_system._read_object_store.Set(
'list/',
@@ -66,7 +70,7 @@ class CachingFileSystemTest(unittest.TestCase):
self.assertEqual(expected, sorted(file_system.ReadSingle('list/')))
def testCaching(self):
- fake_fs = TestFileSystem({
+ test_fs = TestFileSystem({
'bob': {
'bob0': 'bob/bob0 contents',
'bob1': 'bob/bob1 contents',
@@ -74,75 +78,79 @@ class CachingFileSystemTest(unittest.TestCase):
'bob3': 'bob/bob3 contents',
}
})
- file_system = self._CreateCachingFileSystem(fake_fs)
+ mock_fs = MockFileSystem(test_fs)
+ def create_empty_caching_fs():
+ return self._CreateCachingFileSystem(mock_fs, start_empty=True)
+ file_system = create_empty_caching_fs()
self.assertEqual('bob/bob0 contents', file_system.ReadSingle('bob/bob0'))
- self.assertTrue(*fake_fs.CheckAndReset(read_count=1, stat_count=1))
+ self.assertTrue(*mock_fs.CheckAndReset(read_count=1, stat_count=1))
# Resource has been cached, so test resource is not re-fetched.
self.assertEqual('bob/bob0 contents', file_system.ReadSingle('bob/bob0'))
- self.assertTrue(*fake_fs.CheckAndReset())
+ self.assertTrue(*mock_fs.CheckAndReset())
# Test if the Stat version is the same the resource is not re-fetched.
- file_system = self._CreateCachingFileSystem(fake_fs)
+ file_system = create_empty_caching_fs()
self.assertEqual('bob/bob0 contents', file_system.ReadSingle('bob/bob0'))
- self.assertTrue(*fake_fs.CheckAndReset(stat_count=1))
+ self.assertTrue(*mock_fs.CheckAndReset(stat_count=1))
# Test if there is a newer version, the resource is re-fetched.
- file_system = self._CreateCachingFileSystem(fake_fs)
- fake_fs.IncrementStat();
+ file_system = create_empty_caching_fs()
+ test_fs.IncrementStat();
self.assertEqual('bob/bob0 contents', file_system.ReadSingle('bob/bob0'))
- self.assertTrue(*fake_fs.CheckAndReset(read_count=1, stat_count=1))
+ self.assertTrue(*mock_fs.CheckAndReset(read_count=1, stat_count=1))
# Test directory and subdirectory stats are cached.
- file_system = self._CreateCachingFileSystem(fake_fs)
+ file_system = create_empty_caching_fs()
file_system._stat_object_store.Del('bob/bob0')
file_system._read_object_store.Del('bob/bob0')
file_system._stat_object_store.Del('bob/bob1')
- fake_fs.IncrementStat();
+ test_fs.IncrementStat();
self.assertEqual('bob/bob1 contents', file_system.ReadSingle('bob/bob1'))
self.assertEqual('bob/bob0 contents', file_system.ReadSingle('bob/bob0'))
- self.assertTrue(*fake_fs.CheckAndReset(read_count=2, stat_count=1))
+ self.assertTrue(*mock_fs.CheckAndReset(read_count=2, stat_count=1))
self.assertEqual('bob/bob1 contents', file_system.ReadSingle('bob/bob1'))
- self.assertTrue(*fake_fs.CheckAndReset())
+ self.assertTrue(*mock_fs.CheckAndReset())
# Test a more recent parent directory doesn't force a refetch of children.
- file_system = self._CreateCachingFileSystem(fake_fs)
+ file_system = create_empty_caching_fs()
file_system._read_object_store.Del('bob/bob0')
file_system._read_object_store.Del('bob/bob1')
self.assertEqual('bob/bob1 contents', file_system.ReadSingle('bob/bob1'))
self.assertEqual('bob/bob2 contents', file_system.ReadSingle('bob/bob2'))
self.assertEqual('bob/bob3 contents', file_system.ReadSingle('bob/bob3'))
- self.assertTrue(*fake_fs.CheckAndReset(read_count=3, stat_count=1))
+ self.assertTrue(*mock_fs.CheckAndReset(read_count=3, stat_count=1))
- fake_fs.IncrementStat(path='bob/')
- file_system = self._CreateCachingFileSystem(fake_fs)
+ test_fs.IncrementStat(path='bob/')
+ file_system = create_empty_caching_fs()
self.assertEqual('bob/bob1 contents', file_system.ReadSingle('bob/bob1'))
self.assertEqual('bob/bob2 contents', file_system.ReadSingle('bob/bob2'))
self.assertEqual('bob/bob3 contents', file_system.ReadSingle('bob/bob3'))
- self.assertTrue(*fake_fs.CheckAndReset(stat_count=1))
+ self.assertTrue(*mock_fs.CheckAndReset(stat_count=1))
- file_system = self._CreateCachingFileSystem(fake_fs)
+ file_system = create_empty_caching_fs()
file_system._stat_object_store.Del('bob/bob0')
self.assertEqual('bob/bob0 contents', file_system.ReadSingle('bob/bob0'))
- self.assertTrue(*fake_fs.CheckAndReset(read_count=1, stat_count=1))
+ self.assertTrue(*mock_fs.CheckAndReset(read_count=1, stat_count=1))
self.assertEqual('bob/bob0 contents', file_system.ReadSingle('bob/bob0'))
- self.assertTrue(*fake_fs.CheckAndReset())
+ self.assertTrue(*mock_fs.CheckAndReset())
def testCachedStat(self):
- fake_fs = TestFileSystem({
+ test_fs = TestFileSystem({
'bob': {
'bob0': 'bob/bob0 contents',
'bob1': 'bob/bob1 contents'
}
})
- file_system = self._CreateCachingFileSystem(fake_fs,
- use_existing_values=True)
+ mock_fs = MockFileSystem(test_fs)
+
+ file_system = self._CreateCachingFileSystem(mock_fs, start_empty=False)
self.assertEqual(StatInfo('0'), file_system.Stat('bob/bob0'))
- self.assertTrue(*fake_fs.CheckAndReset(stat_count=1))
+ self.assertTrue(*mock_fs.CheckAndReset(stat_count=1))
self.assertEqual(StatInfo('0'), file_system.Stat('bob/bob0'))
- self.assertTrue(*fake_fs.CheckAndReset())
+ self.assertTrue(*mock_fs.CheckAndReset())
# Caching happens on a directory basis, so reading other files from that
# directory won't result in a stat.
@@ -150,41 +158,42 @@ class CachingFileSystemTest(unittest.TestCase):
self.assertEqual(
StatInfo('0', child_versions={'bob0': '0', 'bob1': '0'}),
file_system.Stat('bob/'))
- self.assertTrue(*fake_fs.CheckAndReset())
+ self.assertTrue(*mock_fs.CheckAndReset())
# Even though the stat is bumped, the object store still has it cached so
# this won't update.
- fake_fs.IncrementStat()
+ test_fs.IncrementStat()
self.assertEqual(StatInfo('0'), file_system.Stat('bob/bob0'))
self.assertEqual(StatInfo('0'), file_system.Stat('bob/bob1'))
self.assertEqual(
StatInfo('0', child_versions={'bob0': '0', 'bob1': '0'}),
file_system.Stat('bob/'))
- self.assertTrue(*fake_fs.CheckAndReset())
+ self.assertTrue(*mock_fs.CheckAndReset())
def testFreshStat(self):
- fake_fs = TestFileSystem({
+ test_fs = TestFileSystem({
'bob': {
'bob0': 'bob/bob0 contents',
'bob1': 'bob/bob1 contents'
}
})
+ mock_fs = MockFileSystem(test_fs)
def run_expecting_stat(stat):
def run():
- file_system = self._CreateCachingFileSystem(fake_fs)
+ file_system = self._CreateCachingFileSystem(mock_fs, start_empty=True)
self.assertEqual(
StatInfo(stat, child_versions={'bob0': stat, 'bob1': stat}),
file_system.Stat('bob/'))
- self.assertTrue(*fake_fs.CheckAndReset(stat_count=1))
+ self.assertTrue(*mock_fs.CheckAndReset(stat_count=1))
self.assertEqual(StatInfo(stat), file_system.Stat('bob/bob0'))
self.assertEqual(StatInfo(stat), file_system.Stat('bob/bob0'))
- self.assertTrue(*fake_fs.CheckAndReset())
+ self.assertTrue(*mock_fs.CheckAndReset())
run()
run()
run_expecting_stat('0')
- fake_fs.IncrementStat()
+ test_fs.IncrementStat()
run_expecting_stat('1')
if __name__ == '__main__':

Powered by Google App Engine
This is Rietveld 408576698