From 1b8560079e444a0c98ad2083fa66615c4b6a20fd Mon Sep 17 00:00:00 2001 From: tierno Date: Thu, 7 Nov 2019 16:28:54 +0000 Subject: [PATCH] (bug 880) fixing vmware VIM plugin python3 migration issues fixing unit test and tox installation Change-Id: Id4fdfa7e0bcd6b5f7ca581ac49ada1c0cdce72af Signed-off-by: tierno --- RO-VIM-aws/requirements.txt | 3 +- RO-VIM-azure/requirements.txt | 2 +- RO-VIM-fos/requirements.txt | 3 +- RO-VIM-opennebula/requirements.txt | 3 +- RO-VIM-openstack/requirements.txt | 3 +- RO-VIM-openvim/requirements.txt | 3 +- .../tests/test_vimconn_vmware.py | 8 +-- .../tests/test_vimconn_vmware_xml_response.py | 30 ++++----- .../osm_rovim_vmware/vimconn_vmware.py | 65 +++++-------------- RO-VIM-vmware/requirements.txt | 2 +- RO-VIM-vmware/tox.ini | 2 +- RO-client/requirements.txt | 1 - 12 files changed, 45 insertions(+), 80 deletions(-) diff --git a/RO-VIM-aws/requirements.txt b/RO-VIM-aws/requirements.txt index ed019dcf..22cc86ca 100644 --- a/RO-VIM-aws/requirements.txt +++ b/RO-VIM-aws/requirements.txt @@ -17,5 +17,4 @@ PyYAML requests netaddr boto -git+https://osm.etsi.org/gerrit/osm/RO.git#egg=osm-ro - +git+https://osm.etsi.org/gerrit/osm/RO.git@py3#egg=osm-ro&subdirectory=RO diff --git a/RO-VIM-azure/requirements.txt b/RO-VIM-azure/requirements.txt index 920d03a4..d5273fd2 100644 --- a/RO-VIM-azure/requirements.txt +++ b/RO-VIM-azure/requirements.txt @@ -17,4 +17,4 @@ PyYAML requests netaddr azure - +git+https://osm.etsi.org/gerrit/osm/RO.git@py3#egg=osm-ro&subdirectory=RO diff --git a/RO-VIM-fos/requirements.txt b/RO-VIM-fos/requirements.txt index d75501b9..67025066 100644 --- a/RO-VIM-fos/requirements.txt +++ b/RO-VIM-fos/requirements.txt @@ -17,5 +17,4 @@ PyYAML requests netaddr fog05rest>=0.0.4 -git+https://osm.etsi.org/gerrit/osm/RO.git#egg=osm-ro - +git+https://osm.etsi.org/gerrit/osm/RO.git@py3#egg=osm-ro&subdirectory=RO diff --git a/RO-VIM-opennebula/requirements.txt b/RO-VIM-opennebula/requirements.txt index cd2f8032..ba6b655c 100644 --- a/RO-VIM-opennebula/requirements.txt +++ b/RO-VIM-opennebula/requirements.txt @@ -20,5 +20,4 @@ netaddr untangle pyone git+https://github.com/python-oca/python-oca#egg=oca -git+https://osm.etsi.org/gerrit/osm/RO.git#egg=osm-ro - +git+https://osm.etsi.org/gerrit/osm/RO.git@py3#egg=osm-ro&subdirectory=RO diff --git a/RO-VIM-openstack/requirements.txt b/RO-VIM-openstack/requirements.txt index e0cb62f5..3d646ac6 100644 --- a/RO-VIM-openstack/requirements.txt +++ b/RO-VIM-openstack/requirements.txt @@ -23,5 +23,4 @@ netaddr #TODO py3 python-keystoneclient #TODO py3 python-glanceclient #TODO py3 python-cinderclient -git+https://osm.etsi.org/gerrit/osm/RO.git#egg=osm-ro - +git+https://osm.etsi.org/gerrit/osm/RO.git@py3#egg=osm-ro&subdirectory=RO diff --git a/RO-VIM-openvim/requirements.txt b/RO-VIM-openvim/requirements.txt index f9797f89..7366fafb 100644 --- a/RO-VIM-openvim/requirements.txt +++ b/RO-VIM-openvim/requirements.txt @@ -16,5 +16,4 @@ PyYAML requests netaddr -git+https://osm.etsi.org/gerrit/osm/RO.git#egg=osm-ro - +git+https://osm.etsi.org/gerrit/osm/RO.git@py3#egg=osm-ro&subdirectory=RO diff --git a/RO-VIM-vmware/osm_rovim_vmware/tests/test_vimconn_vmware.py b/RO-VIM-vmware/osm_rovim_vmware/tests/test_vimconn_vmware.py index f2ab68c9..2075ac69 100755 --- a/RO-VIM-vmware/osm_rovim_vmware/tests/test_vimconn_vmware.py +++ b/RO-VIM-vmware/osm_rovim_vmware/tests/test_vimconn_vmware.py @@ -22,8 +22,8 @@ ## -from vimconn_vmware import vimconnector -from osm_ro.vimconn import vimconnUnexpectedResponse,vimconnNotFoundException,vimconnException +from osm_rovim_vmware.vimconn_vmware import vimconnector +from osm_ro.vimconn import vimconnUnexpectedResponse, vimconnNotFoundException,vimconnException from pyvcloud.vcd.client import Client from lxml import etree as lxmlElementTree from pyvcloud.vcd.org import Org @@ -31,7 +31,7 @@ from pyvcloud.vcd.vdc import VDC from pyvcloud.vcd.vapp import VApp import os import unittest -import mock +from unittest import mock import test_vimconn_vmware_xml_response as xml_resp from os import path @@ -177,7 +177,7 @@ class TestVimconn_VMware(unittest.TestCase): result = self.vim.new_network(net_name, net_type) # assert verified expected and return result from VIM connector - self.assertEqual(result, 'df1956fa-da04-419e-a6a2-427b6f83788f') + self.assertEqual(result, ('df1956fa-da04-419e-a6a2-427b6f83788f', {})) @mock.patch.object(vimconnector, 'create_network_rest') def test_new_network_not_created(self, create_network_rest): diff --git a/RO-VIM-vmware/osm_rovim_vmware/tests/test_vimconn_vmware_xml_response.py b/RO-VIM-vmware/osm_rovim_vmware/tests/test_vimconn_vmware_xml_response.py index 968cb1f2..334e4234 100644 --- a/RO-VIM-vmware/osm_rovim_vmware/tests/test_vimconn_vmware_xml_response.py +++ b/RO-VIM-vmware/osm_rovim_vmware/tests/test_vimconn_vmware_xml_response.py @@ -21,7 +21,7 @@ # contact: osslegalrouting@vmware.com ## -vdc_xml_response = """ +vdc_xml_response = """ @@ -98,7 +98,7 @@ vdc_xml_response = """ 1000 """ -network_xml_response = """ +network_xml_response = """ @@ -127,7 +127,7 @@ network_xml_response = """ false """ -delete_network_xml_response = """ +delete_network_xml_response = """ @@ -154,7 +154,7 @@ delete_network_xml_response = """ false """ -create_network_xml_response = """ +create_network_xml_response = """ @@ -189,7 +189,7 @@ create_network_xml_response = """ false """ -catalog1_xml_response = """ +catalog1_xml_response = """ @@ -204,7 +204,7 @@ catalog1_xml_response = """ false2017-03-17T03:17:11.293-07:005 """ -catalog2_xml_response = """ +catalog2_xml_response = """ @@ -219,7 +219,7 @@ catalog2_xml_response = """ false2017-03-08T02:06:07.003-08:005 """ -vapp_xml_response = """ +vapp_xml_response = """ @@ -292,7 +292,7 @@ vapp_xml_response = """ Specifies the operating system installedUbuntu Linux (64-bit)Specifies the available VM network connections0 0 12.19.21.20 true 00:50:56:01:12:a2 DHCPSpecifies Guest OS Customization Settingstruefalse47d12505-5968-4e16-95a7-18743edb0c8bfalsefalsefalsetruefalse0falseUbuntu-vm-001Specifies Runtime infoSnapshot information section2017-09-21T01:15:53.863-07:00Ubuntu-vm VMware ESXi 6.0.0 VMware, Inc. en falsefalse""" -poweroff_task_xml = """ +poweroff_task_xml = """ @@ -376,7 +376,7 @@ org_xml_response = """\n +delete_catalog_xml_response = """\n @@ -398,7 +398,7 @@ delete_catalog_xml_response = """\n2 """ -delete_catalog_item_xml_response = """ +delete_catalog_item_xml_response = """ @@ -431,7 +431,7 @@ status_task_xml = """ +vm_xml_response = """ @@ -626,12 +626,12 @@ vm_xml_response = """ """ -delete_tenant = """\n\n \n \n \n resgroup-9025\n RESOURCE_POOL\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n opnemano\n AllocationVApp\n \n \n MHz\n 0\n 2048\n 0\n 0\n 0\n \n \n MB\n 0\n 2048\n 0\n 0\n 0\n \n \n \n \n \n \n vmx-04\n vmx-07\n vmx-08\n vmx-09\n vmx-10\n vmx-11\n \n \n 100\n 100\n 0\n 50\n true\n \n \n \n 1000\n\n""" +delete_tenant = """\n\n \n \n \n resgroup-9025\n RESOURCE_POOL\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n opnemano\n AllocationVApp\n \n \n MHz\n 0\n 2048\n 0\n 0\n 0\n \n \n MB\n 0\n 2048\n 0\n 0\n 0\n \n \n \n \n \n \n vmx-04\n vmx-07\n vmx-08\n vmx-09\n vmx-10\n vmx-11\n \n \n 100\n 100\n 0\n 50\n true\n \n \n \n 1000\n\n""" catalog_list_xml = """2017-10-14T23:52:58.097-07:001""" -catalogItem_xml = """\n\n \n \n \n \n \n \n 2017-10-14T23:52:58.097-07:00\n 1\n""" +catalogItem_xml = """\n\n \n \n \n \n \n \n 2017-10-14T23:52:58.097-07:00\n 1\n""" -vapp_template_xml = """\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Specifies the available VM network connections\n \n \n Specifies Guest OS Customization Settings\n true\n false\n bd3fe155-3fb2-40a8-af48-89c276983166\n false\n false\n false\n true\n false\n 0\n false\n Ubuntunonic-001\n \n \n Virtual hardware requirements\n \n Virtual Hardware Family\n 0\n Ubuntu_no_nic\n vmx-11\n \n \n 0\n SCSI Controller\n SCSI Controller 0\n 1\n lsilogic\n 6\n \n \n 0\n Hard disk\n Hard disk 1\n \n 2000\n 1\n 17\n 5368709120\n byte\n \n \n 1\n IDE Controller\n IDE Controller 1\n 2\n 5\n \n \n 0\n false\n CD/DVD Drive\n CD/DVD Drive 1\n \n 3002\n 2\n 15\n \n \n 0\n false\n Floppy Drive\n Floppy Drive 1\n \n 8000\n 14\n \n \n hertz * 10^6\n Number of Virtual CPUs\n 1 virtual CPU(s)\n 3\n 0\n 3\n 1\n 0\n 1\n \n \n byte * 2^20\n Memory Size\n 1024 MB of memory\n 4\n 0\n 4\n 1024\n 0\n \n \n \n \n \n \n \n \n Ubuntu_no_nic\n 2017-10-14T23:52:58.790-07:00\n \n \n \n The list of logical networks\n \n \n The configuration parameters for logical networks\n \n \n Lease settings section\n \n 7776000\n 2018-08-22T02:41:54.567-07:00\n \n \n VApp template customization section\n true\n \n 2017-10-14T23:52:58.790-07:00\n\n""" +vapp_template_xml = """\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Specifies the available VM network connections\n \n \n Specifies Guest OS Customization Settings\n true\n false\n bd3fe155-3fb2-40a8-af48-89c276983166\n false\n false\n false\n true\n false\n 0\n false\n Ubuntunonic-001\n \n \n Virtual hardware requirements\n \n Virtual Hardware Family\n 0\n Ubuntu_no_nic\n vmx-11\n \n \n 0\n SCSI Controller\n SCSI Controller 0\n 1\n lsilogic\n 6\n \n \n 0\n Hard disk\n Hard disk 1\n \n 2000\n 1\n 17\n 5368709120\n byte\n \n \n 1\n IDE Controller\n IDE Controller 1\n 2\n 5\n \n \n 0\n false\n CD/DVD Drive\n CD/DVD Drive 1\n \n 3002\n 2\n 15\n \n \n 0\n false\n Floppy Drive\n Floppy Drive 1\n \n 8000\n 14\n \n \n hertz * 10^6\n Number of Virtual CPUs\n 1 virtual CPU(s)\n 3\n 0\n 3\n 1\n 0\n 1\n \n \n byte * 2^20\n Memory Size\n 1024 MB of memory\n 4\n 0\n 4\n 1024\n 0\n \n \n \n \n \n \n \n \n Ubuntu_no_nic\n 2017-10-14T23:52:58.790-07:00\n \n \n \n The list of logical networks\n \n \n The configuration parameters for logical networks\n \n \n Lease settings section\n \n 7776000\n 2018-08-22T02:41:54.567-07:00\n \n \n VApp template customization section\n true\n \n 2017-10-14T23:52:58.790-07:00\n\n""" -deployed_vapp_xml = """\n\n \n \n \n \n \n \n Vapp instantiation\n \n \n \n \n \n 1\n
\n \n \n 2018-06-02T01:14:32.870-07:00\n \n \n \n false\n""" +deployed_vapp_xml = """\n\n \n \n \n \n \n \n Vapp instantiation\n \n \n \n \n \n 1\n
\n \n \n 2018-06-02T01:14:32.870-07:00\n \n \n \n false\n""" diff --git a/RO-VIM-vmware/osm_rovim_vmware/vimconn_vmware.py b/RO-VIM-vmware/osm_rovim_vmware/vimconn_vmware.py index e37c4196..db121e88 100644 --- a/RO-VIM-vmware/osm_rovim_vmware/vimconn_vmware.py +++ b/RO-VIM-vmware/osm_rovim_vmware/vimconn_vmware.py @@ -57,7 +57,7 @@ import time import uuid # import httplib #For python3 -#import http.client +#import http.client # TODO py3 check import hashlib import socket import struct @@ -446,9 +446,7 @@ class vimconnector(vimconn.vimconnector): raise vimconn.vimconnNotFoundException("Fail to get tenant {}".format(tenant_id)) lxmlroot_respond = lxmlElementTree.fromstring(response.content) - namespaces = {prefix:uri for prefix,uri in lxmlroot_respond.nsmap.items() if prefix} - #For python3 - #namespaces = {prefix:uri for prefix,uri in lxmlroot_respond.nsmap.items() if prefix} + namespaces = {prefix: uri for prefix, uri in lxmlroot_respond.nsmap.items() if prefix} namespaces["xmlns"]= "http://www.vmware.com/vcloud/v1.5" vdc_remove_href = lxmlroot_respond.find("xmlns:Link[@rel='remove']",namespaces).attrib['href'] vdc_remove_href = vdc_remove_href + '?recursive=true&force=true' @@ -976,9 +974,7 @@ class vimconnector(vimconn.vimconnector): raise vimconn.vimconnNotFoundException("Fail to get image {}".format(image_id)) lxmlroot_respond = lxmlElementTree.fromstring(response.content) - namespaces = {prefix:uri for prefix,uri in lxmlroot_respond.nsmap.items() if prefix} - #For python3 - #namespaces = {prefix:uri for prefix,uri in lxmlroot_respond.nsmap.items() if prefix} + namespaces = {prefix: uri for prefix, uri in lxmlroot_respond.nsmap.items() if prefix} namespaces["xmlns"]= "http://www.vmware.com/vcloud/v1.5" catalogItems_section = lxmlroot_respond.find("xmlns:CatalogItems",namespaces) @@ -999,9 +995,7 @@ class vimconnector(vimconn.vimconnector): image_id)) lxmlroot_respond = lxmlElementTree.fromstring(response.content) - namespaces = {prefix:uri for prefix,uri in lxmlroot_respond.nsmap.items() if prefix} - #For python3 - #namespaces = {prefix:uri for prefix,uri in lxmlroot_respond.nsmap.items() if prefix} + namespaces = {prefix: uri for prefix, uri in lxmlroot_respond.nsmap.items() if prefix} namespaces["xmlns"]= "http://www.vmware.com/vcloud/v1.5" catalogitem_remove_href = lxmlroot_respond.find("xmlns:Link[@rel='remove']",namespaces).attrib['href'] @@ -1409,11 +1403,8 @@ class vimconnector(vimconn.vimconnector): return None # UUID has following format https://host/api/vApp/vapp-30da58a3-e7c7-4d09-8f68-d4c8201169cf try: - refs = filter(lambda ref: ref.name == vapp_name and ref.type_ == 'application/vnd.vmware.vcloud.vApp+xml', - vdc.ResourceEntities.ResourceEntity) - #For python3 - #refs = [ref for ref in vdc.ResourceEntities.ResourceEntity\ - # if ref.name == vapp_name and ref.type_ == 'application/vnd.vmware.vcloud.vApp+xml'] + refs = [ref for ref in vdc.ResourceEntities.ResourceEntity \ + if ref.name == vapp_name and ref.type_ == 'application/vnd.vmware.vcloud.vApp+xml'] if len(refs) == 1: return refs[0].href.split("vapp")[1][1:] except Exception as e: @@ -1435,12 +1426,8 @@ class vimconnector(vimconn.vimconnector): :param vapp_uuid: """ try: - refs = filter(lambda ref: - ref.type_ == 'application/vnd.vmware.vcloud.vApp+xml', - vdc.ResourceEntities.ResourceEntity) - #For python3 - #refs = [ref for ref in vdc.ResourceEntities.ResourceEntity\ - # if ref.type_ == 'application/vnd.vmware.vcloud.vApp+xml'] + refs = [ref for ref in vdc.ResourceEntities.ResourceEntity\ + if ref.type_ == 'application/vnd.vmware.vcloud.vApp+xml'] for ref in refs: vappid = ref.href.split("vapp")[1][1:] # find vapp with respected vapp uuid @@ -1926,9 +1913,7 @@ class vimconnector(vimconn.vimconnector): if primary_netname is not None: self.logger.debug("new_vminstance(): Filtering by net name {}".format(interface_net_name)) - nets = filter(lambda n: n.get('name') == interface_net_name, self.get_network_list()) - #For python3 - #nets = [n for n in self.get_network_list() if n.get('name') == interface_net_name] + nets = [n for n in self.get_network_list() if n.get('name') == interface_net_name] if len(nets) == 1: self.logger.info("new_vminstance(): Found requested network: {}".format(nets[0].get('name'))) @@ -3062,7 +3047,6 @@ class vimconnector(vimconn.vimconnector): except XmlElementTree.ParseError as Err: self.logger.debug("ParseError in response from NSX Manager {}".format(Err.message), exc_info=True) - def action_vminstance(self, vm__vim_uuid=None, action_dict=None, created_items={}): """Send and action over a VM instance from VIM Returns the vm_id if the action was successfully sent to the VIM""" @@ -3073,7 +3057,7 @@ class vimconnector(vimconn.vimconnector): org, vdc = self.get_vdc_details() if vdc is None: - raise vimconn.vimconnException("Failed to get a reference of VDC for a tenant {}".format(self.tenant_name)) + raise vimconn.vimconnException("Failed to get a reference of VDC for a tenant {}".format(self.tenant_name)) vapp_name = self.get_namebyvappid(vm__vim_uuid) if vapp_name is None: @@ -3107,9 +3091,7 @@ class vimconnector(vimconn.vimconnector): result = self.client.get_task_monitor().wait_for_success(task=poweron_task) self.instance_actions_result("resume", result, vapp_name) elif "shutoff" in action_dict or "shutdown" in action_dict: - action_name , value = action_dict.items()[0] - #For python3 - #action_name , value = list(action_dict.items())[0] + action_name , value = list(action_dict.items())[0] self.logger.info("action_vminstance: {} vApp: {}".format(action_name, vapp_name)) shutdown_task = vapp.shutdown() result = self.client.get_task_monitor().wait_for_success(task=shutdown_task) @@ -3294,9 +3276,7 @@ class vimconnector(vimconn.vimconnector): org_dict = self.get_org(self.org_uuid) if org_dict and 'networks' in org_dict: org_network_dict = org_dict['networks'] - for net_uuid,net_name in org_network_dict.items(): - #For python3 - #for net_uuid,net_name in org_network_dict.items(): + for net_uuid, net_name in org_network_dict.items(): if net_name == network_name: return net_uuid @@ -3451,11 +3431,8 @@ class vimconnector(vimconn.vimconnector): vm_list_rest_call = ''.join(url_list) if not (not vca.vcloud_session or not vca.vcloud_session.organization): - refs = filter(lambda ref: ref.name == vdc_name and ref.type_ == 'application/vnd.vmware.vcloud.vdc+xml', - vca.vcloud_session.organization.Link) - #For python3 - #refs = [ref for ref in vca.vcloud_session.organization.Link if ref.name == vdc_name and\ - # ref.type_ == 'application/vnd.vmware.vcloud.vdc+xml'] + refs = [ref for ref in vca.vcloud_session.organization.Link if ref.name == vdc_name and + ref.type_ == 'application/vnd.vmware.vcloud.vdc+xml'] if len(refs) == 1: response = Http.get(url=vm_list_rest_call, headers=vca.vcloud_session.get_vcloud_headers(), @@ -4399,9 +4376,7 @@ class vimconnector(vimconn.vimconnector): return None try: lxmlroot_respond = lxmlElementTree.fromstring(response.content) - namespaces = {prefix:uri for prefix,uri in lxmlroot_respond.nsmap.items() if prefix} - #For python3 - #namespaces = {prefix:uri for prefix,uri in lxmlroot_respond.nsmap.items() if prefix} + namespaces = {prefix: uri for prefix, uri in lxmlroot_respond.nsmap.items() if prefix} namespaces["xmlns"]= "http://www.vmware.com/vcloud/v1.5" for item in lxmlroot_respond.iterfind('xmlns:Item',namespaces): @@ -5538,9 +5513,7 @@ class vimconnector(vimconn.vimconnector): try: #Find but type & max of instance IDs assigned to disks lxmlroot_respond = lxmlElementTree.fromstring(response.content) - namespaces = {prefix:uri for prefix,uri in lxmlroot_respond.nsmap.items() if prefix} - #For python3 - #namespaces = {prefix:uri for prefix,uri in lxmlroot_respond.nsmap.items() if prefix} + namespaces = {prefix: uri for prefix, uri in lxmlroot_respond.nsmap.items() if prefix} namespaces["xmlns"]= "http://www.vmware.com/vcloud/v1.5" instance_id = 0 for item in lxmlroot_respond.iterfind('xmlns:Item',namespaces): @@ -6278,14 +6251,12 @@ class vimconnector(vimconn.vimconnector): used_ids = list(self.persistent_info["used_vlanIDs"].values()) for vlanID_range in self.config.get('vlanID_range'): - start_vlanid , end_vlanid = vlanID_range.split("-") + start_vlanid, end_vlanid = vlanID_range.split("-") if start_vlanid > end_vlanid: raise vimconn.vimconnConflictException("Invalid vlan ID range {}".format( vlanID_range)) - for id in xrange(int(start_vlanid), int(end_vlanid) + 1): - #For python3 - #for id in range(int(start_vlanid), int(end_vlanid) + 1): + for id in range(int(start_vlanid), int(end_vlanid) + 1): if id not in used_ids: vlan_id = id self.persistent_info["used_vlanIDs"][network_name] = vlan_id diff --git a/RO-VIM-vmware/requirements.txt b/RO-VIM-vmware/requirements.txt index af74bad1..6886f86b 100644 --- a/RO-VIM-vmware/requirements.txt +++ b/RO-VIM-vmware/requirements.txt @@ -22,4 +22,4 @@ pyvmomi progressbar prettytable # TODO py3 genisoimage -git+https://osm.etsi.org/gerrit/osm/RO.git#egg=osm-ro +git+https://osm.etsi.org/gerrit/osm/RO.git@py3#egg=osm-ro&subdirectory=RO diff --git a/RO-VIM-vmware/tox.ini b/RO-VIM-vmware/tox.ini index 448b263e..efe01ef2 100644 --- a/RO-VIM-vmware/tox.ini +++ b/RO-VIM-vmware/tox.ini @@ -32,7 +32,7 @@ commands = flake8 osm_rovim_vmware --max-line-length 120 \ [testenv:unittest] basepython = python3 -commands = python3 -m unittest osm_rovim_vmware.tests +commands = python3 -m unittest discover -v osm_rovim_vmware/tests [testenv:build] basepython = python3 diff --git a/RO-client/requirements.txt b/RO-client/requirements.txt index cd8e0484..fd9682c1 100644 --- a/RO-client/requirements.txt +++ b/RO-client/requirements.txt @@ -15,4 +15,3 @@ argcomplete requests==2.* PyYAML - -- 2.17.1