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 import json | 6 import json |
7 import os | 7 import os |
8 import sys | 8 import sys |
9 import unittest | 9 import unittest |
10 | 10 |
11 from fake_url_fetcher import FakeUrlFetcher | 11 from fake_url_fetcher import FakeUrlFetcher |
12 from file_system import StatInfo | 12 from file_system import StatInfo |
| 13 from future import Future |
13 from subversion_file_system import SubversionFileSystem | 14 from subversion_file_system import SubversionFileSystem |
14 | 15 |
15 class SubversionFileSystemTest(unittest.TestCase): | 16 class SubversionFileSystemTest(unittest.TestCase): |
16 def setUp(self): | 17 def setUp(self): |
17 self._base_path = os.path.join(sys.path[0], 'test_data', 'file_system') | 18 self._base_path = os.path.join(sys.path[0], 'test_data', 'file_system') |
18 | 19 |
19 def _CreateSubversionFileSystem(self): | 20 def _CreateSubversionFileSystem(self): |
20 fetcher = FakeUrlFetcher(self._base_path) | 21 fetcher = FakeUrlFetcher(self._base_path) |
21 return SubversionFileSystem(fetcher, fetcher, self._base_path) | 22 return SubversionFileSystem(fetcher, fetcher, self._base_path) |
22 | 23 |
(...skipping 26 matching lines...) Expand all Loading... |
49 '151113', | 50 '151113', |
50 child_versions=json.loads(self._ReadLocalFile('stat_result.json')) | 51 child_versions=json.loads(self._ReadLocalFile('stat_result.json')) |
51 ) | 52 ) |
52 self.assertEquals(expected, stat_info) | 53 self.assertEquals(expected, stat_info) |
53 | 54 |
54 def testFileStat(self): | 55 def testFileStat(self): |
55 file_system = self._CreateSubversionFileSystem() | 56 file_system = self._CreateSubversionFileSystem() |
56 stat_info = file_system.Stat('stat/extension_api.h') | 57 stat_info = file_system.Stat('stat/extension_api.h') |
57 self.assertEquals(StatInfo('146163'), stat_info) | 58 self.assertEquals(StatInfo('146163'), stat_info) |
58 | 59 |
| 60 def testRevisions(self): |
| 61 # This is a super hacky test. Record the path that was fetched then exit the |
| 62 # test. Compare. |
| 63 class ValueErrorFetcher(object): |
| 64 def __init__(self): |
| 65 self.last_fetched = None |
| 66 |
| 67 def FetchAsync(self, path): |
| 68 self.last_fetched = path |
| 69 raise ValueError() |
| 70 |
| 71 def Fetch(self, path): |
| 72 self.last_fetched = path |
| 73 raise ValueError() |
| 74 |
| 75 file_fetcher = ValueErrorFetcher() |
| 76 stat_fetcher = ValueErrorFetcher() |
| 77 svn_path = 'svn:' |
| 78 |
| 79 svn_file_system = SubversionFileSystem(file_fetcher, |
| 80 stat_fetcher, |
| 81 svn_path, |
| 82 revision=42) |
| 83 |
| 84 self.assertRaises(ValueError, svn_file_system.ReadSingle, 'dir/file') |
| 85 self.assertEqual('dir/file?p=42', file_fetcher.last_fetched) |
| 86 # Stat() will always stat directories. |
| 87 self.assertRaises(ValueError, svn_file_system.Stat, 'dir/file') |
| 88 self.assertEqual('dir/?pathrev=42', stat_fetcher.last_fetched) |
| 89 |
| 90 self.assertRaises(ValueError, svn_file_system.ReadSingle, 'dir/') |
| 91 self.assertEqual('dir/?p=42', file_fetcher.last_fetched) |
| 92 self.assertRaises(ValueError, svn_file_system.Stat, 'dir/') |
| 93 self.assertEqual('dir/?pathrev=42', stat_fetcher.last_fetched) |
| 94 |
59 if __name__ == '__main__': | 95 if __name__ == '__main__': |
60 unittest.main() | 96 unittest.main() |
OLD | NEW |