# -*- coding: utf-8 -*- """ :codeauthor: Rahul Handay """ # Import Python Libs from __future__ import absolute_import, print_function, unicode_literals import os # Import Salt Libs import salt.modules.oracle as oracle # Import Salt Testing Libs from tests.support.mixins import LoaderModuleMockMixin from tests.support.mock import MagicMock, patch from tests.support.unit import TestCase class OracleTestCase(TestCase, LoaderModuleMockMixin): """ Test cases for salt.modules.oracle """ def setup_loader_modules(self): return {oracle: {"cx_Oracle": object()}} def test_run_query(self): """ Test for Run SQL query and return result """ with patch.object(oracle, "_connect", MagicMock()) as mock_connect: mock_connect.cursor.execute.fetchall.return_value = True with patch.object(oracle, "show_dbs", MagicMock()): self.assertTrue(oracle.run_query("db", "query")) def test_show_dbs(self): """ Test for Show databases configuration from pillar. Filter by `*args` """ with patch.dict(oracle.__salt__, {"pillar.get": MagicMock(return_value="a")}): self.assertDictEqual(oracle.show_dbs("A", "B"), {"A": "a", "B": "a"}) self.assertEqual(oracle.show_dbs(), "a") def test_version(self): """ Test for Server Version (select banner from v$version) """ with patch.dict(oracle.__salt__, {"pillar.get": MagicMock(return_value="a")}): with patch.object(oracle, "run_query", return_value="A"): self.assertDictEqual(oracle.version(), {}) def test_client_version(self): """ Test for Oracle Client Version """ with patch.object(oracle, "cx_Oracle", MagicMock(side_effect=MagicMock())): self.assertEqual(oracle.client_version(), "") def test_show_pillar(self): """ Test for Show Pillar segment oracle.* """ with patch.dict(oracle.__salt__, {"pillar.get": MagicMock(return_value="a")}): self.assertEqual(oracle.show_pillar("item"), "a") def test_show_env(self): """ Test for Show Environment used by Oracle Client """ with patch.object( os, "environ", return_value={ "PATH": "PATH", "ORACLE_HOME": "ORACLE_HOME", "TNS_ADMIN": "TNS_ADMIN", "NLS_LANG": "NLS_LANG", }, ): self.assertDictEqual(oracle.show_env(), {})