diff --git a/test/mocks/mass-pnf-sim/mass-pnf-sim.py b/test/mocks/mass-pnf-sim/mass-pnf-sim.py
index 353631d..98b66f2 100755
--- a/test/mocks/mass-pnf-sim/mass-pnf-sim.py
+++ b/test/mocks/mass-pnf-sim/mass-pnf-sim.py
@@ -76,9 +76,9 @@
     start_port=2000
     ftps_pasv_port_start=8000
     ftps_pasv_port_num_of_ports=10
-    
+
     ftps_pasv_port_end=ftps_pasv_port_start + ftps_pasv_port_num_of_ports
-    
+
 
     for i in range(int(args.bootstrap)):
         print("PNF simulator instance: " + str(i) + ".")
@@ -97,13 +97,13 @@
         IpFileServer = args.ipfileserver
         TypeFileServer = args.typefileserver
 
-        
+
         PortSftp=start_port +1
-        PortFtps=start_port +2 
+        PortFtps=start_port +2
         start_port +=2
         UrlFtps = str(ipaddress.ip_address(args.ipstart) + int(3 + (i * 16)))
         print("\tUrl Ftps: " + str(UrlFtps))
- 
+
         UrlSftp = str(ipaddress.ip_address(args.ipstart) + int(4 + (i * 16)))
         print("\tUrl Sftp: " + str(UrlSftp))
 
@@ -138,7 +138,7 @@
             composercmd,
             shell=True)
         print('Cloning:', completed.stdout)
-        
+
         ftps_pasv_port_start += ftps_pasv_port_num_of_ports + 1
         ftps_pasv_port_end += ftps_pasv_port_num_of_ports +1
 
@@ -202,23 +202,20 @@
             "; ./simulator.sh trigger-simulator",
             shell=True)
         print('Status:', completed.stdout)
-        
+
 if args.triggerstart and args.triggerend:
     print("Triggering VES sending by a range of simulators:")
-    
+
     for i in range(int(args.triggerstart), int(args.triggerend)+1):
         foldername = "pnf-sim-lw-" + str(i)
         print("Instance being processed:" + str(i))
-         
+
         completed = subprocess.run(
             'cd ' +
             foldername +
             "; ./simulator.sh trigger-simulator",
             shell=True)
         print('Status:', completed.stdout)
-         
-        
-
 else:
     print("No instruction was defined")
     sys.exit()
diff --git a/test/mocks/pnfsimulator/netconfsimulator/netconf/__init__.py b/test/mocks/pnfsimulator/netconfsimulator/netconf/__init__.py
index 0f144c2..aa8b4f9 100644
--- a/test/mocks/pnfsimulator/netconfsimulator/netconf/__init__.py
+++ b/test/mocks/pnfsimulator/netconfsimulator/netconf/__init__.py
@@ -7,9 +7,9 @@
 # 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.
diff --git a/test/mocks/pnfsimulator/netconfsimulator/netconf/set-up-xmls.py b/test/mocks/pnfsimulator/netconfsimulator/netconf/set-up-xmls.py
index cdc4e4f..2ec1cf2 100755
--- a/test/mocks/pnfsimulator/netconfsimulator/netconf/set-up-xmls.py
+++ b/test/mocks/pnfsimulator/netconfsimulator/netconf/set-up-xmls.py
@@ -9,9 +9,9 @@
 # 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.
@@ -29,8 +29,8 @@
 logger = logging.getLogger()
 logger.setLevel(logging.INFO)
 
-# Placeholders definition - this needs to match placeholders in 
-# load_server_certs_xml_file and tls_listen_xml_file 
+# Placeholders definition - this needs to match placeholders in
+# load_server_certs_xml_file and tls_listen_xml_file
 SERVER_KEY_NAME = "SERVER_KEY_NAME"
 SERVER_CERT_NAME = "SERVER_CERT_NAME"
 SERVER_CERTIFICATE_HERE = "SERVER_CERTIFICATE_HERE"
diff --git a/test/mocks/pnfsimulator/netconfsimulator/netconf/test_yang_loader_server.py b/test/mocks/pnfsimulator/netconfsimulator/netconf/test_yang_loader_server.py
index c5bd08d..a222087 100644
--- a/test/mocks/pnfsimulator/netconfsimulator/netconf/test_yang_loader_server.py
+++ b/test/mocks/pnfsimulator/netconfsimulator/netconf/test_yang_loader_server.py
@@ -7,9 +7,9 @@
 # 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.
diff --git a/test/mocks/pnfsimulator/netconfsimulator/netconf/yang_loader_server.py b/test/mocks/pnfsimulator/netconfsimulator/netconf/yang_loader_server.py
index f414467..27d46ce 100644
--- a/test/mocks/pnfsimulator/netconfsimulator/netconf/yang_loader_server.py
+++ b/test/mocks/pnfsimulator/netconfsimulator/netconf/yang_loader_server.py
@@ -7,9 +7,9 @@
 # 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.
