Test for vnf requirement R-04298 69/63669/1
authorLianhao Lu <lianhao.lu@intel.com>
Thu, 30 Aug 2018 03:04:38 +0000 (11:04 +0800)
committerLianhao Lu <lianhao.lu@intel.com>
Thu, 30 Aug 2018 03:04:38 +0000 (11:04 +0800)
Implement test for vnf requirement R-04298: The VNF provider MUST
provide their testing scripts to support testing.

Change-Id: I16e5b7f01fbf33983846a3f82895e5c78fe65948
Issue-ID: VNFSDK-312
Signed-off-by: Lianhao Lu <lianhao.lu@intel.com>
setup.py
tests/vnfreq/test_pkg_reqs.py
vnfsdk_pkgtools/vnfreq/pkg_reqs.py

index 395931e..ec55196 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -87,6 +87,7 @@ setup(
             'toscaparser = vnfsdk_pkgtools.validator.toscaparser_validator:ToscaparserValidator',
         ],
         'vnfsdk.pkgtools.vnfreq': [
+            'R-04298 = vnfsdk_pkgtools.vnfreq.pkg_reqs:R04298',
             'R-66070 = vnfsdk_pkgtools.vnfreq.pkg_reqs:R66070',
             'R-77707 = vnfsdk_pkgtools.vnfreq.pkg_reqs:R77707',
         ],
index b83a860..0ab8b8c 100644 (file)
@@ -50,3 +50,15 @@ def test_R77707(mocker, tmpdir):
     check_result('R-77707', reader, None,
                  'Package component sub/non-existing not found in manifest file')
 
+
+def test_R04298(mocker, tmpdir):
+    p1 = tmpdir.mkdir('tests').join('script.sh')
+    p1.write("#!/bin/sh")
+    reader = mocker.Mock()
+    reader.destination = str(tmpdir)
+    reader.entry_tests_dir = "tests"
+    check_result('R-04298', reader, None, None)
+
+    p1.remove()
+    check_result('R-04298', reader, None,
+                 'No testing scripts found')
index 5bc5c6b..6153fa4 100644 (file)
@@ -53,3 +53,18 @@ class R77707(vnfreq.TesterBase):
                     if rel_path not in reader.manifest.digests:
                         raise vnfreq.VnfRequirementError("Package component %s not found in manifest file" % rel_path)
         return 0
+
+
+class R04298(vnfreq.TesterBase):
+    ID = "R-04298"
+    DESC = ("The VNF provider MUST provide their testing scripts "
+            "to support testing.")
+
+    def _do_check(self, reader, tosca):
+        if not reader.entry_tests_dir:
+            raise vnfreq.VnfRequirementError("No test directory found")
+        elif not os.listdir(os.path.join(reader.destination,
+                                         reader.entry_tests_dir)):
+            raise vnfreq.VnfRequirementError("No testing scripts found")
+        return 0
+