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

Unified Diff: chrome/test/mini_installer/registry_verifier.py

Issue 520633005: Reduce flakes in the mini_installer test. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@notreached
Patch Set: comment Created 6 years, 3 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
« no previous file with comments | « chrome/test/mini_installer/config/config.config ('k') | chrome/test/mini_installer/test_installer.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/test/mini_installer/registry_verifier.py
diff --git a/chrome/test/mini_installer/registry_verifier.py b/chrome/test/mini_installer/registry_verifier.py
index 98ff97c168037344ed65ddd7c18af42ff3cf18ad..20a09b940c770856b339221f1f286d4898d8eff7 100644
--- a/chrome/test/mini_installer/registry_verifier.py
+++ b/chrome/test/mini_installer/registry_verifier.py
@@ -49,13 +49,17 @@ class RegistryVerifier(verifier.Verifier):
expectation_name: The registry key being verified. It is expanded using
Expand.
expectation: A dictionary with the following keys and values:
- 'exists' a boolean indicating whether the registry key should exist.
+ 'exists' a string indicating whether the registry key's existence is
+ 'required', 'optional', or 'forbidden'. Values are not checked if
+ an 'optional' key is not present in the registry.
'values' (optional) a dictionary where each key is a registry value
and its associated value is a dictionary with the following key
and values:
- 'type' a string indicating the type of the registry value.
- 'data' the associated data of the registry value. If it is a
- string, it is expanded using Expand.
+ 'type' (optional) a string indicating the type of the registry
+ value. If not present, the corresponding value is expected
+ to be absent in the registry.
+ 'data' the associated data of the registry value if 'type' is
+ specified. If it is a string, it is expanded using Expand.
variable_expander: A VariableExpander object.
"""
key = variable_expander.Expand(expectation_name)
@@ -67,11 +71,13 @@ class RegistryVerifier(verifier.Verifier):
_winreg.KEY_QUERY_VALUE)
except WindowsError:
# Key doesn't exist. See that it matches the expectation.
- assert not expectation['exists'], ('Registry key %s is missing' %
- key)
+ assert expectation['exists'] is not 'required', ('Registry key %s is '
+ 'missing' % key)
+ # Values are not checked if the missing key's existence is optional.
return
# The key exists, see that it matches the expectation.
- assert expectation['exists'], ('Registry key %s exists' % key)
+ assert expectation['exists'] is not 'forbidden', ('Registry key %s exists' %
+ key)
# Verify the expected values.
if 'values' not in expectation:
@@ -82,8 +88,13 @@ class RegistryVerifier(verifier.Verifier):
try:
data, value_type = _winreg.QueryValueEx(key_handle, value)
except WindowsError:
- raise KeyError("Value '%s' of registry key %s is missing" % (
- value, key))
+ # The value does not exist. See that this matches the expectation.
+ assert 'type' not in value_expectation, ('Value %s of registry key %s '
+ 'is missing' % (value, key))
+ continue
+
+ assert 'type' in value_expectation, ('Value %s of registry key %s exists '
+ 'with value %s' % (value, key, data))
# Verify the type of the value.
expected_value_type = value_expectation['type']
« no previous file with comments | « chrome/test/mini_installer/config/config.config ('k') | chrome/test/mini_installer/test_installer.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698