| 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 |