# coding=utf-8 ''' Test case for utils/__init__.py ''' from __future__ import unicode_literals, print_function, absolute_import from tests.support.unit import TestCase, skipIf import salt.utils.environment try: import pytest except ImportError: pytest = None @skipIf(pytest is None, 'PyTest is missing') class UtilsTestCase(TestCase): ''' Test case for utils/__init__.py ''' def test_get_module_environment_empty(self): ''' Test for salt.utils.get_module_environment Test if empty globals returns to an empty environment with the correct type. :return: ''' out = salt.utils.environment.get_module_environment({}) assert out == {} assert isinstance(out, dict) def test_get_module_environment_opts(self): ''' Test for salt.utils.get_module_environment Test if __opts__ are visible. :return: ''' expectation = {'message': 'Melting hard drives'} _globals = { '__opts__': { 'system-environment': { 'modules': { 'system': { '_': expectation, }, }, }, }, '__file__': '/daemons/loose/modules/system.py', } assert salt.utils.environment.get_module_environment(_globals) == expectation def test_get_module_environment_pillars(self): ''' Test for salt.utils.get_module_environment Test if __pillar__ is visible. :return: ''' expectation = {'message': 'The CPU has shifted, and become decentralized.'} _globals = { '__opts__': { 'system-environment': { 'electric': { 'interference': { '_': expectation, }, }, }, }, '__file__': '/piezo/electric/interference.py', } assert salt.utils.environment.get_module_environment(_globals) == expectation def test_get_module_environment_pillar_override(self): ''' Test for salt.utils.get_module_environment Test if __pillar__ is overriding __opts__. :return: ''' expectation = {'msg': 'The CPU has shifted, and become decentralized.'} _globals = { '__opts__': { 'system-environment': { 'electric': { 'interference': { '_': {'msg': 'Trololo!'}, }, }, }, }, '__pillar__': { 'system-environment': { 'electric': { 'interference': { '_': expectation, }, }, }, }, '__file__': '/piezo/electric/interference.py', } assert salt.utils.environment.get_module_environment(_globals) == expectation def test_get_module_environment_sname_found(self): ''' Test for salt.utils.get_module_environment Section name and module name are found. :return: ''' expectation = {'msg': 'All operators are on strike due to broken coffee machine!'} _globals = { '__opts__': { 'system-environment': { 'jumping': { 'interference': { '_': expectation, }, }, }, }, '__file__': '/route/flapping/at_the_nap.py', } assert salt.utils.environment.get_module_environment(_globals) == {} _globals['__file__'] = '/route/jumping/interference.py' assert salt.utils.environment.get_module_environment(_globals) == expectation def test_get_module_environment_mname_found(self): ''' Test for salt.utils.get_module_environment Module name is found. :return: ''' expectation = {'msg': 'All operators are on strike due to broken coffee machine!'} _globals = { '__pillar__': { 'system-environment': { 'jumping': { 'nonsense': { '_': expectation, }, }, }, }, '__file__': '/route/jumping/interference.py', } assert salt.utils.environment.get_module_environment(_globals) == {} _globals['__pillar__']['system-environment']['jumping']['interference'] = {} _globals['__pillar__']['system-environment']['jumping']['interference']['_'] = expectation assert salt.utils.environment.get_module_environment(_globals) == expectation def test_get_module_environment_vname_found(self): ''' Test for salt.utils.get_module_environment Virtual name is found. :return: ''' expectation = {'msg': 'All operators are on strike due to broken coffee machine!'} _globals = { '__virtualname__': 'nonsense', '__pillar__': { 'system-environment': { 'jumping': { 'nonsense': { '_': expectation, }, }, }, }, '__file__': '/route/jumping/translation.py', } assert salt.utils.environment.get_module_environment(_globals) == expectation def test_get_module_environment_vname_overridden(self): ''' Test for salt.utils.get_module_environment Virtual namespace overridden. :return: ''' expectation = {'msg': 'New management.'} _globals = { '__virtualname__': 'nonsense', '__pillar__': { 'system-environment': { 'funny': { 'translation': { '_': expectation, }, 'nonsense': { '_': {'msg': 'This is wrong'}, }, }, }, }, '__file__': '/lost/in/funny/translation.py', } assert salt.utils.environment.get_module_environment(_globals) == expectation