fix functional tests suite 40/74340/5
authorguillaume.lambert <guillaume.lambert@orange.com>
Mon, 23 Jul 2018 14:42:26 +0000 (16:42 +0200)
committerguillaume.lambert <guillaume.lambert@orange.com>
Mon, 30 Jul 2018 10:08:16 +0000 (12:08 +0200)
- fix ServiceHandler Stub patch file
- fix the tox.ini configuration file so that the complete test suite can
  be performed
- comment out the portmapping and servicehandler tests 01 since there is
  no more netconf node "controller-config" automatically connected

Change-Id: I044063b6adc06a42d58101d66cc8712b44ec55b4
Co-authored-by: Martial COULIBALY <martial.coulibaly@gfi.fr>
Signed-off-by: guillaume.lambert <guillaume.lambert@orange.com>
tests/SH_stubs.diff
tests/tox.ini
tests/transportpce_tests/test_portmapping.py
tests/transportpce_tests/test_servicehandler.py

index 7240fcd0ee88d8281e7853334de6c83ab40fb8d8..f7c40796ced1d097dc18639744ec6c752391857a 100644 (file)
@@ -15,7 +15,7 @@ index 43085f6..8a9699a 100644
      <!-- Testing Dependencies -->
      <dependency>
 diff --git a/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/ModelMappingUtils.java b/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/ModelMappingUtils.java
-index 2b0ee83..2899617 100644
+index 6e385ca..d13f52b 100644
 --- a/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/ModelMappingUtils.java
 +++ b/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/ModelMappingUtils.java
 @@ -7,8 +7,6 @@
@@ -49,7 +49,7 @@ index 2b0ee83..2899617 100644
  import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev170426.routing.constraints.sp.HardConstraintsBuilder;
  import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.routing.constraints.rev170426.routing.constraints.sp.SoftConstraintsBuilder;
  import org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.service.types.rev170426.service.endpoint.sp.RxDirection;
-@@ -237,42 +227,6 @@ public final class ModelMappingUtils {
+@@ -238,42 +228,6 @@ public final class ModelMappingUtils {
                  .setSoftConstraints(serviceReconfigureInput.getSoftConstraints())
                  .setLifecycleState(LifecycleState.Planned).setServiceAEnd(aend).setServiceZEnd(zend);
          }
@@ -93,18 +93,10 @@ index 2b0ee83..2899617 100644
      }
  
 diff --git a/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/impl/ServicehandlerImpl.java b/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/impl/ServicehandlerImpl.java
-index 5dc24b3..714e2b3 100644
+index 8ad06b2..139b68d 100644
 --- a/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/impl/ServicehandlerImpl.java
 +++ b/servicehandler/src/main/java/org/opendaylight/transportpce/servicehandler/impl/ServicehandlerImpl.java
-@@ -12,7 +12,6 @@ import java.time.format.DateTimeFormatter;
- import java.util.Optional;
- import java.util.concurrent.ExecutionException;
- import java.util.concurrent.Future;
--
- import org.opendaylight.controller.md.sal.binding.api.DataBroker;
- import org.opendaylight.controller.md.sal.binding.api.ReadOnlyTransaction;
- import org.opendaylight.controller.md.sal.common.api.data.LogicalDatastoreType;
-@@ -27,6 +26,7 @@ import org.opendaylight.transportpce.servicehandler.service.ServiceDataStoreOper
+@@ -27,6 +27,7 @@ import org.opendaylight.transportpce.servicehandler.service.ServiceDataStoreOper
  import org.opendaylight.transportpce.servicehandler.validation.ServiceCreateValidation;
  import org.opendaylight.transportpce.servicehandler.validation.checks.ComplianceCheckResult;
  import org.opendaylight.transportpce.servicehandler.validation.checks.ServicehandlerCompliancyCheck;
@@ -112,7 +104,7 @@ index 5dc24b3..714e2b3 100644
  import org.opendaylight.yang.gen.v1.http.org.opendaylight.transportpce.pce.rev170426.PathComputationRequestOutput;
  import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.RpcActions;
  import org.opendaylight.yang.gen.v1.http.org.openroadm.common.service.types.rev161014.sdnc.request.header.SdncRequestHeaderBuilder;
-@@ -89,6 +89,7 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService {
+@@ -89,6 +90,7 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService {
      private ServiceDataStoreOperations serviceDataStoreOperations;
      private RendererServiceOperations rendererServiceOperations;
      private PCEServiceWrapper pceServiceWrapper;
@@ -120,7 +112,7 @@ index 5dc24b3..714e2b3 100644
  
      //TODO: remove private request fields as they are in global scope
  
-@@ -145,8 +146,12 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService {
+@@ -145,8 +147,12 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService {
  
          ServiceImplementationRequestInput serviceImplementationRequest =
                  ModelMappingUtils.createServiceImplementationRequest(input, pceResponse);
@@ -134,7 +126,7 @@ index 5dc24b3..714e2b3 100644
              .serviceImplementation(serviceImplementationRequest);
          if (ResponseCodes.RESPONSE_OK
                  .equals(serviceImplementationRequestOutput.getConfigurationResponseCommon().getResponseCode())) {
-@@ -215,9 +220,11 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService {
+@@ -215,9 +221,11 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService {
          LOG.debug("Service '{}' present in datastore !", serviceName);
          org.opendaylight.yang.gen.v1.http.org.transportpce.b.c._interface.servicepath.rev170426.ServiceDeleteInput
                  serviceDeleteInput = ModelMappingUtils.createServiceDeleteInput(input);
@@ -148,6 +140,22 @@ index 5dc24b3..714e2b3 100644
          if (!ResponseCodes.RESPONSE_OK
                  .equals(output.getConfigurationResponseCommon().getResponseCode())) {
              message = "Service delete failed!";
+@@ -320,13 +328,14 @@ public class ServicehandlerImpl implements OrgOpenroadmServiceService {
+                     .setStatusMessage("Success");
+                 return RpcResultBuilder.success(output).buildFuture();
+             }
+-        } catch (InterruptedException | ExecutionException e) {
++        } catch (InterruptedException | ExecutionException | NullPointerException e) {
+             LOG.info("Exception caught" , e);
+         }
+         ServiceRerouteOutputBuilder output = new ServiceRerouteOutputBuilder()
+             .setHardConstraints(null).setSoftConstraints(null).setStatus(RpcStatus.Failed).setStatusMessage("Failure");
+         return RpcResultBuilder.success(output).buildFuture();
++        // return null;
+     }
+     @Override
 diff --git a/servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/stub/StubRendererServiceOperations.java b/servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/stub/StubRendererServiceOperations.java
 index 6db468c..76e4a26 100644
 --- a/servicehandler/src/test/java/org/opendaylight/transportpce/servicehandler/stub/StubRendererServiceOperations.java
@@ -736,7 +744,7 @@ index 23ae976..4187f96 100644
 +    }
  }
 diff --git a/tests/stubrenderer/src/main/java/org/opendaylight/transportpce/stubrenderer/impl/StubrendererProvider.java b/tests/stubrenderer/src/main/java/org/opendaylight/transportpce/stubrenderer/impl/StubrendererProvider.java
-index 6dcdb8e..92b20f5 100644
+index 0beb087..92b20f5 100644
 --- a/tests/stubrenderer/src/main/java/org/opendaylight/transportpce/stubrenderer/impl/StubrendererProvider.java
 +++ b/tests/stubrenderer/src/main/java/org/opendaylight/transportpce/stubrenderer/impl/StubrendererProvider.java
 @@ -13,9 +13,7 @@ import org.opendaylight.controller.md.sal.binding.api.NotificationPublishService
@@ -773,19 +781,10 @@ index 6dcdb8e..92b20f5 100644
       */
      public void init() {
          LOG.info("StubrendererProvider Session Initiated");
--        final StubrendererImpl consumer = new StubrendererImpl(notificationPublishService);
--        rpcRegistration = rpcRegistry.addRpcImplementation(StubrendererService.class, consumer);
+-        final StubrendererImpl consumer = new StubrendererImpl(this.notificationPublishService);
+-        this.rpcRegistration = this.rpcRegistry.addRpcImplementation(StubrendererService.class, consumer);
 +        final StubrendererImpl consumer = new StubrendererImpl();
 +        this.rpcRegistration = this.rpcRegistry.addRpcImplementation(TransportpceServicepathService.class, consumer);
      }
  
      /**
-@@ -54,7 +48,6 @@ public class StubrendererProvider {
-      */
-     public void close() {
-         LOG.info("StubrendererProvider Closed");
--        rpcRegistration.close();
--        stubRendererlistenerRegistration.close();
-+        this.rpcRegistration.close();
-     }
- }
index a20fbdb77c7b8a7deda7ef47c71829ad17437ba1..e20c076266114636a5a8a8e4689e93cbd3ae51b8 100644 (file)
@@ -9,13 +9,13 @@ deps =
   -r{toxinidir}/test-requirements.txt
 whitelist_externals = bash
 commands =
-  {p27,portmapping,topology,pce}: bash -c "(cd .. && mvn clean install -DskipTests -Dmaven.javadoc.skip=true)"
+  {py27,portmapping,topology,pce}: bash -c "(cd .. && mvn clean install -DskipTests -Dmaven.javadoc.skip=true)"
   {py27,portmapping}: ./build.sh
   {topology,topoPortMapping}: ./buildTesttool.sh
-  {p27,servicehandler}: ./SH_func_tests.sh
-  py27: nosetests --with-xunit transportpce_tests/
-  portmapping: nosetests --with-xunit transportpce_tests/test_portmapping.py
-  topoPortMapping: nosetests --with-xunit transportpce_tests/test_topoPortMapping.py
-  topology: nosetests --with-xunit transportpce_tests/test_topology.py
-  pce: nosetests --with-xunit transportpce_tests/test_pce.py
-  servicehandler: nosetests --with-xunit transportpce_tests/test_servicehandler.py
+  #py27: nosetests --with-xunit transportpce_tests/
+  {py27,portmapping}: nosetests --with-xunit transportpce_tests/test_portmapping.py
+  {py27,topoPortMapping}: nosetests --with-xunit transportpce_tests/test_topoPortMapping.py
+  {py27,topology}: nosetests --with-xunit transportpce_tests/test_topology.py
+  {py27,pce}: nosetests --with-xunit transportpce_tests/test_pce.py
+  {py27,servicehandler}: ./SH_func_tests.sh
+  {py27,servicehandler}: nosetests --with-xunit transportpce_tests/test_servicehandler.py
index 9e30fd614ea3e482ee6010155d9fd41bb8e0dbab..aa39b9bb44db6612585c0b6aba6454ac1dad7f47 100644 (file)
@@ -75,15 +75,15 @@ class TransportPCEPortMappingTesting(unittest.TestCase):
         print ("execution of {}".format(self.id().split(".")[-1]))
         time.sleep(10)
 
-    def test_01_restconfAPI(self):
-        url = ("{}/operational/network-topology:network-topology/topology/"
-        "topology-netconf/node/controller-config".format(self.restconf_baseurl))
-        headers = {'content-type': 'application/json'}
-        response = requests.request("GET", url, headers=headers, auth=('admin', 'admin'))
-        self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
-        self.assertEqual(res['node'] [0] ['netconf-node-topology:connection-status'],
-                         'connected')
+#    def test_01_restconfAPI(self):
+#        url = ("{}/operational/network-topology:network-topology/topology/"
+#        "topology-netconf/node/controller-config".format(self.restconf_baseurl))
+#        headers = {'content-type': 'application/json'}
+#        response = requests.request("GET", url, headers=headers, auth=('admin', 'admin'))
+#        self.assertEqual(response.status_code, requests.codes.ok)
+#        res = response.json()
+#        self.assertEqual(res['node'] [0] ['netconf-node-topology:connection-status'],
+#                         'connected')
 
     def test_02_restconfAPI(self):
         url = ("{}/config/portmapping:network/nodes/controller-config"
index 9e3dffdec74c9703a2a58ca5e33d65e7fdc057ff..6faf2e3e81bc506390568e7873ca98670987c590 100644 (file)
@@ -57,16 +57,16 @@ class TransportPCEtesting(unittest.TestCase):
     def setUp(self):  # instruction executed before each test method
         print ("execution of {}".format(self.id().split(".")[-1]))
 
-    def test_01_restconfAPI(self):
-        url = ("{}/operational/network-topology:network-topology/topology/"
-        "topology-netconf/node/controller-config".format(self.restconf_baseurl))
-        headers = {'content-type': 'application/json'}
-        response = requests.request("GET", url, headers=headers, auth=('admin', 'admin'))
-        self.assertEqual(response.status_code, requests.codes.ok)
-        res = response.json()
-        self.assertEqual(res['node'] [0] ['netconf-node-topology:connection-status'],
-                         'connected')
-        time.sleep(1)
+#    def test_01_restconfAPI(self):
+#        url = ("{}/operational/network-topology:network-topology/topology/"
+#        "topology-netconf/node/controller-config".format(self.restconf_baseurl))
+#        headers = {'content-type': 'application/json'}
+#        response = requests.request("GET", url, headers=headers, auth=('admin', 'admin'))
+#        self.assertEqual(response.status_code, requests.codes.ok)
+#        res = response.json()
+#        self.assertEqual(res['node'] [0] ['netconf-node-topology:connection-status'],
+#                         'connected')
+#        time.sleep(1)
 
     # Load honeynode topology
     def test_02_load_honeynode_topology(self):