salt/tests/unit/utils/test_sdb.py
2018-08-13 12:06:48 -04:00

66 lines
1.7 KiB
Python

# -*- coding: utf-8 -*-
'''
:codeauthor: :email:`Vernon Cole <vernondcole@gmail.com>`
'''
# Import Python Libs
from __future__ import absolute_import, print_function, unicode_literals
import os
# Import Salt Testing Libs
from tests.support.runtests import RUNTIME_VARS
from tests.support.mixins import LoaderModuleMockMixin
from tests.support.unit import TestCase, skipIf
from tests.support.mock import (
NO_MOCK,
NO_MOCK_REASON
)
# Import Salt Libs
import salt.utils.sdb as sdb
TEMP_DATABASE_FILE = os.path.join(RUNTIME_VARS.TMP, 'test_sdb.sqlite')
SDB_OPTS = {
'extension_modules': '',
'optimization_order': [0, 1, 2],
'test_sdb_data': {
'driver': 'sqlite3',
'database': TEMP_DATABASE_FILE,
'table': 'sdb',
'create_table': True
}
}
@skipIf(NO_MOCK, NO_MOCK_REASON)
class SdbTestCase(TestCase, LoaderModuleMockMixin):
'''
Test cases for salt.modules.sdb
'''
@classmethod
def tearDownClass(cls):
try:
os.unlink(TEMP_DATABASE_FILE)
except OSError:
pass
def setup_loader_modules(self):
return {sdb: {}}
# test with SQLite database key not presest
def test_sqlite_get_not_found(self):
what = sdb.sdb_get(
'sdb://test_sdb_data/thisKeyDoesNotExist', SDB_OPTS)
self.assertEqual(what, None)
# test with SQLite database write and read
def test_sqlite_get_found(self):
expected = {b'name': b'testone', b'number': 46}
sdb.sdb_set('sdb://test_sdb_data/test1', expected, SDB_OPTS)
resp = sdb.sdb_get('sdb://test_sdb_data/test1', SDB_OPTS)
self.assertEqual(resp, expected)