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

Unified Diff: tools/telemetry/catapult_base/dependency_manager/dependency_manager_unittest.py

Issue 1391403003: Add priority groups to local paths in the dependency manager. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: tools/telemetry/catapult_base/dependency_manager/dependency_manager_unittest.py
diff --git a/tools/telemetry/catapult_base/dependency_manager/dependency_manager_unittest.py b/tools/telemetry/catapult_base/dependency_manager/dependency_manager_unittest.py
index e0486b62f7713288ddcd74000c0cae654c8503b3..ed64a19e9355359d53bbdfcf8ca88a0637b2c156 100644
--- a/tools/telemetry/catapult_base/dependency_manager/dependency_manager_unittest.py
+++ b/tools/telemetry/catapult_base/dependency_manager/dependency_manager_unittest.py
@@ -640,71 +640,149 @@ class DependencyManagerTest(unittest.TestCase):
'dep1', 'plat2'))
- @mock.patch('os.path.exists')
- def testLocalPathHelper(self, exists_mock):
- dep_info = mock.MagicMock(spec=dependency_manager.DependencyInfo)
+class TestLocalPath(fake_filesystem_unittest.TestCase):
+ def setUp(self):
+ self.setUpPyfakefs()
+ self.config_path = '/bar/test/dep_config.json'
+ # local_path0 doesn't exist locally.
+ self.local_path0 = '/foo/local_path0'
+ # local_path[1-4] exist locally and have been modified in increasing order.
+ self.local_path1 = '/foo/local_path1'
+ self.local_path2 = '/bar/local_path2'
+ self.local_path3 = '/baz/local_path3'
+ self.local_path4 = '/foo/local_path4'
+ self.fs.CreateFile(self.config_path, contents='{}')
+ file1 = self.fs.CreateFile(self.local_path1, contents='1010110',
+ st_mode=stat.S_IWOTH)
+ file2 = self.fs.CreateFile(self.local_path2, contents='1010110',
+ st_mode=stat.S_IWOTH)
+ file3 = self.fs.CreateFile(self.local_path3, contents='1010110',
+ st_mode=stat.S_IWOTH)
+ file4 = self.fs.CreateFile(self.local_path4, contents='1010110',
+ st_mode=stat.S_IWOTH)
+ file2.SetMTime(file1.st_mtime + 1)
+ file3.SetMTime(file1.st_mtime + 2)
+ file4.SetMTime(file1.st_mtime + 3)
+
+ def testLocalPathHelper(self):
# There is no local path for the given dependency.
eakuefner 2015/10/09 16:29:17 Can you put each of these cases into a separate un
- dep_info.local_paths = {}
- self.assertEqual(None,
- dependency_manager.DependencyManager._LocalPath(dep_info))
+ dep_info = dependency_manager.DependencyInfo('dep', 'plat', 'config')
+ self.assertFalse(dependency_manager.DependencyManager._LocalPath(dep_info))
# There is a local path for the given dependency, but it doesn't exist.
- exists_mock.side_effect = [False]
- dep_info.local_paths = {'local_path0'}
+ dep_info = dependency_manager.DependencyInfo(
+ 'dep', 'plat', 'config', local_paths=[self.local_path0])
self.assertEqual(None,
dependency_manager.DependencyManager._LocalPath(dep_info))
- exists_mock.assert_called_once_with('local_path0')
- exists_mock.reset_mock()
# There is a local path for the given dependency, and it does exist.
- exists_mock.side_effect = [True]
- dep_info.local_paths = {'local_path0'}
- self.assertEqual('local_path0',
+ dep_info = dependency_manager.DependencyInfo(
+ 'dep', 'plat', 'config', local_paths=[self.local_path1])
+ self.assertEqual(self.local_path1,
dependency_manager.DependencyManager._LocalPath(dep_info))
- exists_mock.assert_called_once_with('local_path0')
- exists_mock.reset_mock()
# There are multiple local paths for the given dependency, and the first one
# exists.
- exists_mock.side_effect = [True]
- dep_info.local_paths = {'local_path0', 'local_path1', 'local_path2'}
- self.assertEqual('local_path0',
+ local_paths = [self.local_path1, self.local_path2, self.local_path3]
+ dep_info = dependency_manager.DependencyInfo(
+ 'dep', 'plat', 'config', local_paths=local_paths)
+ self.assertEqual(self.local_path1,
dependency_manager.DependencyManager._LocalPath(dep_info))
- exists_mock.assert_called_once_with('local_path0')
- exists_mock.reset_mock()
# There are multiple local paths for the given dependency, and the first one
- # doesn't exist but the second one does.
- exists_mock.side_effect = [False, True]
- dep_info.local_paths = {'local_path0', 'local_path1', 'local_path2'}
- self.assertEqual('local_path1',
+ # doesn't exist but the second and third do, created in order.
+ local_paths = [self.local_path0, self.local_path1, self.local_path2]
+ dep_info = dependency_manager.DependencyInfo(
+ 'dep', 'plat', 'config', local_paths=local_paths)
+ self.assertEqual(self.local_path1,
+ dependency_manager.DependencyManager._LocalPath(dep_info))
+
+ # There are multiple local paths for the given dependency, and the first one
+ # doesn't exist but the second and third do, created in reverse order.
+ local_paths = [self.local_path0, self.local_path3, self.local_path2,
+ self.local_path1]
+ dep_info = dependency_manager.DependencyInfo(
+ 'dep', 'plat', 'config', local_paths=local_paths)
+ self.assertEqual(self.local_path3,
dependency_manager.DependencyManager._LocalPath(dep_info))
- expected_calls = [mock.call('local_path0'), mock.call('local_path1')]
- exists_mock.assert_has_calls(expected_calls, any_order=False)
- exists_mock.reset_mock()
# There are multiple local paths for the given dependency, and the first and
# second ones don't exist but the third one does.
- exists_mock.side_effect = [False, False, True]
- dep_info.local_paths = {'local_path0', 'local_path1', 'local_path2'}
- self.assertEqual('local_path2',
+ local_paths = ['/nope/local_path0', '/nope/local_path1', self.local_path2]
+ dep_info = dependency_manager.DependencyInfo(
+ 'dep', 'plat', 'config', local_paths=local_paths)
+ self.assertEqual(self.local_path2,
dependency_manager.DependencyManager._LocalPath(dep_info))
- expected_calls = [mock.call('local_path0'), mock.call('local_path1'),
- mock.call('local_path2')]
- exists_mock.assert_has_calls(expected_calls, any_order=False)
- exists_mock.reset_mock()
# There are multiple local paths for the given dependency, but none of them
# exist.
- exists_mock.side_effect = [False, False, False]
- dep_info.local_paths = {'local_path0', 'local_path1', 'local_path2'}
+ local_paths = ['/nope/local_path0', '/nope/local_path1',
+ '/nope/local_path2']
+ dep_info = dependency_manager.DependencyInfo(
+ 'dep', 'plat', 'config', local_paths=local_paths)
+ self.assertEqual(None,
+ dependency_manager.DependencyManager._LocalPath(dep_info))
+
+ def testLocalPathHelperWithPriorityGroups(self):
+ # There is a local path in a priority group for the given dependency, but it
+ # doesn't exist.
+ dep_info = dependency_manager.DependencyInfo(
+ 'dep', 'plat', 'config', local_paths=[[self.local_path0]])
+ self.assertEqual(None,
+ dependency_manager.DependencyManager._LocalPath(dep_info))
+
+ # There is a local path in a priority group for the given dependency, and it
+ # does exist.
+ dep_info = dependency_manager.DependencyInfo(
+ 'dep', 'plat', 'config', local_paths=[[self.local_path1]])
+ self.assertEqual(self.local_path1,
+ dependency_manager.DependencyManager._LocalPath(dep_info))
+
+ local_paths = [self.local_path1, [self.local_path2, self.local_path3]]
+ dep_info = dependency_manager.DependencyInfo(
+ 'dep', 'plat', 'config', local_paths=local_paths)
+ self.assertEqual(self.local_path1,
+ dependency_manager.DependencyManager._LocalPath(dep_info))
+
+ local_paths = [self.local_path0, [self.local_path2, self.local_path3]]
+ dep_info = dependency_manager.DependencyInfo(
+ 'dep', 'plat', 'config', local_paths=local_paths)
+ self.assertEqual(self.local_path3,
+ dependency_manager.DependencyManager._LocalPath(dep_info))
+
+ local_paths = [[self.local_path1, self.local_path2], self.local_path3]
+ dep_info = dependency_manager.DependencyInfo(
+ 'dep', 'plat', 'config', local_paths=local_paths)
+ self.assertEqual(self.local_path2,
+ dependency_manager.DependencyManager._LocalPath(dep_info))
+
+ local_paths = [[self.local_path2, self.local_path1, self.local_path4],
+ self.local_path3]
+ dep_info = dependency_manager.DependencyInfo(
+ 'dep', 'plat', 'config', local_paths=local_paths)
+ self.assertEqual(self.local_path4,
+ dependency_manager.DependencyManager._LocalPath(dep_info))
+
+ local_paths = ['/nope/local_path0', ['/nope/local_path1', self.local_path2],
+ self.local_path3]
+ dep_info = dependency_manager.DependencyInfo(
+ 'dep', 'plat', 'config', local_paths=local_paths)
+ self.assertEqual(self.local_path2,
+ dependency_manager.DependencyManager._LocalPath(dep_info))
+
+ local_paths = [['/nope/local_path0', '/nope/local_path1'], self.local_path2]
+ dep_info = dependency_manager.DependencyInfo(
+ 'dep', 'plat', 'config', local_paths=local_paths)
+ self.assertEqual(self.local_path2,
+ dependency_manager.DependencyManager._LocalPath(dep_info))
+
+ local_paths = [['/nope/local_path0', '/nope/local_path1'],
+ '/nope/local_path2']
+ dep_info = dependency_manager.DependencyInfo(
+ 'dep', 'plat', 'config', local_paths=local_paths)
self.assertEqual(None,
dependency_manager.DependencyManager._LocalPath(dep_info))
- expected_calls = [mock.call('local_path0'), mock.call('local_path1'),
- mock.call('local_path2')]
- exists_mock.assert_has_calls(expected_calls, any_order=False)
- exists_mock.reset_mock()
class TestCloudStoragePath(fake_filesystem_unittest.TestCase):

Powered by Google App Engine
This is Rietveld 408576698