pass
-class InvalidContent(BaseError):
+class InvalidContentError(BaseError):
def __init__(self, filename, excinfo=None):
self.filename = filename
self.excinfo = excinfo
-class NotFound(BaseError):
- def __init__(self, module, package='qtip'):
- self.package = package
- self.module = module
+class NotFoundError(BaseError):
+ def __init__(self, needle, heystack='qtip'):
+ self.needle = needle
+ self.heystack = heystack
class ToBeDoneError(BaseError):
def __init__(self, method, module):
self.method = method
self.module = module
-
-
-def make_tbd(method, module='qtip'):
- def tbd():
- raise ToBeDoneError(method, module)
- return tbd
from os import path
from qtip.base.constant import BaseProp
-from qtip.base.error import NotFound
+from qtip.base.error import NotFoundError
from qtip.loader.base import BaseLoader
abspath = path.join(p, self.RELATIVE_PATH, name)
if path.exists(abspath):
return abspath
- raise NotFound(name, paths)
+ raise NotFoundError(name, paths)
@classmethod
def list_all(cls, paths=None):
from os import path
import yaml
-from qtip.base.error import InvalidContent
+from qtip.base.error import InvalidContentError
from qtip.base.constant import BaseProp
from qtip.loader.file import FileLoader
with open(abspath, 'r') as stream:
content = yaml.safe_load(stream)
if not isinstance(content, dict):
- raise InvalidContent(abspath)
+ raise InvalidContentError(abspath)
self.content = content
self.name = content.get(BaseProp.NAME, path.splitext(name)[0])
##############################################################################
from qtip.base.constant import PkgName, BaseProp
-from qtip.base.error import NotFound
+from qtip.base.error import NotFoundError
from qtip.collector.stdout import StdoutCollector
from qtip.driver.random import RandomDriver
from qtip.reporter.console import ConsoleReporter
if driver_name == 'random':
self.driver = RandomDriver()
else:
- raise NotFound(driver_name, heystack=PkgName.DRIVER)
+ raise NotFoundError(driver_name, heystack=PkgName.DRIVER)
if collector_name == 'stdout':
self.collector = StdoutCollector()
else:
- raise NotFound(collector_name,
- heystack=PkgName.COLLECTOR)
+ raise NotFoundError(collector_name,
+ heystack=PkgName.COLLECTOR)
if reporter_name == 'console':
self.reporter = ConsoleReporter()
else:
- raise NotFound(reporter_name,
- heystack=PkgName.REPORTER)
+ raise NotFoundError(reporter_name,
+ heystack=PkgName.REPORTER)
--- /dev/null
+##############################################################################
+# Copyright (c) 2017 ZTE Corporation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+
+from qtip.base.error import ToBeDoneError
+
+
+def create_to_be_done(method, module='qtip'):
+ def tbd():
+ raise ToBeDoneError(method, module)
+ return tbd
import numpy
-from qtip.base.error import make_tbd
+from qtip.util.dev import create_to_be_done
from qtip.base.constant import FormulaName
FormulaName.ARITHMETIC_MEAN: numpy.mean,
FormulaName.WEIGHTED_ARITHMETIC_MEAN: numpy.average,
# TODO(yujunz) find or implement the method
- FormulaName.GEOMETRIC_MEAN: make_tbd(FormulaName.GEOMETRIC_MEAN, __name__),
+ FormulaName.GEOMETRIC_MEAN: create_to_be_done(FormulaName.GEOMETRIC_MEAN, __name__),
# TODO(yujunz) find or implement the method
FormulaName.WEIGHTED_GEOMETRIC_MEAN:
- make_tbd(FormulaName.GEOMETRIC_MEAN, __name__)}
+ create_to_be_done(FormulaName.GEOMETRIC_MEAN, __name__)}
class Formula:
pykwalify
mock
pip_check_reqs
+coverage
+pytest-cov
+pytest-faker
+tox
--- /dev/null
+###############################################################
+# Copyright (c) 2017 ZTE Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+import pytest
+
+from qtip.base.error import InvalidContentError
+from qtip.base.error import NotFoundError
+from qtip.base.error import ToBeDoneError
+
+
+def test_invalid_content(faker):
+ filename = faker.file_name()
+ error = InvalidContentError(filename)
+ assert error.filename == filename
+
+
+def test_not_found(faker):
+ package = faker.pystr()
+ module = faker.pystr()
+ error = NotFoundError(module)
+ assert error.needle == module
+ assert error.heystack == 'qtip'
+
+ error = NotFoundError(module, package)
+ assert error.needle == module
+ assert error.heystack == package
+
+
+@pytest.fixture
+def method(faker):
+ return faker.pystr()
+
+
+@pytest.fixture
+def module(faker):
+ return faker.pystr()
+
+
+def test_to_be_done(method, module):
+ error = ToBeDoneError(method, module)
+ assert error.method == method
+ assert error.module == module
import os
import pytest
-from qtip.base.error import InvalidContent
+from qtip.base.error import InvalidContentError
from qtip.loader.yaml_file import YamlFileLoader
def test_invalid_content(yaml_root):
- with pytest.raises(InvalidContent) as excinfo:
+ with pytest.raises(InvalidContentError) as excinfo:
YamlFileLoader('invalid.yaml', [yaml_root])
assert 'invalid.yaml' in excinfo.value.filename
--- /dev/null
+###############################################################
+# Copyright (c) 2017 ZTE Corporation
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+import pytest
+
+from qtip.base.error import ToBeDoneError
+from qtip.util.dev import create_to_be_done
+
+
+def test_create_to_be_done(faker):
+ method = faker.pystr()
+ module = faker.pystr()
+
+ tbd = create_to_be_done(method)
+ assert callable(tbd)
+ with pytest.raises(ToBeDoneError) as excinfo:
+ tbd()
+ assert excinfo.value.method == method
+ assert excinfo.value.module == 'qtip'
+
+ tbd = create_to_be_done(method, module)
+ assert callable(tbd)
+ with pytest.raises(ToBeDoneError) as excinfo:
+ tbd()
+ assert excinfo.value.method == method
+ assert excinfo.value.module == module