| 
									
										
										
										
											2024-04-01 21:46:23 -04:00
										 |  |  | from unittest import mock | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-27 14:30:03 -05:00
										 |  |  | from oslo_config import cfg | 
					
						
							| 
									
										
										
										
											2021-12-07 11:25:14 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  | import aprsd | 
					
						
							| 
									
										
										
										
											2025-03-28 09:16:06 -04:00
										 |  |  | from aprsd.client.drivers.fake import APRSDFakeDriver | 
					
						
							| 
									
										
										
										
											2021-12-07 11:25:14 -05:00
										 |  |  | from aprsd.plugins import version as version_plugin | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from .. import fake, test_plugin | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-12-27 14:30:03 -05:00
										 |  |  | CONF = cfg.CONF | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-12-07 11:25:14 -05:00
										 |  |  | class TestVersionPlugin(test_plugin.TestPlugin): | 
					
						
							| 
									
										
										
										
											2025-03-28 09:16:06 -04:00
										 |  |  |     def setUp(self): | 
					
						
							|  |  |  |         # make sure the fake client driver is enabled | 
					
						
							|  |  |  |         # Mock CONF for testing | 
					
						
							|  |  |  |         super().setUp() | 
					
						
							|  |  |  |         self.conf_patcher = mock.patch('aprsd.client.drivers.fake.CONF') | 
					
						
							|  |  |  |         self.mock_conf = self.conf_patcher.start() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         # Configure fake_client.enabled | 
					
						
							|  |  |  |         self.mock_conf.fake_client.enabled = True | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         # Create an instance of the driver | 
					
						
							|  |  |  |         self.driver = APRSDFakeDriver() | 
					
						
							|  |  |  |         self.fromcall = fake.FAKE_FROM_CALLSIGN | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     def tearDown(self): | 
					
						
							|  |  |  |         self.conf_patcher.stop() | 
					
						
							|  |  |  |         super().tearDown() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     @mock.patch('aprsd.stats.collector.Collector') | 
					
						
							|  |  |  |     def test_version(self, mock_collector_class): | 
					
						
							|  |  |  |         # Set up the mock collector instance | 
					
						
							|  |  |  |         mock_collector_instance = mock_collector_class.return_value | 
					
						
							|  |  |  |         mock_collector_instance.collect.return_value = { | 
					
						
							|  |  |  |             'APRSDStats': { | 
					
						
							|  |  |  |                 'uptime': '00:00:00', | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         expected = f'APRSD ver:{aprsd.__version__} uptime:00:00:00' | 
					
						
							| 
									
										
										
										
											2022-12-27 14:30:03 -05:00
										 |  |  |         CONF.callsign = fake.FAKE_TO_CALLSIGN | 
					
						
							|  |  |  |         version = version_plugin.VersionPlugin() | 
					
						
							|  |  |  |         version.enabled = True | 
					
						
							| 
									
										
										
										
											2021-12-07 11:25:14 -05:00
										 |  |  | 
 | 
					
						
							|  |  |  |         packet = fake.fake_packet( | 
					
						
							| 
									
										
										
										
											2025-03-28 09:16:06 -04:00
										 |  |  |             message='No', | 
					
						
							| 
									
										
										
										
											2021-12-07 11:25:14 -05:00
										 |  |  |             msg_number=1, | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         actual = version.filter(packet) | 
					
						
							|  |  |  |         self.assertEqual(None, actual) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         packet = fake.fake_packet( | 
					
						
							| 
									
										
										
										
											2025-03-28 09:16:06 -04:00
										 |  |  |             message='version', | 
					
						
							| 
									
										
										
										
											2021-12-07 11:25:14 -05:00
										 |  |  |             msg_number=1, | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  |         actual = version.filter(packet) | 
					
						
							|  |  |  |         self.assertEqual(expected, actual) | 
					
						
							| 
									
										
										
										
											2025-03-28 09:16:06 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  |         # Verify the mock was called exactly once | 
					
						
							|  |  |  |         mock_collector_instance.collect.assert_called_once() |