| 1 |  |  | """Module to test LivenessController.""" | 
            
                                                                                                            
                            
            
                                    
            
            
                | 2 |  |  | # pylint: disable=invalid-name,relative-beyond-top-level | 
            
                                                                                                            
                            
            
                                    
            
            
                | 3 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 4 | 1 |  | from unittest.mock import MagicMock | 
            
                                                                                                            
                            
            
                                    
            
            
                | 5 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 6 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 7 | 1 |  | class TestLivenessController:  # pylint: disable=too-many-public-methods | 
            
                                                                                                            
                            
            
                                    
            
            
                | 8 |  |  |     """Test the Main class.""" | 
            
                                                                                                            
                            
            
                                    
            
            
                | 9 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 10 | 1 |  |     def test_boostrap_indexes(self, liveness_controller) -> None: | 
            
                                                                                                            
                            
            
                                    
            
            
                | 11 |  |  |         """Test_boostrap_indexes.""" | 
            
                                                                                                            
                            
            
                                    
            
            
                | 12 | 1 |  |         liveness_controller.bootstrap_indexes() | 
            
                                                                                                            
                            
            
                                    
            
            
                | 13 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 14 | 1 |  |         expected_indexes = [("liveness", [("enabled", 1)])] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 15 | 1 |  |         mock = liveness_controller.mongo.bootstrap_index | 
            
                                                                                                            
                            
            
                                    
            
            
                | 16 | 1 |  |         assert mock.call_count == len(expected_indexes) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 17 | 1 |  |         indexes = [(v[0][0], v[0][1]) for v in mock.call_args_list] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 18 | 1 |  |         assert expected_indexes == indexes | 
            
                                                                                                            
                            
            
                                    
            
            
                | 19 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 20 | 1 |  |     def test_get_enabled_interfaces(self, liveness_controller) -> None: | 
            
                                                                                                            
                            
            
                                    
            
            
                | 21 |  |  |         """Test get_enabled_interfaces.""" | 
            
                                                                                                            
                            
            
                                    
            
            
                | 22 | 1 |  |         liveness_controller.get_enabled_interfaces() | 
            
                                                                                                            
                            
            
                                    
            
            
                | 23 | 1 |  |         assert liveness_controller.db.liveness.aggregate.call_count == 1 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 24 | 1 |  |         call_args = liveness_controller.db.liveness.aggregate.call_args | 
            
                                                                                                            
                            
            
                                    
            
            
                | 25 | 1 |  |         assert call_args[0][0] == [ | 
            
                                                                                                            
                            
            
                                    
            
            
                | 26 |  |  |             {"$match": {"enabled": True}}, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 27 |  |  |             {"$sort": {"_id": 1}}, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 28 |  |  |             {"$project": {"_id": 0}}, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 29 |  |  |         ] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 30 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 31 | 1 |  |     def test_upsert_interfaces(self, liveness_controller) -> None: | 
            
                                                                                                            
                            
            
                                    
            
            
                | 32 |  |  |         """Test upsert_interfaces.""" | 
            
                                                                                                            
                            
            
                                    
            
            
                | 33 | 1 |  |         intf_ids = ["00:00:00:00:00:00:00:01:2", "00:00:00:00:00:00:00:02:2"] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 34 | 1 |  |         intf_dicts = [{"enabled": True}, {"enabled": True}] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 35 | 1 |  |         liveness_controller.upsert_interfaces(intf_ids, intf_dicts) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 36 | 1 |  |         assert liveness_controller.db.liveness.bulk_write.call_count == 1 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 37 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 38 | 1 |  |     def test_enable_interfaces(self, liveness_controller) -> None: | 
            
                                                                                                            
                            
            
                                    
            
            
                | 39 |  |  |         """Test enable_interfaces.""" | 
            
                                                                                                            
                            
            
                                    
            
            
                | 40 | 1 |  |         intf_ids = ["00:00:00:00:00:00:00:01:2", "00:00:00:00:00:00:00:02:2"] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 41 | 1 |  |         liveness_controller.upsert_interfaces = MagicMock() | 
            
                                                                                                            
                            
            
                                    
            
            
                | 42 | 1 |  |         upsert_mock = liveness_controller.upsert_interfaces | 
            
                                                                                                            
                            
            
                                    
            
            
                | 43 | 1 |  |         liveness_controller.enable_interfaces(intf_ids) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 44 | 1 |  |         assert upsert_mock.call_count == 1 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 45 | 1 |  |         upsert_mock.assert_called_with( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 46 |  |  |             intf_ids, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 47 |  |  |             [{"enabled": True}, {"enabled": True}], | 
            
                                                                                                            
                            
            
                                    
            
            
                | 48 |  |  |             upsert=True, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 49 |  |  |         ) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 50 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 51 | 1 |  |     def test_disable_interfaces(self, liveness_controller) -> None: | 
            
                                                                                                            
                            
            
                                    
            
            
                | 52 |  |  |         """Test disable_interfaces.""" | 
            
                                                                                                            
                            
            
                                    
            
            
                | 53 | 1 |  |         intf_ids = ["00:00:00:00:00:00:00:01:2", "00:00:00:00:00:00:00:02:2"] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 54 | 1 |  |         liveness_controller.upsert_interfaces = MagicMock() | 
            
                                                                                                            
                            
            
                                    
            
            
                | 55 | 1 |  |         upsert_mock = liveness_controller.upsert_interfaces | 
            
                                                                                                            
                            
            
                                    
            
            
                | 56 | 1 |  |         liveness_controller.disable_interfaces(intf_ids) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 57 | 1 |  |         assert upsert_mock.call_count == 1 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 58 | 1 |  |         upsert_mock.assert_called_with( | 
            
                                                                                                            
                            
            
                                    
            
            
                | 59 |  |  |             intf_ids, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 60 |  |  |             [{"enabled": False}, {"enabled": False}], | 
            
                                                                                                            
                            
            
                                    
            
            
                | 61 |  |  |             upsert=False, | 
            
                                                                                                            
                            
            
                                    
            
            
                | 62 |  |  |         ) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 63 |  |  |  | 
            
                                                                                                            
                            
            
                                    
            
            
                | 64 | 1 |  |     def test_delete_interfaces(self, liveness_controller) -> None: | 
            
                                                                                                            
                            
            
                                    
            
            
                | 65 |  |  |         """Test delete_interfaces.""" | 
            
                                                                                                            
                            
            
                                    
            
            
                | 66 | 1 |  |         intf_ids = ["00:00:00:00:00:00:00:01:2", "00:00:00:00:00:00:00:02:2"] | 
            
                                                                                                            
                            
            
                                    
            
            
                | 67 | 1 |  |         liveness_controller.delete_interfaces(intf_ids) | 
            
                                                                                                            
                            
            
                                    
            
            
                | 68 | 1 |  |         mock = liveness_controller.db.liveness.delete_many | 
            
                                                                                                            
                            
            
                                    
            
            
                | 69 | 1 |  |         assert mock.call_count == 1 | 
            
                                                                                                            
                            
            
                                    
            
            
                | 70 | 1 |  |         mock.assert_called_with({"_id": {"$in": intf_ids}}) | 
            
                                                                                                            
                                                                
            
                                    
            
            
                | 71 |  |  |  | 
            
                                                        
            
                                    
            
            
                | 72 | 1 |  |     def test_delete_interface(self, liveness_controller) -> None: | 
            
                                                        
            
                                    
            
            
                | 73 |  |  |         """Test delete_interface.""" | 
            
                                                        
            
                                    
            
            
                | 74 | 1 |  |         intf_id = "00:00:00:00:00:00:00:01:1" | 
            
                                                        
            
                                    
            
            
                | 75 | 1 |  |         liveness_controller.delete_interface(intf_id) | 
            
                                                        
            
                                    
            
            
                | 76 | 1 |  |         mock = liveness_controller.db.liveness.find_one_and_delete | 
            
                                                        
            
                                    
            
            
                | 77 | 1 |  |         assert mock.call_count == 1 | 
            
                                                        
            
                                    
            
            
                | 78 |  |  |         mock.assert_called_with({"_id": intf_id}) | 
            
                                                        
            
                                    
            
            
                | 79 |  |  |  |