You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.5 KiB
Python
53 lines
1.5 KiB
Python
|
|
'''
|
|
Tests the ZPoolCli class, non destructive version.
|
|
'''
|
|
|
|
from unittest.mock import patch
|
|
import pytest
|
|
|
|
from simplezfs.zpool_cli import ZPoolCli
|
|
|
|
|
|
class TestZPoolCli:
|
|
|
|
@patch('shutil.which')
|
|
def test_init_noparam(self, which):
|
|
which.return_value = '/bin/true'
|
|
|
|
ZPoolCli()
|
|
|
|
##########################################################################
|
|
|
|
@patch('shutil.which')
|
|
def test_find_executable_parameter(self, which):
|
|
which.return_value = None
|
|
|
|
zpool = ZPoolCli(zpool_exe='asdf')
|
|
assert zpool.executable == 'asdf'
|
|
|
|
@patch('shutil.which')
|
|
def test_find_executable_path(self, which):
|
|
which.return_value = 'test_return'
|
|
|
|
zpool = ZPoolCli()
|
|
assert zpool.executable == 'test_return'
|
|
|
|
@patch('shutil.which')
|
|
def test_find_executable_path_fail(self, which):
|
|
which.return_value = None
|
|
|
|
with pytest.raises(OSError) as excinfo:
|
|
ZPoolCli()
|
|
assert 'not find the executable' in str(excinfo.value)
|
|
|
|
##########################################################################
|
|
|
|
@pytest.mark.parametrize('data,expected', [('-', None), (None, None), ('asdf', 'asdf')])
|
|
def test_dash_to_none(self, data, expected):
|
|
assert ZPoolCli.dash_to_none(data) == expected
|
|
|
|
##########################################################################
|
|
##########################################################################
|
|
##########################################################################
|