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

Side by Side Diff: chrome/common/extensions/docs/server2/caching_file_system_test.py

Issue 14267024: Devserver: have a separate ObjectStore namespace (both memcache and datastore) (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: remove _CheckVersions Created 7 years, 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 import os 6 import os
7 import sys 7 import sys
8 import unittest 8 import unittest
9 9
10 from caching_file_system import CachingFileSystem 10 from caching_file_system import CachingFileSystem
11 from file_system import FileSystem, StatInfo 11 from file_system import FileSystem, StatInfo
12 from future import Future 12 from future import Future
13 from local_file_system import LocalFileSystem 13 from local_file_system import LocalFileSystem
14 from object_store_creator import ObjectStoreCreator 14 from object_store_creator import ObjectStoreCreator
15 from test_file_system import TestFileSystem 15 from test_file_system import TestFileSystem
16 16
17 def _CreateLocalFs(): 17 def _CreateLocalFs():
18 return LocalFileSystem( 18 return LocalFileSystem(
19 os.path.join(sys.path[0], 'test_data', 'file_system')) 19 os.path.join(sys.path[0], 'test_data', 'file_system'))
20 20
21 class CachingFileSystemTest(unittest.TestCase): 21 class CachingFileSystemTest(unittest.TestCase):
22 def testReadFiles(self): 22 def testReadFiles(self):
23 file_system = CachingFileSystem(_CreateLocalFs(), 23 file_system = CachingFileSystem(_CreateLocalFs(),
24 ObjectStoreCreator.Factory()) 24 ObjectStoreCreator.TestFactory())
25 expected = { 25 expected = {
26 './test1.txt': 'test1\n', 26 './test1.txt': 'test1\n',
27 './test2.txt': 'test2\n', 27 './test2.txt': 'test2\n',
28 './test3.txt': 'test3\n', 28 './test3.txt': 'test3\n',
29 } 29 }
30 self.assertEqual( 30 self.assertEqual(
31 expected, 31 expected,
32 file_system.Read(['./test1.txt', './test2.txt', './test3.txt']).Get()) 32 file_system.Read(['./test1.txt', './test2.txt', './test3.txt']).Get())
33 33
34 def testListDir(self): 34 def testListDir(self):
35 file_system = CachingFileSystem(_CreateLocalFs(), 35 file_system = CachingFileSystem(_CreateLocalFs(),
36 ObjectStoreCreator.Factory()) 36 ObjectStoreCreator.TestFactory())
37 expected = ['dir/'] + ['file%d.html' % i for i in range(7)] 37 expected = ['dir/'] + ['file%d.html' % i for i in range(7)]
38 file_system._read_object_store.Set( 38 file_system._read_object_store.Set(
39 'list/', 39 'list/',
40 (expected, file_system.Stat('list/').version)) 40 (expected, file_system.Stat('list/').version))
41 self.assertEqual(expected, sorted(file_system.ReadSingle('list/'))) 41 self.assertEqual(expected, sorted(file_system.ReadSingle('list/')))
42 42
43 expected.remove('file0.html') 43 expected.remove('file0.html')
44 file_system._read_object_store.Set( 44 file_system._read_object_store.Set(
45 'list/', 45 'list/',
46 (expected, file_system.Stat('list/').version)) 46 (expected, file_system.Stat('list/').version))
47 self.assertEqual(expected, sorted(file_system.ReadSingle('list/'))) 47 self.assertEqual(expected, sorted(file_system.ReadSingle('list/')))
48 48
49 def testCaching(self): 49 def testCaching(self):
50 fake_fs = TestFileSystem({ 50 fake_fs = TestFileSystem({
51 'bob': { 51 'bob': {
52 'bob0': 'bob/bob0 contents', 52 'bob0': 'bob/bob0 contents',
53 'bob1': 'bob/bob1 contents', 53 'bob1': 'bob/bob1 contents',
54 'bob2': 'bob/bob2 contents', 54 'bob2': 'bob/bob2 contents',
55 'bob3': 'bob/bob3 contents', 55 'bob3': 'bob/bob3 contents',
56 } 56 }
57 }) 57 })
58 file_system = CachingFileSystem(fake_fs, ObjectStoreCreator.Factory()) 58 file_system = CachingFileSystem(fake_fs, ObjectStoreCreator.TestFactory())
59 59
60 self.assertEqual('bob/bob0 contents', file_system.ReadSingle('bob/bob0')) 60 self.assertEqual('bob/bob0 contents', file_system.ReadSingle('bob/bob0'))
61 self.assertTrue(fake_fs.CheckAndReset(read_count=1, stat_count=1)) 61 self.assertTrue(fake_fs.CheckAndReset(read_count=1, stat_count=1))
62 62
63 # Resource has been cached, so test resource is not re-fetched. 63 # Resource has been cached, so test resource is not re-fetched.
64 self.assertEqual('bob/bob0 contents', file_system.ReadSingle('bob/bob0')) 64 self.assertEqual('bob/bob0 contents', file_system.ReadSingle('bob/bob0'))
65 self.assertTrue(fake_fs.CheckAndReset()) 65 self.assertTrue(fake_fs.CheckAndReset())
66 66
67 # Test if the Stat version is the same the resource is not re-fetched. 67 # Test if the Stat version is the same the resource is not re-fetched.
68 file_system._stat_object_store.Del('bob/bob0') 68 file_system._stat_object_store.Del('bob/bob0')
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
100 self.assertTrue(fake_fs.CheckAndReset()) 100 self.assertTrue(fake_fs.CheckAndReset())
101 101
102 file_system._stat_object_store.Del('bob/bob0') 102 file_system._stat_object_store.Del('bob/bob0')
103 self.assertEqual('bob/bob0 contents', file_system.ReadSingle('bob/bob0')) 103 self.assertEqual('bob/bob0 contents', file_system.ReadSingle('bob/bob0'))
104 self.assertTrue(fake_fs.CheckAndReset(read_count=1, stat_count=1)) 104 self.assertTrue(fake_fs.CheckAndReset(read_count=1, stat_count=1))
105 self.assertEqual('bob/bob0 contents', file_system.ReadSingle('bob/bob0')) 105 self.assertEqual('bob/bob0 contents', file_system.ReadSingle('bob/bob0'))
106 self.assertTrue(fake_fs.CheckAndReset()) 106 self.assertTrue(fake_fs.CheckAndReset())
107 107
108 if __name__ == '__main__': 108 if __name__ == '__main__':
109 unittest.main() 109 unittest.main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698