Ver código fonte

Merge pull request #2639 from tbielawa/test-utils-debugging

Unit tests for the debug_env logger thing
Andrew Butcher 8 anos atrás
pai
commit
b5570b656e
1 arquivos alterados com 72 adições e 0 exclusões
  1. 72 0
      utils/test/test_utils.py

+ 72 - 0
utils/test/test_utils.py

@@ -0,0 +1,72 @@
+"""
+Unittests for ooinstall utils.
+"""
+
+import unittest
+import logging
+import sys
+import copy
+from ooinstall.utils import debug_env
+import mock
+
+
+class TestUtils(unittest.TestCase):
+    """
+    Parent unittest TestCase.
+    """
+
+    def setUp(self):
+        self.debug_all_params = {
+            'OPENSHIFT_FOO': 'bar',
+            'ANSIBLE_FOO': 'bar',
+            'OO_FOO': 'bar'
+        }
+
+        self.expected = [
+            mock.call('ANSIBLE_FOO: bar'),
+            mock.call('OPENSHIFT_FOO: bar'),
+            mock.call('OO_FOO: bar'),
+        ]
+
+        # python 2.x has assertItemsEqual, python 3.x has assertCountEqual
+        if sys.version_info.major > 3:
+            self.assertItemsEqual = self.assertCountEqual
+
+    ######################################################################
+    # Validate ooinstall.utils.debug_env functionality
+
+    def test_utils_debug_env_all_debugged(self):
+        """Verify debug_env debugs specific env variables"""
+
+        with mock.patch('ooinstall.utils.installer_log') as _il:
+            debug_env(self.debug_all_params)
+            print _il.debug.call_args_list
+
+            # Debug was called for each item we expect
+            self.assertEqual(
+                len(self.debug_all_params),
+                _il.debug.call_count)
+
+            # Each item we expect was logged
+            self.assertItemsEqual(
+                self.expected,
+                _il.debug.call_args_list)
+
+    def test_utils_debug_env_some_debugged(self):
+        """Verify debug_env skips non-wanted env variables"""
+        debug_some_params = copy.deepcopy(self.debug_all_params)
+        # This will not be logged by debug_env
+        debug_some_params['MG_FRBBR'] = "SKIPPED"
+
+        with mock.patch('ooinstall.utils.installer_log') as _il:
+            debug_env(debug_some_params)
+
+            # The actual number of debug calls was less than the
+            # number of items passed to debug_env
+            self.assertLess(
+                _il.debug.call_count,
+                len(debug_some_params))
+
+            self.assertItemsEqual(
+                self.expected,
+                _il.debug.call_args_list)