aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLianhao Lu <lianhao.lu@intel.com>2018-08-30 11:04:38 +0800
committerLianhao Lu <lianhao.lu@intel.com>2018-08-30 11:04:38 +0800
commit7debff083837e36ccba3f54fa2962f0d1261f438 (patch)
treec82b991445c8cdcba926170cc87e09e3020f31cd
parent40bcf5a05ba8d1aaa933e7fa5f7880793555e07b (diff)
Test for vnf requirement R-04298
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>
-rw-r--r--setup.py1
-rw-r--r--tests/vnfreq/test_pkg_reqs.py12
-rw-r--r--vnfsdk_pkgtools/vnfreq/pkg_reqs.py15
3 files changed, 28 insertions, 0 deletions
diff --git a/setup.py b/setup.py
index 395931e..ec55196 100644
--- 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',
],
diff --git a/tests/vnfreq/test_pkg_reqs.py b/tests/vnfreq/test_pkg_reqs.py
index b83a860..0ab8b8c 100644
--- a/tests/vnfreq/test_pkg_reqs.py
+++ b/tests/vnfreq/test_pkg_reqs.py
@@ -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')
diff --git a/vnfsdk_pkgtools/vnfreq/pkg_reqs.py b/vnfsdk_pkgtools/vnfreq/pkg_reqs.py
index 5bc5c6b..6153fa4 100644
--- a/vnfsdk_pkgtools/vnfreq/pkg_reqs.py
+++ b/vnfsdk_pkgtools/vnfreq/pkg_reqs.py
@@ -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
+