OLD | NEW |
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 from copy import deepcopy | 6 from copy import deepcopy |
7 from file_system import FileNotFoundError, StatInfo | 7 from file_system import FileNotFoundError, StatInfo |
8 from test_file_system import TestFileSystem, MoveTo | 8 from test_file_system import TestFileSystem, MoveTo |
9 import unittest | 9 import unittest |
10 | 10 |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
94 sorted(fs.ReadSingle('/apps/').Get())) | 94 sorted(fs.ReadSingle('/apps/').Get())) |
95 self.assertEqual(['a11y.html', 'about_apps.html', 'fakedir/'], | 95 self.assertEqual(['a11y.html', 'about_apps.html', 'fakedir/'], |
96 sorted(fs.ReadSingle('apps/').Get())) | 96 sorted(fs.ReadSingle('apps/').Get())) |
97 self.assertEqual(['file.html'], fs.ReadSingle('/apps/fakedir/').Get()) | 97 self.assertEqual(['file.html'], fs.ReadSingle('/apps/fakedir/').Get()) |
98 self.assertEqual(['file.html'], fs.ReadSingle('apps/fakedir/').Get()) | 98 self.assertEqual(['file.html'], fs.ReadSingle('apps/fakedir/').Get()) |
99 | 99 |
100 def testStat(self): | 100 def testStat(self): |
101 fs = TestFileSystem(deepcopy(_TEST_DATA)) | 101 fs = TestFileSystem(deepcopy(_TEST_DATA)) |
102 self.assertRaises(FileNotFoundError, fs.Stat, 'foo') | 102 self.assertRaises(FileNotFoundError, fs.Stat, 'foo') |
103 self.assertRaises(FileNotFoundError, fs.Stat, '404.html/') | 103 self.assertRaises(FileNotFoundError, fs.Stat, '404.html/') |
| 104 self.assertEquals(StatInfo('0', child_versions={ |
| 105 '404.html': '0', |
| 106 'apps/': '0', |
| 107 'extensions/': '0', |
| 108 }), fs.Stat('')) |
104 self.assertEquals(StatInfo('0'), fs.Stat('404.html')) | 109 self.assertEquals(StatInfo('0'), fs.Stat('404.html')) |
105 self.assertEquals(StatInfo('0', child_versions={ | 110 self.assertEquals(StatInfo('0', child_versions={ |
106 'activeTab.html': '0', | 111 'activeTab.html': '0', |
107 'alarms.html': '0', | 112 'alarms.html': '0', |
108 }), fs.Stat('extensions/')) | 113 }), fs.Stat('extensions/')) |
109 | 114 |
110 fs.IncrementStat() | 115 fs.IncrementStat() |
| 116 self.assertEquals(StatInfo('1', child_versions={ |
| 117 '404.html': '1', |
| 118 'apps/': '1', |
| 119 'extensions/': '1', |
| 120 }), fs.Stat('')) |
111 self.assertEquals(StatInfo('1'), fs.Stat('404.html')) | 121 self.assertEquals(StatInfo('1'), fs.Stat('404.html')) |
112 self.assertEquals(StatInfo('1', child_versions={ | 122 self.assertEquals(StatInfo('1', child_versions={ |
113 'activeTab.html': '1', | 123 'activeTab.html': '1', |
114 'alarms.html': '1', | 124 'alarms.html': '1', |
115 }), fs.Stat('extensions/')) | 125 }), fs.Stat('extensions/')) |
116 | 126 |
117 fs.IncrementStat(path='404.html') | 127 fs.IncrementStat(path='404.html') |
| 128 self.assertEquals(StatInfo('2', child_versions={ |
| 129 '404.html': '2', |
| 130 'apps/': '1', |
| 131 'extensions/': '1', |
| 132 }), fs.Stat('')) |
118 self.assertEquals(StatInfo('2'), fs.Stat('404.html')) | 133 self.assertEquals(StatInfo('2'), fs.Stat('404.html')) |
119 self.assertEquals(StatInfo('1', child_versions={ | 134 self.assertEquals(StatInfo('1', child_versions={ |
120 'activeTab.html': '1', | 135 'activeTab.html': '1', |
121 'alarms.html': '1', | 136 'alarms.html': '1', |
122 }), fs.Stat('extensions/')) | 137 }), fs.Stat('extensions/')) |
123 | 138 |
124 fs.IncrementStat() | 139 fs.IncrementStat() |
| 140 self.assertEquals(StatInfo('3', child_versions={ |
| 141 '404.html': '3', |
| 142 'apps/': '2', |
| 143 'extensions/': '2', |
| 144 }), fs.Stat('')) |
125 self.assertEquals(StatInfo('3'), fs.Stat('404.html')) | 145 self.assertEquals(StatInfo('3'), fs.Stat('404.html')) |
126 self.assertEquals(StatInfo('2', child_versions={ | 146 self.assertEquals(StatInfo('2', child_versions={ |
127 'activeTab.html': '2', | 147 'activeTab.html': '2', |
128 'alarms.html': '2', | 148 'alarms.html': '2', |
129 }), fs.Stat('extensions/')) | 149 }), fs.Stat('extensions/')) |
130 | 150 |
131 fs.IncrementStat(path='extensions/') | 151 # It doesn't make sense to increment the version of directories. Directory |
| 152 # versions are derived from the version of files within them. |
| 153 self.assertRaises(ValueError, fs.IncrementStat, path='') |
| 154 self.assertRaises(ValueError, fs.IncrementStat, path='extensions/') |
| 155 self.assertEquals(StatInfo('3', child_versions={ |
| 156 '404.html': '3', |
| 157 'apps/': '2', |
| 158 'extensions/': '2', |
| 159 }), fs.Stat('')) |
132 self.assertEquals(StatInfo('3'), fs.Stat('404.html')) | 160 self.assertEquals(StatInfo('3'), fs.Stat('404.html')) |
133 self.assertEquals(StatInfo('3', child_versions={ | 161 self.assertEquals(StatInfo('2', child_versions={ |
134 'activeTab.html': '2', | 162 'activeTab.html': '2', |
135 'alarms.html': '2', | 163 'alarms.html': '2', |
136 }), fs.Stat('extensions/')) | 164 }), fs.Stat('extensions/')) |
137 | 165 |
138 fs.IncrementStat(path='extensions/alarms.html') | 166 fs.IncrementStat(path='extensions/alarms.html') |
| 167 self.assertEquals(StatInfo('3', child_versions={ |
| 168 '404.html': '3', |
| 169 'apps/': '2', |
| 170 'extensions/': '3', |
| 171 }), fs.Stat('')) |
139 self.assertEquals(StatInfo('3'), fs.Stat('404.html')) | 172 self.assertEquals(StatInfo('3'), fs.Stat('404.html')) |
140 self.assertEquals(StatInfo('3', child_versions={ | 173 self.assertEquals(StatInfo('3', child_versions={ |
141 'activeTab.html': '2', | 174 'activeTab.html': '2', |
142 'alarms.html': '3', | 175 'alarms.html': '3', |
143 }), fs.Stat('extensions/')) | 176 }), fs.Stat('extensions/')) |
144 | 177 |
| 178 fs.IncrementStat(path='extensions/activeTab.html', by=3) |
| 179 self.assertEquals(StatInfo('5', child_versions={ |
| 180 '404.html': '3', |
| 181 'apps/': '2', |
| 182 'extensions/': '5', |
| 183 }), fs.Stat('')) |
| 184 self.assertEquals(StatInfo('3'), fs.Stat('404.html')) |
| 185 self.assertEquals(StatInfo('5', child_versions={ |
| 186 'activeTab.html': '5', |
| 187 'alarms.html': '3', |
| 188 }), fs.Stat('extensions/')) |
| 189 |
145 def testMoveTo(self): | 190 def testMoveTo(self): |
146 self.assertEqual({'foo': {'a': 'b', 'c': 'd'}}, | 191 self.assertEqual({'foo': {'a': 'b', 'c': 'd'}}, |
147 MoveTo('foo', {'a': 'b', 'c': 'd'})) | 192 MoveTo('foo', {'a': 'b', 'c': 'd'})) |
148 self.assertEqual({'foo': {'bar': {'a': 'b', 'c': 'd'}}}, | 193 self.assertEqual({'foo': {'bar': {'a': 'b', 'c': 'd'}}}, |
149 MoveTo('foo/bar', {'a': 'b', 'c': 'd'})) | 194 MoveTo('foo/bar', {'a': 'b', 'c': 'd'})) |
150 self.assertEqual({'foo': {'bar': {'baz': {'a': 'b'}}}}, | 195 self.assertEqual({'foo': {'bar': {'baz': {'a': 'b'}}}}, |
151 MoveTo('foo/bar/baz', {'a': 'b'})) | 196 MoveTo('foo/bar/baz', {'a': 'b'})) |
152 | 197 |
153 | 198 |
154 if __name__ == '__main__': | 199 if __name__ == '__main__': |
155 unittest.main() | 200 unittest.main() |
OLD | NEW |