summaryrefslogtreecommitdiffstats
path: root/utils/test/test_utils.py
blob: 8d59f388e6f42aef68b484169517b96e0278414b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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)