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

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

Issue 14125010: Docserver: Add support for viewing docs with a codereview patch applied (Closed) Base URL: https://src.chromium.org/svn/trunk/src/
Patch Set: add executable bits for tests 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 unified diff | Download patch
OLDNEW
(Empty)
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 from caching_rietveld_patcher import (CachingRietveldPatcher,
8 _VERSION_CACHE_MAXAGE)
9 from datetime import datetime
10 from file_system import FileNotFoundError
11 from future import Future
12 from object_store_creator import ObjectStoreCreator
13 from patcher import Patcher
14 from test_patcher import TestPatcher
15
16 _TEST_PATCH_VERSION = '1'
17 _TEST_PATCH_FILES = (['add.txt'], ['del.txt'], ['modify.txt'])
18 _TEST_PATCH_DATA = {
19 'add.txt': 'add',
20 'modify.txt': 'modify',
21 }
22
23 class FakeDateTime(object):
24 def __init__(self, time=datetime.now()):
25 self.time = time
26
27 def now(self):
28 return self.time
29
30 class CachingRietveldPatcherTest(unittest.TestCase):
31 def setUp(self):
32 self._datetime = FakeDateTime()
33 # CachingRietveldPatcher should always call Apply with binary=True.
34 self._test_patcher = TestPatcher(_TEST_PATCH_VERSION,
35 _TEST_PATCH_FILES,
36 _TEST_PATCH_DATA,
37 assert_binary=True)
38 self._patcher = CachingRietveldPatcher(
39 self._test_patcher,
40 ObjectStoreCreator('test', start_empty=False),
41 self._datetime)
42
43 def testGetVersion(self):
44 # Invalidate cache.
45 self._datetime.time += _VERSION_CACHE_MAXAGE
46 # Fill cache.
47 self._patcher.GetVersion()
48 count = self._test_patcher.get_version_count
49 # Should read from cache.
50 self._patcher.GetVersion()
51 self.assertEqual(count, self._test_patcher.get_version_count)
52 # Invalidate cache.
53 self._datetime.time += _VERSION_CACHE_MAXAGE
54 # Should fetch version.
55 self._patcher.GetVersion()
56 self.assertEqual(count + 1, self._test_patcher.get_version_count)
57
58 def testGetPatchedFiles(self):
59 # Fill cache.
60 self._patcher.GetPatchedFiles()
61 count = self._test_patcher.get_patched_files_count
62 # Should read from cache.
63 self._patcher.GetPatchedFiles()
64 self.assertEqual(count, self._test_patcher.get_patched_files_count)
65
66 def testApply(self):
67 # Fill cache.
68 self._patcher.Apply(['add.txt'], None).Get()
69 count = self._test_patcher.apply_count
70 # Should read from cache even though it's reading another file.
71 self._patcher.Apply(['modify.txt'], None).Get()
72 self.assertEqual(count, self._test_patcher.apply_count)
73
74 # Make sure RietveldPatcher handles |binary| correctly.
75 self.assertTrue(isinstance(self._patcher.Apply(['add.txt'], None, True).
76 Get()['add.txt'], str),
77 'Expected result is binary. It was text.')
78 self.assertTrue(isinstance(self._patcher.Apply(['add.txt'], None).
79 Get()['add.txt'], unicode),
80 'Expected result is text. It was binary.')
81
82 if __name__ == '__main__':
83 unittest.main()
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698