From b417bbf9591366ba4803c3b66c40aa07567fd8cc Mon Sep 17 00:00:00 2001 From: "ying.yunlong" Date: Mon, 12 Feb 2018 13:46:51 +0800 Subject: [PATCH] Add vfc-catalog parser tests Change-Id: I55c9de74cdadb5f9cbb58f728905bc8de7cc5519 Issue-ID: VFC-758 Signed-off-by: ying.yunlong --- .../testdata/resource-ZteMmeFixVl-csar.csar | Bin 0 -> 35038 bytes catalog/pub/utils/toscaparser/tests.py | 32 +++++++++++++++++++++ requirements.txt | 2 +- 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 catalog/pub/utils/toscaparser/testdata/resource-ZteMmeFixVl-csar.csar create mode 100644 catalog/pub/utils/toscaparser/tests.py diff --git a/catalog/pub/utils/toscaparser/testdata/resource-ZteMmeFixVl-csar.csar b/catalog/pub/utils/toscaparser/testdata/resource-ZteMmeFixVl-csar.csar new file mode 100644 index 0000000000000000000000000000000000000000..7e58ef400f5817e98f9ecb75f6310747de01a382 GIT binary patch literal 35038 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%0AHyDvHZ*lwKX> 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 QhZ|%7>(3)i|KDf-51Wk|O8@`> literal 0 HcmV?d00001 diff --git a/catalog/pub/utils/toscaparser/tests.py b/catalog/pub/utils/toscaparser/tests.py new file mode 100644 index 00000000..a37ce686 --- /dev/null +++ b/catalog/pub/utils/toscaparser/tests.py @@ -0,0 +1,32 @@ +# Copyright 2018 ZTE Corporation. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +import os + +from django.test import TestCase + +from catalog.pub.utils.toscaparser import parse_vnfd + + +class TestNsPackage(TestCase): + def setUp(self): + pass + + def tearDown(self): + pass + + def test_nsd_parse(self): + csar_path = os.path.dirname(os.path.abspath(__file__)) + "/testdata/resource-ZteMmeFixVl-csar.csar" + input_parameters = [{"value": "111111", "key": "sdncontroller"}] + vnfd_json = parse_vnfd(csar_path, input_parameters) + print vnfd_json diff --git a/requirements.txt b/requirements.txt index edcc7419..8442b511 100644 --- a/requirements.txt +++ b/requirements.txt @@ -23,7 +23,7 @@ unittest_xml_reporting==1.12.0 # for parser cryptography==2.0.3 paramiko==2.0.2 -nfv-toscaparser>=0.5.0 +nfv-toscaparser==0.5.1.dev25 # for auto swagger drf-yasg>=1.2.2 -- 2.16.6