blob: 2d090b86577adeb64d6b847eb736a6398aa868ef [file] [log] [blame]
# Copyright 2020 ETSI
#
# 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 osm_im.vnfd as vnfd_catalog
from pyangbind.lib.serialise import pybindJSONDecoder
import unittest
import yaml
VNFD_YAML = """
vnfd-catalog:
vnfd:
- id: cirros_vnfd
name: cirros_vnf
short-name: cirros_vnf
description: Simple VNF example with a cirros
vendor: OSM
version: '1.0'
# Place the logo as png in icons directory and provide the name here
logo: cirros-64.png
# Management interface
mgmt-interface:
cp: eth0
# Atleast one VDU need to be specified
vdu:
- id: cirros_vnfd-VM
name: cirros_vnfd-VM
description: cirros_vnfd-VM
count: 1
# Flavour of the VM to be instantiated for the VDU
# flavor below can fit into m1.micro
vm-flavor:
vcpu-count: 1
memory-mb: 256
storage-gb: 2
# Image/checksum or image including the full path
image: 'cirros034'
#checksum:
interface:
# Specify the external interfaces
# There can be multiple interfaces defined
- name: eth0
type: EXTERNAL
virtual-interface:
type: PARAVIRT
bandwidth: '0'
vpci: 0000:00:0a.0
external-connection-point-ref: eth0
connection-point:
- name: eth0
type: VPORT
"""
class PythonTest(unittest.TestCase):
def test_python_compatibility(self):
"""A simple test to verify Python compatibility.
This test exercises basic IM interoperability with supported versions
of Python in order to verify the IM libraries compatibility.
As of 30 Nov 2017, the IM library fails with Python3. This invokes that
failing code so that it can be repeatably tested:
ValueError: '_pybind_generated_by' in __slots__ conflicts with class variable
"""
try:
data = yaml.safe_load(VNFD_YAML)
myvnfd = vnfd_catalog.vnfd()
pybindJSONDecoder.load_ietf_json(data, None, None, obj=myvnfd)
except ValueError:
assert False