From ffb0e2648828e6c1b0ab9b84dd4efbdb403e30df Mon Sep 17 00:00:00 2001
From: Karel van Klink <karel.vanklink@geant.org>
Date: Mon, 29 Apr 2024 15:21:31 +0200
Subject: [PATCH] Speed up import unit test by mocking redundant sleeps

---
 test/cli/test_imports.py | 36 ++++++++++++++++++++++++------------
 1 file changed, 24 insertions(+), 12 deletions(-)

diff --git a/test/cli/test_imports.py b/test/cli/test_imports.py
index f25c64a9..c7331665 100644
--- a/test/cli/test_imports.py
+++ b/test/cli/test_imports.py
@@ -199,20 +199,23 @@ def opengear_data(temp_file, faker, site_subscription_factory):
 ###########
 
 
+@patch("gso.cli.imports.time.sleep")
 @patch("gso.cli.imports.start_process")
-def test_import_iptrunk_success(mock_start_process, iptrunk_data):
+def test_import_iptrunk_success(mock_start_process, mock_sleep, iptrunk_data):
     import_iptrunks(iptrunk_data()["path"])
     assert mock_start_process.call_count == 1
 
 
+@patch("gso.cli.imports.time.sleep")
 @patch("gso.cli.imports.start_process")
-def test_import_site_success(mock_start_process, site_data):
+def test_import_site_success(mock_start_process, mock_sleep, site_data):
     import_sites(site_data()["path"])
     assert mock_start_process.call_count == 1
 
 
+@patch("gso.cli.imports.time.sleep")
 @patch("gso.cli.imports.start_process")
-def test_import_site_twice(mock_start_process, site_data, site_subscription_factory, capfd):
+def test_import_site_twice(mock_start_process, mock_sleep, site_data, site_subscription_factory, capfd):
     site_import_data = site_data()
     #  Create an initial site
     site_subscription_factory(
@@ -236,8 +239,9 @@ def test_import_site_twice(mock_start_process, site_data, site_subscription_fact
     assert mock_start_process.call_count == 0
 
 
+@patch("gso.cli.imports.time.sleep")
 @patch("gso.cli.imports.start_process")
-def test_import_site_with_invalid_data(mock_start_process, site_data, capfd):
+def test_import_site_with_invalid_data(mock_start_process, mock_sleep, site_data, capfd):
     # invalid data, missing site_latitude and invalid site_longitude
     incorrect_site_data = site_data(site_latitude=None, site_longitude="broken")
 
@@ -259,14 +263,16 @@ def test_import_site_with_invalid_data(mock_start_process, site_data, capfd):
     assert mock_start_process.call_count == 0
 
 
+@patch("gso.cli.imports.time.sleep")
 @patch("gso.cli.imports.start_process")
-def test_import_router_success(mock_start_process, site_subscription_factory, router_data):
+def test_import_router_success(mock_start_process, mock_sleep, site_subscription_factory, router_data):
     import_routers(router_data()["path"])
     assert mock_start_process.call_count == 1
 
 
+@patch("gso.cli.imports.time.sleep")
 @patch("gso.cli.imports.start_process")
-def test_import_router_with_invalid_data(mock_start_process, router_data, capfd):
+def test_import_router_with_invalid_data(mock_start_process, mock_sleep, router_data, capfd):
     broken_data = router_data(hostname="", router_lo_ipv6_address="Not an IP address")
     import_routers(broken_data["path"])
 
@@ -281,14 +287,16 @@ router_lo_ipv6_address
     assert mock_start_process.call_count == 0
 
 
+@patch("gso.cli.imports.time.sleep")
 @patch("gso.cli.imports.start_process")
-def test_import_iptrunk_successful(mock_start_process, iptrunk_data):
+def test_import_iptrunk_successful(mock_start_process, mock_sleep, iptrunk_data):
     import_iptrunks(iptrunk_data()["path"])
     assert mock_start_process.call_count == 1
 
 
+@patch("gso.cli.imports.time.sleep")
 @patch("gso.cli.imports.start_process")
-def test_import_iptrunk_invalid_router_id_side_a_and_b(mock_start_process, iptrunk_data, capfd):
+def test_import_iptrunk_invalid_router_id_side_a_and_b(mock_start_process, mock_sleep, iptrunk_data, capfd):
     broken_data = iptrunk_data(side_a_node="Doesn't exist", side_b_node="Also doesn't exist")
     import_iptrunks(broken_data["path"])
 
@@ -305,8 +313,9 @@ side_b_node_id
     assert mock_start_process.call_count == 0
 
 
+@patch("gso.cli.imports.time.sleep")
 @patch("gso.cli.imports.start_process")
-def test_import_iptrunk_non_unique_members_side_a_and_b(mock_start_process, iptrunk_data, faker, capfd):
+def test_import_iptrunk_non_unique_members_side_a_and_b(mock_start_process, mock_sleep, iptrunk_data, faker, capfd):
     duplicate_interface = {"interface_name": faker.network_interface(), "interface_description": faker.sentence()}
     side_a_members = [duplicate_interface for _ in range(5)]
     side_b_members = [duplicate_interface for _ in range(5)]
@@ -328,8 +337,9 @@ def test_import_iptrunk_non_unique_members_side_a_and_b(mock_start_process, iptr
     assert mock_start_process.call_count == 0
 
 
+@patch("gso.cli.imports.time.sleep")
 @patch("gso.cli.imports.start_process")
-def test_import_iptrunk_side_a_member_count_mismatch(mock_start_process, iptrunk_data, faker, capfd):
+def test_import_iptrunk_side_a_member_count_mismatch(mock_start_process, mock_sleep, iptrunk_data, faker, capfd):
     side_a_members = [
         {"interface_name": faker.network_interface(), "interface_description": faker.sentence()} for _ in range(5)
     ]
@@ -348,14 +358,16 @@ def test_import_iptrunk_side_a_member_count_mismatch(mock_start_process, iptrunk
     assert mock_start_process.call_count == 0
 
 
+@patch("gso.cli.imports.time.sleep")
 @patch("gso.cli.imports.start_process")
-def test_import_office_router_success(mock_start_process, office_router_data):
+def test_import_office_router_success(mock_start_process, mock_sleep, office_router_data):
     import_office_routers(office_router_data()["path"])
     assert mock_start_process.call_count == 1
 
 
+@patch("gso.cli.imports.time.sleep")
 @patch("gso.cli.imports.start_process")
-def test_import_super_pop_switch_success(mock_start_process, super_pop_switch_data):
+def test_import_super_pop_switch_success(mock_start_process, mock_sleep, super_pop_switch_data):
     import_super_pop_switches(super_pop_switch_data()["path"])
     assert mock_start_process.call_count == 1
 
-- 
GitLab