add some tests for pe helper classes
parent
35c0a1df7e
commit
42df36a2c3
@ -0,0 +1,80 @@
|
||||
|
||||
|
||||
import pytest
|
||||
from simplezfs.pe_helper import ExternalPEHelper, PEHelperBase, SudoPEHelper
|
||||
|
||||
|
||||
class TestPEHelperBase:
|
||||
|
||||
def test_repr(self):
|
||||
pehb = PEHelperBase()
|
||||
assert 'PEHelperBase' in str(pehb)
|
||||
|
||||
def test_not_implemented(self):
|
||||
pehb = PEHelperBase()
|
||||
|
||||
with pytest.raises(NotImplementedError):
|
||||
pehb.zfs_mount('test')
|
||||
with pytest.raises(NotImplementedError):
|
||||
pehb.zfs_set_mountpoint('test', '/test')
|
||||
|
||||
|
||||
class TestExternalPEHelper:
|
||||
|
||||
def test_repr(self):
|
||||
eph = ExternalPEHelper('/bin/true')
|
||||
assert 'ExternalPEHelper' in str(eph)
|
||||
assert '/bin/true' in str(eph)
|
||||
|
||||
# ########################################################################
|
||||
def test_get_executable(self):
|
||||
eph = ExternalPEHelper('/bin/true')
|
||||
assert eph.executable == '/bin/true'
|
||||
|
||||
def test_set_executable(self):
|
||||
eph = ExternalPEHelper('/bin/false')
|
||||
assert eph.executable == '/bin/false'
|
||||
|
||||
eph.executable = '/bin/true'
|
||||
assert eph.executable == '/bin/true'
|
||||
|
||||
def test_set_executable_not_found_ctor(self):
|
||||
with pytest.raises(FileNotFoundError) as e:
|
||||
ExternalPEHelper('/file/does/not/exist')
|
||||
assert 'No such file or directory' in str(e.value)
|
||||
|
||||
def test_set_executable_not_found_property(self):
|
||||
eph = ExternalPEHelper('/bin/true')
|
||||
with pytest.raises(FileNotFoundError) as e:
|
||||
eph.executable = '/file/does/not/exist'
|
||||
assert 'No such file or directory' in str(e.value)
|
||||
|
||||
def test_set_executable_directory_ctor(self):
|
||||
with pytest.raises(FileNotFoundError) as e:
|
||||
ExternalPEHelper('/')
|
||||
assert 'must be a file' in str(e.value)
|
||||
|
||||
def test_set_executable_directory_property(self):
|
||||
eph = ExternalPEHelper('/bin/true')
|
||||
with pytest.raises(FileNotFoundError) as e:
|
||||
eph.executable = '/'
|
||||
assert 'must be a file' in str(e.value)
|
||||
|
||||
def test_set_executable_nonexecutable_ctor(self):
|
||||
with pytest.raises(FileNotFoundError) as e:
|
||||
ExternalPEHelper('/etc/hosts')
|
||||
assert 'must be executable' in str(e.value)
|
||||
|
||||
def test_set_executable_nonexecutable_property(self):
|
||||
eph = ExternalPEHelper('/bin/true')
|
||||
with pytest.raises(FileNotFoundError) as e:
|
||||
eph.executable = '/etc/hosts'
|
||||
assert 'must be executable' in str(e.value)
|
||||
|
||||
|
||||
class TestSudoPEHelper:
|
||||
|
||||
def test_repr(self):
|
||||
sph = SudoPEHelper()
|
||||
assert 'SudoPEHelper' in str(sph)
|
||||
assert 'sudo' in str(sph)
|
Loading…
Reference in New Issue