77 lines
2.6 KiB
Python
77 lines
2.6 KiB
Python
from testtools import TestCase
|
|
from mock import patch
|
|
|
|
import charmhelpers.contrib.openstack.alternatives as alternatives
|
|
|
|
|
|
NAME = 'test'
|
|
SOURCE = '/var/lib/charm/test/test.conf'
|
|
TARGET = '/etc/test/test,conf'
|
|
|
|
|
|
class AlternativesTestCase(TestCase):
|
|
|
|
@patch('subprocess.os.path')
|
|
@patch('subprocess.check_call')
|
|
def test_new_alternative(self, _check, _path):
|
|
_path.exists.return_value = False
|
|
alternatives.install_alternative(NAME,
|
|
TARGET,
|
|
SOURCE)
|
|
_check.assert_called_with(
|
|
['update-alternatives', '--force', '--install',
|
|
TARGET, NAME, SOURCE, '50']
|
|
)
|
|
|
|
@patch('subprocess.os.path')
|
|
@patch('subprocess.check_call')
|
|
def test_priority(self, _check, _path):
|
|
_path.exists.return_value = False
|
|
alternatives.install_alternative(NAME,
|
|
TARGET,
|
|
SOURCE, 100)
|
|
_check.assert_called_with(
|
|
['update-alternatives', '--force', '--install',
|
|
TARGET, NAME, SOURCE, '100']
|
|
)
|
|
|
|
@patch('shutil.move')
|
|
@patch('subprocess.os.path')
|
|
@patch('subprocess.check_call')
|
|
def test_new_alternative_existing_file(self, _check,
|
|
_path, _move):
|
|
_path.exists.return_value = True
|
|
_path.islink.return_value = False
|
|
alternatives.install_alternative(NAME,
|
|
TARGET,
|
|
SOURCE)
|
|
_check.assert_called_with(
|
|
['update-alternatives', '--force', '--install',
|
|
TARGET, NAME, SOURCE, '50']
|
|
)
|
|
_move.assert_called_with(TARGET, '{}.bak'.format(TARGET))
|
|
|
|
@patch('shutil.move')
|
|
@patch('subprocess.os.path')
|
|
@patch('subprocess.check_call')
|
|
def test_new_alternative_existing_link(self, _check,
|
|
_path, _move):
|
|
_path.exists.return_value = True
|
|
_path.islink.return_value = True
|
|
alternatives.install_alternative(NAME,
|
|
TARGET,
|
|
SOURCE)
|
|
_check.assert_called_with(
|
|
['update-alternatives', '--force', '--install',
|
|
TARGET, NAME, SOURCE, '50']
|
|
)
|
|
_move.assert_not_called()
|
|
|
|
@patch('subprocess.check_call')
|
|
def test_remove_alternative(self, _check):
|
|
alternatives.remove_alternative(NAME, SOURCE)
|
|
_check.assert_called_with(
|
|
['update-alternatives', '--remove',
|
|
NAME, SOURCE]
|
|
)
|