diff options
author | Lianhao Lu <lianhao.lu@intel.com> | 2018-08-30 11:04:38 +0800 |
---|---|---|
committer | Lianhao Lu <lianhao.lu@intel.com> | 2018-08-30 11:04:38 +0800 |
commit | 7debff083837e36ccba3f54fa2962f0d1261f438 (patch) | |
tree | c82b991445c8cdcba926170cc87e09e3020f31cd | |
parent | 40bcf5a05ba8d1aaa933e7fa5f7880793555e07b (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.py | 1 | ||||
-rw-r--r-- | tests/vnfreq/test_pkg_reqs.py | 12 | ||||
-rw-r--r-- | vnfsdk_pkgtools/vnfreq/pkg_reqs.py | 15 |
3 files changed, 28 insertions, 0 deletions
@@ -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 + |