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'] |