diff --git a/fixtures/base.py b/fixtures/base.py
index 83d0be6..076fa3c 100644
--- a/fixtures/base.py
+++ b/fixtures/base.py
@@ -78,6 +78,10 @@
     )
     os_resource['net1'] = os_actions.create_network_resources()
     os_resource['ext_net'] = os_actions.get_external_network()
+    if not os_resource['ext_net']:
+        pytest.skip("External network not found, skipping tests. Please set "
+                    "the existing floating network at the 'external_network' "
+                    "option in the global_config.yaml file.")
     adm_project = os_actions.get_project_by_name("admin")
     os_resource['router'] = os_actions.create_router(
         os_resource['ext_net'], adm_project.id)
@@ -116,8 +120,6 @@
     openstack_clients.compute.keypairs.delete(os_resource['keypair'].name)
     if flavor_is_created:
         openstack_clients.compute.flavors.delete(os_resource['flavor_id'])
-    if os_actions.create_fake_ext_net:
-        openstack_clients.network.delete_network(os_resource['ext_net']['id'])
 
 
 @pytest.fixture(scope='session')
@@ -180,6 +182,10 @@
     os_resource_alt_project['net1'] = alt_os_actions.create_network_resources(
         project=alt_project.name, cidr='10.3.7.0/24')
     os_resource_alt_project['ext_net'] = alt_os_actions.get_external_network()
+    if not os_resource_alt_project['ext_net']:
+        pytest.skip("External network not found, skipping tests. Please set "
+                    "the existing floating network at the 'external_network' "
+                    "option in the global_config.yaml file.")
 
     os_resource_alt_project['router'] = alt_os_actions.create_router(
         os_resource_alt_project['ext_net'], alt_project.id)
@@ -213,9 +219,6 @@
     if flavor_is_created:
         openstack_alt_clients.compute.flavors.delete(
             os_resource_alt_project['flavor_id'])
-    if alt_os_actions.create_fake_ext_net:
-        openstack_alt_clients.network.delete_network(
-            os_resource_alt_project['ext_net']['id'])
 
     if alt_os_actions.is_project_empty(alt_project.id):
         openstack_alt_clients.auth.projects.delete(alt_project.id)
