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

Side by Side Diff: tools/telemetry/telemetry/util/find_dependencies_unittest.py

Issue 1174743002: Move find_dependencies and related files to internal/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase from the cloud_storage move landing. Created 5 years, 6 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 # Copyright 2014 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
4
5 import optparse
6 import os
7 import platform
8 import shutil
9 import subprocess
10 import sys
11 import tempfile
12 import unittest
13 import zipfile
14
15 from catapult_base import cloud_storage
16 from telemetry.util import find_dependencies
17
18
19 class FindDependenciesTest(unittest.TestCase):
20 @unittest.skipUnless(
21 cloud_storage.SupportsProdaccess(
22 os.path.realpath(cloud_storage.FindGsutil())),
23 'Could not find a depot_tools installation with gsutil.')
24 def testGsutil(self):
25 parser = optparse.OptionParser()
26 find_dependencies.FindDependenciesCommand.AddCommandLineArgs(parser)
27 options, _ = parser.parse_args([])
28
29 try:
30 temp_dir = tempfile.mkdtemp()
31 zip_path = os.path.join(temp_dir, 'gsutil.zip')
32 options.zip = zip_path
33
34 find_dependencies.ZipDependencies([], set(), options)
35
36 if platform.system() == 'Windows':
37 with zipfile.ZipFile(zip_path, 'r') as zip_file:
38 zip_file.extractall(temp_dir)
39 else:
40 # Use unzip instead of Python zipfile to preserve file permissions.
41 with open(os.devnull, 'w') as dev_null:
42 subprocess.call(['unzip', zip_path], cwd=temp_dir, stdout=dev_null)
43 third_party_path = os.path.join(temp_dir, 'telemetry', 'src', 'tools',
44 'telemetry', 'third_party')
45 # __init__.py is in Chromium src, but we didn't include any repo files.
46 open(os.path.join(third_party_path, '__init__.py'), 'a').close()
47
48 gsutil_path = os.path.join(third_party_path, 'gsutil', 'gsutil')
49 self.assertTrue(os.access(gsutil_path, os.X_OK))
50
51 with open(os.devnull, 'w') as dev_null:
52 # gsutil with no args should print usage and exit with exit code 0.
53 gsutil_command = [sys.executable, gsutil_path]
54 self.assertEqual(subprocess.call(gsutil_command, stdout=dev_null), 0)
55
56 # gsutil config should wait for the user and not exit with exit code 1.
57 #gsutil_command = [sys.executable, gsutil_path, 'config',
58 # '-o', os.path.join(temp_dir, 'config_file')]
59 #gsutil_process = subprocess.Popen(gsutil_command, stdout=dev_null)
60 #try:
61 # util.WaitFor(gsutil_process.poll, timeout=0.5)
62 # self.assertEqual(gsutil_process.returncode, 0,
63 # msg='gsutil config failed.')
64 #except exceptions.TimeoutException:
65 # gsutil_process.terminate()
66 # gsutil_process.wait()
67 finally:
68 shutil.rmtree(temp_dir)
OLDNEW
« no previous file with comments | « tools/telemetry/telemetry/util/find_dependencies.py ('k') | tools/telemetry/telemetry/util/path_set.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698