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 ceac20dd00868c8e28afe90d00c88b763a9790b2..48be39563ad58c03d9a811ddcf91a3c38b5e573b 100644 |
--- a/chrome/test/mini_installer/registry_verifier.py |
+++ b/chrome/test/mini_installer/registry_verifier.py |
@@ -4,61 +4,56 @@ |
import _winreg |
-import settings |
- |
- |
-def VerifyRegistryEntries(entries): |
+class RegistryVerifier: |
robertshield
2013/08/09 19:00:15
probably want to use new-style objects
sukolsak
2013/08/12 19:20:20
We are using stand-alone methods now.
|
"""Verifies that the current registry matches the specified criteria.""" |
- for key, entry in entries.iteritems(): |
- # TODO(sukolsak): Use unittest framework instead of prints. |
- if VerifyRegistryEntry(key, entry): |
- print 'Passed' |
- else: |
- print 'Failed' |
- |
- |
-def RootKeyConstant(key): |
- if key == 'HKEY_CLASSES_ROOT': |
- return _winreg.HKEY_CLASSES_ROOT |
- if key == 'HKEY_CURRENT_USER': |
- return _winreg.HKEY_CURRENT_USER |
- if key == 'HKEY_LOCAL_MACHINE': |
- return _winreg.HKEY_LOCAL_MACHINE |
- if key == 'HKEY_USERS': |
- return _winreg.HKEY_USERS |
- # TODO(sukolsak): Use unittest framework instead of exceptions. |
- raise Exception('Unknown registry key') |
- |
- |
-def VerifyRegistryEntry(key, entry): |
- """Verifies that a registry entry exists or doesn't exist and has |
- the specified value. |
- |
- Args: |
- key: Name of the registry key. |
- entry: A dictionary with the following keys and values: |
- 'expected' a boolean indicating whether the registry entry exists. |
- 'value' (optional) a string representing the value of the registry entry. |
- Returns: |
- A boolean indicating whether the registry entry matches the criteria. |
- """ |
- expected = entry['expected'] |
- # TODO(sukolsak): Debug prints to be removed later. |
- print settings.PRINT_VERIFIER_PREFIX + key, |
- if expected: |
- print 'exists...', |
- else: |
- print "doesn't exist...", |
- root_key, sub_key = key.split('\\', 1) |
- try: |
- reg_key = _winreg.OpenKey(RootKeyConstant(root_key), |
- sub_key, 0, _winreg.KEY_READ) |
- except WindowsError: |
- return not expected |
- if not expected: |
- return False |
- if 'value' in entry: |
- # TODO(sukolsak): implement value |
- pass |
- return True |
+ def __init__(self, testcase): |
+ """Constructor. |
+ |
+ Args: |
+ testcase: A unittest.TestCase instance. |
+ """ |
+ self.testcase = testcase |
Mathieu
2013/08/09 16:08:43
self._testcase to show it's private.
sukolsak
2013/08/09 21:12:38
I have removed testcase.
|
+ |
+ def VerifyRegistryEntries(self, entries): |
+ """Verifies that the current registry matches the specified criteria.""" |
Mathieu
2013/08/09 16:08:43
can you describe |entries|, since it's a non-trivi
sukolsak
2013/08/09 21:12:38
Done.
|
+ for key, entry in entries.iteritems(): |
+ self._VerifyRegistryEntry(key, entry) |
Mathieu
2013/08/09 17:25:15
you probably don't need a private method for the i
sukolsak
2013/08/09 21:12:38
I think it's much cleaner to put it in a separate
|
+ |
+ def _RootKeyConstant(self, key): |
Mathieu
2013/08/09 16:08:43
one-line docstring please
sukolsak
2013/08/09 21:12:38
Done.
|
+ if key == 'HKEY_CLASSES_ROOT': |
+ return _winreg.HKEY_CLASSES_ROOT |
+ if key == 'HKEY_CURRENT_USER': |
+ return _winreg.HKEY_CURRENT_USER |
+ if key == 'HKEY_LOCAL_MACHINE': |
+ return _winreg.HKEY_LOCAL_MACHINE |
+ if key == 'HKEY_USERS': |
+ return _winreg.HKEY_USERS |
+ self.testcase.fail('Unknown registry key') |
Mathieu
2013/08/09 17:25:15
Have this return an error instead (try throwing Ke
sukolsak
2013/08/09 21:12:38
Changed to KeyError. I don't think we have to crea
|
+ |
+ def _VerifyRegistryEntry(self, key, entry): |
Mathieu
2013/08/09 16:08:43
I think you should rename entry to "expectation"
sukolsak
2013/08/09 21:12:38
Done.
|
+ """Verifies that a registry entry exists or doesn't exist and has |
Mathieu
2013/08/09 16:08:43
Has to be one line.
"""Verifies a registry key ac
sukolsak
2013/08/09 21:12:38
Done.
|
+ the specified value. |
+ |
+ Args: |
+ key: Name of the registry key. |
+ entry: A dictionary with the following keys and values: |
+ 'expected' a boolean indicating whether the registry entry exists. |
Mathieu
2013/08/09 16:08:43
*registry entry should exist.
Unless I'm not unde
Mathieu
2013/08/09 16:08:43
rename 'expected' to 'should_exist'?
sukolsak
2013/08/09 21:12:38
Done. Yes.
sukolsak
2013/08/09 21:12:38
I have renamed it to 'exist' (or should it be 'exi
|
+ 'value' (optional) a string representing the value of the registry |
+ entry. |
+ |
+ Returns: |
+ A boolean indicating whether the registry entry matches the criteria. |
Mathieu
2013/08/09 16:08:43
your method doesn't return anything, so you can re
sukolsak
2013/08/09 21:12:38
Done.
|
+ """ |
+ expected = entry['expected'] |
Mathieu
2013/08/09 16:08:43
remove this line, see below.
sukolsak
2013/08/09 21:12:38
Done.
|
+ root_key, sub_key = key.split('\\', 1) |
+ try: |
Mathieu
2013/08/09 16:08:43
Add a comment inside the try block to describe wha
sukolsak
2013/08/09 21:12:38
Done.
|
+ reg_key = _winreg.OpenKey(self._RootKeyConstant(root_key), sub_key, 0, |
+ _winreg.KEY_READ) |
+ except WindowsError: |
+ self.testcase.assertFalse(expected, 'Registry entry %s is missing' % key) |
Mathieu
2013/08/09 16:08:43
- Add a comment.
- keep expectation['should_exist'
sukolsak
2013/08/09 21:12:38
Done.
|
+ return |
+ self.testcase.assertTrue(expected, 'Registry entry %s exists' % key) |
Mathieu
2013/08/09 16:08:43
put a comment here:
# The key exists, see that it
sukolsak
2013/08/09 21:12:38
Done.
|
+ if 'value' in entry: |
Mathieu
2013/08/09 16:08:43
remove this from the CL and only leave the TODO?
sukolsak
2013/08/09 21:12:38
Done.
|
+ # TODO(sukolsak): implement value |
+ pass |