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

Side by Side Diff: chrome/test/mini_installer/variable_expander.py

Issue 2802713002: Enable side-by-side beta and dev channels. (Closed)
Patch Set: add missing test stanza for reland Created 3 years, 8 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
« no previous file with comments | « chrome/test/mini_installer/test_installer.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright 2013 The Chromium Authors. All rights reserved. 1 # Copyright 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import base64 5 import base64
6 import hashlib 6 import hashlib
7 import os 7 import os
8 import string 8 import string
9 import win32api 9 import win32api
10 import win32com.client 10 import win32com.client
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 54
55 55
56 class VariableExpander: 56 class VariableExpander:
57 """Expands variables in strings.""" 57 """Expands variables in strings."""
58 58
59 def __init__(self, mini_installer_path, next_version_mini_installer_path): 59 def __init__(self, mini_installer_path, next_version_mini_installer_path):
60 """Constructor. 60 """Constructor.
61 61
62 The constructor initializes a variable dictionary that maps variables to 62 The constructor initializes a variable dictionary that maps variables to
63 their values. These are the only acceptable variables: 63 their values. These are the only acceptable variables:
64 * $BRAND: the browser brand (e.g., "Google Chrome" or "Chromium").
64 * $CHROME_DIR: the directory of Chrome (or Chromium) from the base 65 * $CHROME_DIR: the directory of Chrome (or Chromium) from the base
65 installation directory. 66 installation directory.
66 * $CHROME_HTML_PROG_ID: 'ChromeHTML' (or 'ChromiumHTM'). 67 * $CHROME_HTML_PROG_ID: 'ChromeHTML' (or 'ChromiumHTM').
67 * $CHROME_LONG_NAME: 'Google Chrome' (or 'Chromium'). 68 * $CHROME_LONG_NAME: 'Google Chrome' (or 'Chromium').
68 * $CHROME_LONG_NAME_SXS: 'Google Chrome SxS' if $SUPPORTS_SXS. 69 * $CHROME_LONG_NAME_BETA: 'Google Chrome Beta' if $BRAND is 'Google
70 * Chrome'.
71 * $CHROME_LONG_NAME_DEV: 'Google Chrome Dev' if $BRAND is 'Google
72 * Chrome'.
73 * $CHROME_LONG_NAME_SXS: 'Google Chrome SxS' if $BRAND is 'Google
74 * Chrome'.
69 * $CHROME_SHORT_NAME: 'Chrome' (or 'Chromium'). 75 * $CHROME_SHORT_NAME: 'Chrome' (or 'Chromium').
70 * $CHROME_SHORT_NAME_SXS: 'ChromeCanary' if $SUPPORTS_SXS. 76 * $CHROME_SHORT_NAME_BETA: 'ChromeBeta' if $BRAND is 'Google Chrome'.
77 * $CHROME_SHORT_NAME_DEV: 'ChromeDev' if $BRAND is 'Google Chrome'.
78 * $CHROME_SHORT_NAME_SXS: 'ChromeCanary' if $BRAND is 'Google Chrome'.
71 * $CHROME_UPDATE_REGISTRY_SUBKEY: the registry key, excluding the root 79 * $CHROME_UPDATE_REGISTRY_SUBKEY: the registry key, excluding the root
72 key, of Chrome for Google Update. 80 key, of Chrome for Google Update.
81 * $CHROME_UPDATE_REGISTRY_SUBKEY_DEV: the registry key, excluding the
82 root key, of Chrome Dev for Google Update.
83 * $CHROME_UPDATE_REGISTRY_SUBKEY_BETA: the registry key, excluding the
84 root key, of Chrome Beta for Google Update.
73 * $CHROME_UPDATE_REGISTRY_SUBKEY_SXS: the registry key, excluding the 85 * $CHROME_UPDATE_REGISTRY_SUBKEY_SXS: the registry key, excluding the
74 root key, of Chrome SxS for Google Update. 86 root key, of Chrome SxS for Google Update.
75 * $LAUNCHER_UPDATE_REGISTRY_SUBKEY: the registry key, excluding the root 87 * $LAUNCHER_UPDATE_REGISTRY_SUBKEY: the registry key, excluding the root
76 key, of the app launcher for Google Update if $SUPPORTS_SXS. 88 key, of the app launcher for Google Update if $BRAND is 'Google
89 * Chrome'.
77 * $LOCAL_APPDATA: the unquoted path to the Local Application Data 90 * $LOCAL_APPDATA: the unquoted path to the Local Application Data
78 folder. 91 folder.
79 * $MINI_INSTALLER: the unquoted path to the mini_installer. 92 * $MINI_INSTALLER: the unquoted path to the mini_installer.
80 * $MINI_INSTALLER_FILE_VERSION: the file version of $MINI_INSTALLER. 93 * $MINI_INSTALLER_FILE_VERSION: the file version of $MINI_INSTALLER.
81 * $NEXT_VERSION_MINI_INSTALLER: the unquoted path to a mini_installer 94 * $NEXT_VERSION_MINI_INSTALLER: the unquoted path to a mini_installer
82 whose version is higher than $MINI_INSTALLER. 95 whose version is higher than $MINI_INSTALLER.
83 * $NEXT_VERSION_MINI_INSTALLER_FILE_VERSION: the file version of 96 * $NEXT_VERSION_MINI_INSTALLER_FILE_VERSION: the file version of
84 $NEXT_VERSION_MINI_INSTALLER. 97 $NEXT_VERSION_MINI_INSTALLER.
85 * $PROGRAM_FILES: the unquoted path to the Program Files folder. 98 * $PROGRAM_FILES: the unquoted path to the Program Files folder.
86 * $SUPPORTS_SXS: a boolean indicating whether or not SxS installs
87 are supported by the mini_installer under test.
88 * $USER_SPECIFIC_REGISTRY_SUFFIX: the output from the function 99 * $USER_SPECIFIC_REGISTRY_SUFFIX: the output from the function
89 _GetUserSpecificRegistrySuffix(). 100 _GetUserSpecificRegistrySuffix().
90 * $VERSION_[XP/SERVER_2003/VISTA/WIN7/WIN8/WIN8_1/WIN10]: a 2-tuple 101 * $VERSION_[XP/SERVER_2003/VISTA/WIN7/WIN8/WIN8_1/WIN10]: a 2-tuple
91 representing the version of the corresponding OS. 102 representing the version of the corresponding OS.
92 * $WINDOWS_VERSION: a 2-tuple representing the current Windows version. 103 * $WINDOWS_VERSION: a 2-tuple representing the current Windows version.
93 104
94 Args: 105 Args:
95 mini_installer_path: The path to a mini_installer. 106 mini_installer_path: The path to a mini_installer.
96 next_version_mini_installer_path: The path to a mini_installer whose 107 next_version_mini_installer_path: The path to a mini_installer whose
97 version is higher than |mini_installer_path|. 108 version is higher than |mini_installer_path|.
(...skipping 19 matching lines...) Expand all
117 'VERSION_WIN7': '(6, 1)', 128 'VERSION_WIN7': '(6, 1)',
118 'VERSION_WIN8': '(6, 2)', 129 'VERSION_WIN8': '(6, 2)',
119 'VERSION_WIN8_1': '(6, 3)', 130 'VERSION_WIN8_1': '(6, 3)',
120 'VERSION_XP': '(5, 1)', 131 'VERSION_XP': '(5, 1)',
121 'WINDOWS_VERSION': '(%s, %s)' % (windows_major_ver, windows_minor_ver) 132 'WINDOWS_VERSION': '(%s, %s)' % (windows_major_ver, windows_minor_ver)
122 } 133 }
123 134
124 mini_installer_product_name = _GetProductName(mini_installer_abspath) 135 mini_installer_product_name = _GetProductName(mini_installer_abspath)
125 if mini_installer_product_name == 'Google Chrome Installer': 136 if mini_installer_product_name == 'Google Chrome Installer':
126 self._variable_mapping.update({ 137 self._variable_mapping.update({
138 'BRAND': 'Google Chrome',
127 'BINARIES_UPDATE_REGISTRY_SUBKEY': ( 139 'BINARIES_UPDATE_REGISTRY_SUBKEY': (
128 'Software\\Google\\Update\\Clients\\' 140 'Software\\Google\\Update\\Clients\\'
129 '{4DC8B4CA-1BDA-483e-B5FA-D3C12E15B62D}'), 141 '{4DC8B4CA-1BDA-483e-B5FA-D3C12E15B62D}'),
130 'CHROME_DIR': 'Google\\Chrome', 142 'CHROME_DIR': 'Google\\Chrome',
131 'CHROME_HTML_PROG_ID': 'ChromeHTML', 143 'CHROME_HTML_PROG_ID': 'ChromeHTML',
132 'CHROME_LONG_NAME': 'Google Chrome', 144 'CHROME_LONG_NAME': 'Google Chrome',
133 'CHROME_SHORT_NAME': 'Chrome', 145 'CHROME_SHORT_NAME': 'Chrome',
134 'CHROME_UPDATE_REGISTRY_SUBKEY': ( 146 'CHROME_UPDATE_REGISTRY_SUBKEY': (
135 'Software\\Google\\Update\\Clients\\' 147 'Software\\Google\\Update\\Clients\\'
136 '{8A69D345-D564-463c-AFF1-A69D9E530F96}'), 148 '{8A69D345-D564-463c-AFF1-A69D9E530F96}'),
137 'CHROME_CLIENT_STATE_KEY': ( 149 'CHROME_CLIENT_STATE_KEY': (
138 'Software\\Google\\Update\\ClientState\\' 150 'Software\\Google\\Update\\ClientState\\'
139 '{8A69D345-D564-463c-AFF1-A69D9E530F96}'), 151 '{8A69D345-D564-463c-AFF1-A69D9E530F96}'),
140 'SUPPORTS_SXS': True, 152 'CHROME_DIR_BETA': 'Google\\Chrome Beta',
153 'CHROME_DIR_DEV': 'Google\\Chrome Dev',
141 'CHROME_DIR_SXS': 'Google\\Chrome SxS', 154 'CHROME_DIR_SXS': 'Google\\Chrome SxS',
155 'CHROME_LONG_NAME_BETA': 'Google Chrome Beta',
156 'CHROME_LONG_NAME_DEV': 'Google Chrome Dev',
142 'CHROME_LONG_NAME_SXS': 'Google Chrome SxS', 157 'CHROME_LONG_NAME_SXS': 'Google Chrome SxS',
158 'CHROME_SHORT_NAME_BETA': 'ChromeBeta',
159 'CHROME_SHORT_NAME_DEV': 'ChromeDev',
143 'CHROME_SHORT_NAME_SXS': 'ChromeCanary', 160 'CHROME_SHORT_NAME_SXS': 'ChromeCanary',
161 'CHROME_UPDATE_REGISTRY_SUBKEY_BETA': (
162 'Software\\Google\\Update\\Clients\\'
163 '{8237E44A-0054-442C-B6B6-EA0509993955}'),
164 'CHROME_UPDATE_REGISTRY_SUBKEY_DEV': (
165 'Software\\Google\\Update\\Clients\\'
166 '{401C381F-E0DE-4B85-8BD8-3F3F14FBDA57}'),
144 'CHROME_UPDATE_REGISTRY_SUBKEY_SXS': ( 167 'CHROME_UPDATE_REGISTRY_SUBKEY_SXS': (
145 'Software\\Google\\Update\\Clients\\' 168 'Software\\Google\\Update\\Clients\\'
146 '{4ea16ac7-fd5a-47c3-875b-dbf4a2008c20}'), 169 '{4ea16ac7-fd5a-47c3-875b-dbf4a2008c20}'),
147 'LAUNCHER_UPDATE_REGISTRY_SUBKEY': ( 170 'LAUNCHER_UPDATE_REGISTRY_SUBKEY': (
148 'Software\\Google\\Update\\Clients\\' 171 'Software\\Google\\Update\\Clients\\'
149 '{FDA71E6F-AC4C-4a00-8B70-9958A68906BF}') 172 '{FDA71E6F-AC4C-4a00-8B70-9958A68906BF}')
150 }) 173 })
151 elif mini_installer_product_name == 'Chromium Installer': 174 elif mini_installer_product_name == 'Chromium Installer':
152 self._variable_mapping.update({ 175 self._variable_mapping.update({
176 'BRAND': 'Chromium',
153 'BINARIES_UPDATE_REGISTRY_SUBKEY': 'Software\\Chromium Binaries', 177 'BINARIES_UPDATE_REGISTRY_SUBKEY': 'Software\\Chromium Binaries',
154 'CHROME_DIR': 'Chromium', 178 'CHROME_DIR': 'Chromium',
155 'CHROME_HTML_PROG_ID': 'ChromiumHTM', 179 'CHROME_HTML_PROG_ID': 'ChromiumHTM',
156 'CHROME_LONG_NAME': 'Chromium', 180 'CHROME_LONG_NAME': 'Chromium',
157 'CHROME_SHORT_NAME': 'Chromium', 181 'CHROME_SHORT_NAME': 'Chromium',
158 'CHROME_UPDATE_REGISTRY_SUBKEY': 'Software\\Chromium', 182 'CHROME_UPDATE_REGISTRY_SUBKEY': 'Software\\Chromium',
159 'CHROME_CLIENT_STATE_KEY': 'Software\\Chromium', 183 'CHROME_CLIENT_STATE_KEY': 'Software\\Chromium',
160 'SUPPORTS_SXS': False
161 }) 184 })
162 else: 185 else:
163 raise KeyError("Unknown mini_installer product name '%s'" % 186 raise KeyError("Unknown mini_installer product name '%s'" %
164 mini_installer_product_name) 187 mini_installer_product_name)
165 188
166 189
167 def Expand(self, str): 190 def Expand(self, str):
168 """Expands variables in the given string. 191 """Expands variables in the given string.
169 192
170 This method resolves only variables defined in the constructor. It does not 193 This method resolves only variables defined in the constructor. It does not
171 resolve environment variables. Any dollar signs that are not part of 194 resolve environment variables. Any dollar signs that are not part of
172 variables must be escaped with $$, otherwise a KeyError or a ValueError will 195 variables must be escaped with $$, otherwise a KeyError or a ValueError will
173 be raised. 196 be raised.
174 197
175 Args: 198 Args:
176 str: A string. 199 str: A string.
177 200
178 Returns: 201 Returns:
179 A new string created by replacing variables with their values. 202 A new string created by replacing variables with their values.
180 """ 203 """
181 return string.Template(str).substitute(self._variable_mapping) 204 return string.Template(str).substitute(self._variable_mapping)
OLDNEW
« no previous file with comments | « chrome/test/mini_installer/test_installer.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698