diff options
-rw-r--r-- | docs/com/pres/framework/framework.md | 56 | ||||
-rw-r--r-- | functest/core/feature.py | 2 | ||||
-rw-r--r-- | functest/core/unit.py | 43 |
3 files changed, 90 insertions, 11 deletions
diff --git a/docs/com/pres/framework/framework.md b/docs/com/pres/framework/framework.md index 3c1aae1b8..1b07a8e0b 100644 --- a/docs/com/pres/framework/framework.md +++ b/docs/com/pres/framework/framework.md @@ -252,6 +252,62 @@ run: +## class Suite +bases: TestCase + +base model for running unittest.TestSuite + + +### run(**kwargs) + +- allows running any unittest.TestSuite +- sets the following attributes required to push the results to DB: + - result + - start_time + - stop_time + - details + + + +## Your fourth test case + + +### fourth.py + +```python +#!/usr/bin/env python + +import unittest + +class TestStringMethods(unittest.TestCase): + + def test_upper(self): + self.assertEqual('Hello World'.upper(), + 'HELLO WORLD') +``` + + +### functest/ci/testcases.yaml + +``` +case_name: fourth +project_name: functest +criteria: 100 +blocking: true +clean_flag: false +description: '' +dependencies: + installer: '' + scenario: '' +run: + module: 'functest.core.unit' + class: 'Suite' + args: + name: 'fourth' +``` + + + ## Euphrates diff --git a/functest/core/feature.py b/functest/core/feature.py index 140c9bb2e..d53eb7d0e 100644 --- a/functest/core/feature.py +++ b/functest/core/feature.py @@ -7,7 +7,7 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 -"""Define the parent class of all Functest Features. +"""Define the parent classes of all Functest Features. Feature is considered as TestCase offered by Third-party. It offers helpers to run any python method or any bash command. diff --git a/functest/core/unit.py b/functest/core/unit.py index 6d8b5879e..6799420c7 100644 --- a/functest/core/unit.py +++ b/functest/core/unit.py @@ -1,11 +1,13 @@ -# Copyright (c) 2015 All rights reserved -# This program and the accompanying materials +#!/usr/bin/env python + +# Copyright (c) 2016 Cable Television Laboratories, Inc. 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 -# pylint: disable=missing-docstring +"""Define the parent class to run unittest.TestSuite as TestCase.""" from __future__ import division @@ -17,12 +19,12 @@ import six from functest.core import testcase +__author__ = ("Steven Pisarski <s.pisarski@cablelabs.com>, " + "Cedric Ollivier <cedric.ollivier@orange.com>") + class Suite(testcase.TestCase): - """ - This superclass is designed to execute pre-configured unittest.TestSuite() - objects - """ + """Base model for running unittest.TestSuite.""" def __init__(self, **kwargs): super(Suite, self).__init__(**kwargs) @@ -30,8 +32,29 @@ class Suite(testcase.TestCase): self.logger = logging.getLogger(__name__) def run(self, **kwargs): - """ - Starts test execution from the functest framework + """Run the test suite. + + It allows running any unittest.TestSuite and getting its + execution status. + + By default, it runs the suite defined as instance attribute. + It can be overriden by passing name as arg. It must + conform with TestLoader.loadTestsFromName(). + + It sets the following attributes required to push the results + to DB: + + * result, + * start_time, + * stop_time, + * details. + + Args: + kwargs: Arbitrary keyword arguments. + + Returns: + TestCase.EX_OK if any TestSuite has been run, + TestCase.EX_RUN_ERROR otherwise. """ try: name = kwargs["name"] |