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.
71 lines
2.8 KiB
Python
71 lines
2.8 KiB
Python
|
|
import pytest
|
|
|
|
from simplezfs.types import DatasetType, PropertySource
|
|
|
|
|
|
class TestDatasetType:
|
|
|
|
@pytest.mark.parametrize('string,value', [('FiLeSet', DatasetType.FILESET), ('fileset', DatasetType.FILESET),
|
|
('vOlUMe', DatasetType.VOLUME), ('volume', DatasetType.VOLUME),
|
|
('SnapSHOT', DatasetType.SNAPSHOT), ('snapshot', DatasetType.SNAPSHOT),
|
|
('BOOKmark', DatasetType.BOOKMARK), ('bookmark', DatasetType.BOOKMARK)])
|
|
def test_from_string_valid(self, string, value):
|
|
'''
|
|
Tests that the from_string helper works.
|
|
'''
|
|
v = DatasetType.from_string(string)
|
|
assert isinstance(v, DatasetType)
|
|
assert v.value == string.lower()
|
|
|
|
@pytest.mark.parametrize('string', [' fileset', 'dateiset', 'file set', 'data\0set', '', ' '])
|
|
def test_from_string_invalid(self, string):
|
|
'''
|
|
Tests if it raises an exception if the value is invalid.
|
|
'''
|
|
with pytest.raises(ValueError) as excinfo:
|
|
DatasetType.from_string(string)
|
|
assert 'not a valid DatasetType' in str(excinfo.value)
|
|
|
|
def test_from_string_None(self):
|
|
'''
|
|
Tests that it properly fails with None as input.
|
|
'''
|
|
with pytest.raises(ValueError) as excinfo:
|
|
DatasetType.from_string(None)
|
|
assert 'only string' in str(excinfo.value)
|
|
|
|
|
|
class TestPropertySource:
|
|
|
|
@pytest.mark.parametrize('string,value', [
|
|
('default', PropertySource.DEFAULT), ('DeFAULT', PropertySource.DEFAULT),
|
|
('inheriteD', PropertySource.INHERITED), ('inherited', PropertySource.INHERITED),
|
|
('TEMPORARY', PropertySource.TEMPORARY), ('temporary', PropertySource.TEMPORARY),
|
|
('rEcEiVeD', PropertySource.RECEIVED), ('received', PropertySource.RECEIVED),
|
|
('None', PropertySource.NONE), ('none', PropertySource.NONE)])
|
|
def test_from_string_valid(self, string, value):
|
|
'''
|
|
Test that the from_string helper works.
|
|
'''
|
|
v = PropertySource.from_string(string)
|
|
assert isinstance(v, PropertySource)
|
|
assert v.value == string.lower()
|
|
|
|
@pytest.mark.parametrize('string', ['asd', '', ' ', 'default\0', 'defaultdefault', 'Normal'])
|
|
def test_from_string_invalid(self, string):
|
|
'''
|
|
Tests that it raises an exception if the value is invalid.
|
|
'''
|
|
with pytest.raises(ValueError) as excinfo:
|
|
PropertySource.from_string(string)
|
|
assert 'not a valid PropertySource' in str(excinfo.value)
|
|
|
|
def test_from_string_None(self):
|
|
'''
|
|
Tests that it properly fails with None as input.
|
|
'''
|
|
with pytest.raises(ValueError) as excinfo:
|
|
PropertySource.from_string(None)
|
|
assert 'only string' in str(excinfo.value)
|