Started writing brew unit tests

This commit is contained in:
rallytime 2014-02-27 17:03:08 -07:00
parent d4775819f7
commit 00b8c3dc70
2 changed files with 73 additions and 1 deletions

View File

@ -29,7 +29,7 @@ def __virtual__():
def _list_taps(): def _list_taps():
''' '''
List currently List currently installed brew taps
''' '''
cmd = 'brew tap' cmd = 'brew tap'
return __salt__['cmd.run'](cmd, output_loglevel='debug').splitlines() return __salt__['cmd.run'](cmd, output_loglevel='debug').splitlines()

View File

@ -0,0 +1,72 @@
# -*- coding: utf-8 -*-
'''
:codeauthor: :email:`Nicole Thomas <nicole@satlstack.com>`
'''
# Import Salt Testing Libs
from salttesting import TestCase, skipIf
from salttesting.mock import MagicMock, patch
from salttesting.helpers import ensure_in_syspath
ensure_in_syspath('../../')
# Import Salt Libs
from salt.modules import brew
# Global Variables
brew.__salt__ = {}
taps_string = 'homebrew/dupes\nhomebrew/science\nhomebrew/x11'
taps_list = ['homebrew/dupes', 'homebrew/science', 'homebrew/x11']
class BrewTestCase(TestCase):
'''
TestCase for salt.modules.brew module
'''
def test_list_taps(self):
'''
Tests the return of the list of taps
'''
mock_taps = MagicMock(return_value=taps_string)
with patch.dict(brew.__salt__, {'cmd.run': mock_taps}):
self.assertEqual(brew._list_taps(), taps_list)
@patch('salt.modules.brew._list_taps', MagicMock(return_value=taps_list))
def test_tap_installed(self):
'''
Tests if tap argument is already installed or not
'''
self.assertTrue(brew._tap('homebrew/science'))
@patch('salt.modules.brew._list_taps', MagicMock(return_value={}))
def test_tap_failure(self):
'''
Tests if the tap installation failed
'''
mock_failure = MagicMock(return_value=1)
with patch.dict(brew.__salt__, {'cmd.retcode': mock_failure}):
self.assertFalse(brew._tap('homebrew/test'))
@patch('salt.modules.brew._list_taps', MagicMock(return_value=taps_list))
def test_tap(self):
'''
Tests adding unofficial Github repos to the list of brew taps
'''
mock_success = MagicMock(return_value=0)
with patch.dict(brew.__salt__, {'cmd.retcode': mock_success}):
self.assertTrue(brew._tap('homebrew/test'))
def test_homebrew_bin(self):
'''
Tests the path to the homebrew binary
'''
mock_path = MagicMock(return_value='/usr/local')
with patch.dict(brew.__salt__, {'cmd.run': mock_path}):
self.assertEqual(brew._homebrew_bin(), '/usr/local/bin/brew')
if __name__ == '__main__':
from integration import run_tests
run_tests(BrewTestCase, needs_daemon=False)