Add docstrings in unit
authorCédric Ollivier <cedric.ollivier@orange.com>
Tue, 23 May 2017 16:45:27 +0000 (18:45 +0200)
committerCédric Ollivier <cedric.ollivier@orange.com>
Tue, 23 May 2017 19:00:24 +0000 (21:00 +0200)
It also adds shebang and conforms the copyright header with the related
OPNFV template.

Change-Id: Iacb0cc8629e3021181eef2e8cb76daf48601abf4
Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
docs/com/pres/framework/framework.md
functest/core/feature.py
functest/core/unit.py

index 3c1aae1..1b07a8e 100644 (file)
@@ -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
 
 
index 140c9bb..d53eb7d 100644 (file)
@@ -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.
index 6d8b587..6799420 100644 (file)
@@ -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"]