123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- # -*- coding: utf-8 -*-
- '''
- Validate the mac-keychain module
- '''
- # Import Python Libs
- from __future__ import absolute_import, unicode_literals, print_function
- import os
- # Import Salt Testing Libs
- from tests.support.case import ModuleCase
- from tests.support.runtests import RUNTIME_VARS
- # Import Salt Libs
- from salt.exceptions import CommandExecutionError
- # Import 3rd-party libs
- import pytest
- from salt.ext import six
- @pytest.mark.destructive_test
- @pytest.mark.skip_if_not_root
- class MacKeychainModuleTest(ModuleCase):
- '''
- Integration tests for the mac_keychain module
- '''
- @classmethod
- def setUpClass(cls):
- cls.cert = os.path.join(
- RUNTIME_VARS.FILES,
- 'file',
- 'base',
- 'certs',
- 'salttest.p12'
- )
- cls.cert_alias = 'Salt Test'
- cls.passwd = 'salttest'
- def setUp(self):
- '''
- Sets up the test requirements
- '''
- os_grain = self.run_function('grains.item', ['kernel'])
- # Must be running on a mac
- if os_grain['kernel'] not in 'Darwin':
- self.skipTest(
- 'Test not applicable to \'{kernel}\' kernel'.format(
- **os_grain
- )
- )
- def tearDown(self):
- '''
- Clean up after tests
- '''
- # Remove the salttest cert, if left over.
- certs_list = self.run_function('keychain.list_certs')
- if self.cert_alias in certs_list:
- self.run_function('keychain.uninstall', [self.cert_alias])
- def test_mac_keychain_install(self):
- '''
- Tests that attempts to install a certificate
- '''
- install_cert = self.run_function('keychain.install', [self.cert, self.passwd])
- self.assertTrue(install_cert)
- # check to ensure the cert was installed
- certs_list = self.run_function('keychain.list_certs')
- self.assertIn(self.cert_alias, certs_list)
- def test_mac_keychain_uninstall(self):
- '''
- Tests that attempts to uninstall a certificate
- '''
- self.run_function('keychain.install', [self.cert, self.passwd])
- certs_list = self.run_function('keychain.list_certs')
- if self.cert_alias not in certs_list:
- self.run_function('keychain.uninstall', [self.cert_alias])
- self.skipTest('Failed to install keychain')
- # uninstall cert
- self.run_function('keychain.uninstall', [self.cert_alias])
- certs_list = self.run_function('keychain.list_certs')
- # check to ensure the cert was uninstalled
- try:
- self.assertNotIn(self.cert_alias, six.text_type(certs_list))
- except CommandExecutionError:
- self.run_function('keychain.uninstall', [self.cert_alias])
- def test_mac_keychain_get_friendly_name(self):
- '''
- Test that attempts to get friendly name of a cert
- '''
- self.run_function('keychain.install', [self.cert, self.passwd])
- certs_list = self.run_function('keychain.list_certs')
- if self.cert_alias not in certs_list:
- self.run_function('keychain.uninstall', [self.cert_alias])
- self.skipTest('Failed to install keychain')
- get_name = self.run_function('keychain.get_friendly_name', [self.cert, self.passwd])
- self.assertEqual(get_name, self.cert_alias)
- def test_mac_keychain_get_default_keychain(self):
- '''
- Test that attempts to get the default keychain
- '''
- salt_get_keychain = self.run_function('keychain.get_default_keychain')
- sys_get_keychain = self.run_function('cmd.run',
- ['security default-keychain -d user'])
- self.assertEqual(salt_get_keychain, sys_get_keychain)
- def test_mac_keychain_list_certs(self):
- '''
- Test that attempts to list certs
- '''
- cert_default = 'com.apple.systemdefault'
- certs = self.run_function('keychain.list_certs')
- self.assertIn(cert_default, certs)
|