adress mypy and flake8 findings

main
svalouch 5 years ago
parent 5731fcfd48
commit 42bf2dc276

@ -158,6 +158,7 @@ def validate_metadata_property_name(name: str) -> None:
if not METADATA_PROPERTY_NAME_RE.match(name):
raise ValidationError('property name does not match')
def validate_property_value(value: str) -> None:
'''
Validates the value of a property. This works for both native properties, where the driver will tell us if the

@ -10,7 +10,7 @@ import shutil
import subprocess
from .exceptions import DatasetNotFound, PropertyNotFound
from .types import Property, Dataset
from .types import Dataset, Property, PropertySource
from .validation import (
validate_dataset_path,
validate_pool_name,
@ -164,7 +164,9 @@ class ZFSCli(ZFS):
if is_metadata:
namespace = prop_name.split(':')[0]
return Property(key=prop_name, value=prop_value, source=prop_source, namespace=namespace)
property_source = PropertySource.from_string(prop_source)
return Property(key=prop_name, value=prop_value, source=property_source, namespace=namespace)
def _get_properties(self, dataset: str, include_metadata: bool = False) -> List[Property]:
'''
@ -182,11 +184,12 @@ class ZFSCli(ZFS):
for line in proc.stdout.split('\n'):
if line:
_, prop_name, prop_value, prop_source = line.strip().split('\t')
property_source = PropertySource.from_string(prop_source)
if ':' in prop_name:
if include_metadata:
namespace = prop_name.split(':')[0]
prop_name = prop_name.lstrip(f'{namespace}:')
res.append(Property(key=prop_name, value=prop_value, source=prop_source, namespace=namespace))
res.append(Property(key=prop_name, value=prop_value, source=property_source, namespace=namespace))
else:
res.append(Property(key=prop_name, value=prop_value, source=prop_source, namespace=None))
res.append(Property(key=prop_name, value=prop_value, source=property_source, namespace=None))
return res

@ -6,7 +6,7 @@ CLI-based implementation of ZPOOL.
import logging
import shutil
from typing import Any, Dict, NamedTuple, Optional
from typing import Any, Dict, Optional
from .types import ZPoolHealth
from .zpool import ZPool
@ -14,7 +14,7 @@ log = logging.getLogger('zfs.zpool_cli')
class ZPoolCli(ZPool):
def __init__(self, *, metadata_namespace: Optional[str] = None, zpool_exe: Optional[str] = None, **kwargs) -> None:
super().__init__(metadata_namespace=metadata_namespace)
self.find_executable(path=zpool_exe)
@ -104,7 +104,7 @@ class ZPoolCli(ZPool):
# Append the pending elements to the current pool and state and clear them.
if vdev_drives:
plog.debug(f'have {len(vdev_drives)} vdev_drives, save data')
vdevs['members']= vdev_drives
vdevs['members'] = vdev_drives
output[pool_name][state].append(vdevs)
vdevs = dict(type='none')

@ -32,6 +32,7 @@ class TestDatasetType:
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)])

@ -238,6 +238,7 @@ class TestMetadataPropertyName:
validate_metadata_property_name('a' * 1024)
assert 'length >' in str(excinfo.value)
class TestPropertyValue:
'''
Tests the function ``validate_property_value``.

Loading…
Cancel
Save