From 7debff083837e36ccba3f54fa2962f0d1261f438 Mon Sep 17 00:00:00 2001 From: Lianhao Lu Date: Thu, 30 Aug 2018 11:04:38 +0800 Subject: 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 --- setup.py | 1 + tests/vnfreq/test_pkg_reqs.py | 12 ++++++++++++ vnfsdk_pkgtools/vnfreq/pkg_reqs.py | 15 +++++++++++++++ 3 files changed, 28 insertions(+) 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 + -- cgit 1.2.3-korg