def test_monitoring_status_chart_registered(self): chart_config = DASHBOARD_CHARTS.get(0, None) self.assertIsNotNone(chart_config) self.assertEqual(chart_config['name'], 'Monitoring Status') self.assertIn('labels', chart_config) self.assertNotIn('filters', chart_config) query_params = chart_config['query_params'] self.assertIn('group_by', query_params) self.assertEqual(query_params['group_by'], 'monitoring__status')
def test_system_type_chart_registered(self): chart_config = DASHBOARD_CHARTS.get(12, None) self.assertIsNotNone(chart_config) self.assertEqual(chart_config['name'], 'System type') self.assertIn('labels', chart_config) self.assertDictEqual(chart_config['labels'], {'': 'undefined'}) self.assertNotIn('filters', chart_config) query_params = chart_config['query_params'] self.assertIn('group_by', query_params) self.assertEqual(query_params['group_by'], 'system')
def test_firmware_version_chart_registered(self): chart_config = DASHBOARD_CHARTS.get(11, None) self.assertIsNotNone(chart_config) self.assertEqual(chart_config['name'], 'Firmware version') self.assertIn('labels', chart_config) self.assertDictEqual(chart_config['labels'], {'': 'undefined'}) self.assertNotIn('filters', chart_config) query_params = chart_config['query_params'] self.assertIn('group_by', query_params) self.assertEqual(query_params['group_by'], 'os')
def test_device_models_chart_registered(self): chart_config = DASHBOARD_CHARTS.get(10, None) self.assertIsNotNone(chart_config) self.assertEqual(chart_config['name'], 'Device Models') self.assertIn('labels', chart_config) self.assertDictEqual(chart_config['labels'], {'': 'undefined'}) self.assertNotIn('filters', chart_config) query_params = chart_config['query_params'] self.assertIn('group_by', query_params) self.assertEqual(query_params['group_by'], 'model')
def test_monitoring_integration(self, *args): topology, device, cert = self._create_test_env(parser='netdiff.OpenvpnParser') node = self._init_test_node( topology, addresses=['netjson_id', '10.0.0.2'], common_name=cert.common_name ) node2 = self._init_test_node(topology, addresses=['netjson_id2'], label='test2') device.management_ip = None device.save() link = Link( source=node, target=node2, status='up', topology=topology, organization=topology.organization, cost=1, ) link.full_clean() link.save() DASHBOARD_CHARTS.clear() DASHBOARD_TEMPLATES.clear() MENU.clear() # needed for monitoring trigger_device_checks = import_string(trigger_device_checks_path) with mock.patch.object(trigger_device_checks, 'delay') as mocked_task: with self.modify_settings( INSTALLED_APPS={ 'append': [ 'openwisp_monitoring.monitoring', 'openwisp_monitoring.device', 'openwisp_monitoring.check', 'openwisp_controller.connection', 'openwisp_notifications', ] } ): link.status = 'down' link.save() mocked_task.assert_called_once() mocked_task.assert_called_with(device.pk, recovery=False)
def test_geo_chart_registered(self): chart_config = DASHBOARD_CHARTS.get(2, None) self.assertIsNotNone(chart_config) self.assertEqual(chart_config['name'], 'Geographic positioning') self.assertIn('labels', chart_config) query_params = chart_config['query_params'] self.assertIn('annotate', query_params) self.assertIn('aggregate', query_params) self.assertIn('filters', chart_config) filters = chart_config['filters'] self.assertIn('key', filters) self.assertIn('with_geo__sum', chart_config['filters']) self.assertIn('without_geo__sum', chart_config['filters'])
def test_config_status_chart_registered(self): expected_config = { 'name': 'Configuration Status', 'query_params': { 'app_label': 'config', 'model': 'device', 'group_by': 'config__status', }, 'colors': {'applied': '#267126', 'modified': '#ffb442', 'error': '#a72d1d'}, 'labels': {'applied': 'applied', 'error': 'error', 'modified': 'modified'}, } chart_config = DASHBOARD_CHARTS.get(1, None) self.assertIsNotNone(chart_config) self.assertDictEqual(chart_config, expected_config)
def test_device_group_chart_registered(self): chart_config = DASHBOARD_CHARTS.get(20, None) self.assertIsNotNone(chart_config) self.assertEqual(chart_config['name'], 'Groups') self.assertIn('labels', chart_config) self.assertDictEqual( chart_config['labels'], {'active': 'Active groups', 'empty': 'Empty groups'}, ) self.assertIn('filters', chart_config) query_params = chart_config['query_params'] self.assertNotIn('group_by', query_params) self.assertIn('annotate', query_params) self.assertIn('aggregate', query_params) self.assertIn('filters', chart_config) filters = chart_config['filters'] self.assertIn('key', filters) self.assertIn('active', chart_config['filters']) self.assertIn('empty', chart_config['filters'])