From ea1cea02f14c942f9b88cc1da6140023e120c401 Mon Sep 17 00:00:00 2001 From: Gagan Deep Date: Tue, 6 Jun 2023 15:01:27 +0530 Subject: [PATCH 1/2] [fix] Fixed changing status of link from LinkAdmin #154 Closes #154 --- .../integrations/device/overrides.py | 1 + openwisp_network_topology/tests/test_admin.py | 22 +++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/openwisp_network_topology/integrations/device/overrides.py b/openwisp_network_topology/integrations/device/overrides.py index 341dd4fe..ceafbd8b 100644 --- a/openwisp_network_topology/integrations/device/overrides.py +++ b/openwisp_network_topology/integrations/device/overrides.py @@ -84,6 +84,7 @@ def link_get_queryset(cls, qs): 'organization__name', 'organization__is_active', 'status', + 'properties', 'cost', 'cost_text', 'source__addresses', diff --git a/openwisp_network_topology/tests/test_admin.py b/openwisp_network_topology/tests/test_admin.py index bd95dff5..9259ce8b 100644 --- a/openwisp_network_topology/tests/test_admin.py +++ b/openwisp_network_topology/tests/test_admin.py @@ -188,6 +188,28 @@ def test_link_change_form(self): self.assertNotContains(response, 'organization_id') self.assertContains(response, link.topology.organization.name) + def test_link_update_status(self): + t = Topology.objects.first() + n1 = self._create_node(label='node1org1', topology=t) + n2 = self._create_node(label='node2org1', topology=t) + link = self._create_link(topology=t, source=n1, target=n2) + path = reverse('{0}_link_change'.format(self.prefix), args=[link.pk]) + response = self.client.post( + path, + data={ + 'topology': str(t.pk), + 'organization': str(t.organization_id), + 'source': str(n1.id), + 'target': str(n2.id), + 'cost': '1.0', + 'status': 'down', + }, + follow=True, + ) + self.assertEqual(response.status_code, 200) + link.refresh_from_db() + self.assertEqual(link.status, 'down') + def test_node_add(self): path = reverse('{0}_node_add'.format(self.prefix)) response = self.client.get(path) From 88d7408e88a086eb2cdfde66abccf576920c039c Mon Sep 17 00:00:00 2001 From: Gagan Deep Date: Wed, 7 Jun 2023 16:52:17 +0530 Subject: [PATCH 2/2] [req-changes] Updated queryset for Node and Link --- .../integrations/device/overrides.py | 3 +++ .../integrations/device/tests.py | 22 +++++++++++++++++++ openwisp_network_topology/tests/test_admin.py | 22 ------------------- 3 files changed, 25 insertions(+), 22 deletions(-) diff --git a/openwisp_network_topology/integrations/device/overrides.py b/openwisp_network_topology/integrations/device/overrides.py index ceafbd8b..b5f56038 100644 --- a/openwisp_network_topology/integrations/device/overrides.py +++ b/openwisp_network_topology/integrations/device/overrides.py @@ -60,6 +60,8 @@ def node_get_queryset(cls, qs): 'organization__is_active', 'label', 'addresses', + 'properties', + 'user_properties', 'devicenode__device__id', 'devicenode__device__name', 'devicenode__device__name', @@ -85,6 +87,7 @@ def link_get_queryset(cls, qs): 'organization__is_active', 'status', 'properties', + 'user_properties', 'cost', 'cost_text', 'source__addresses', diff --git a/openwisp_network_topology/integrations/device/tests.py b/openwisp_network_topology/integrations/device/tests.py index bf4094ba..c72d94f4 100644 --- a/openwisp_network_topology/integrations/device/tests.py +++ b/openwisp_network_topology/integrations/device/tests.py @@ -489,3 +489,25 @@ def test_link_node_different_topology(self): link.full_clean() self.assertIn('source', context.exception.error_dict) self.assertIn('target', context.exception.error_dict) + + def test_link_update_status(self): + t = Topology.objects.first() + n1 = self._create_node(label='node1org1', topology=t) + n2 = self._create_node(label='node2org1', topology=t) + link = self._create_link(topology=t, source=n1, target=n2) + path = reverse('{0}_link_change'.format(self.prefix), args=[link.pk]) + response = self.client.post( + path, + data={ + 'topology': str(t.pk), + 'organization': str(t.organization_id), + 'source': str(n1.id), + 'target': str(n2.id), + 'cost': '1.0', + 'status': 'down', + }, + follow=True, + ) + self.assertEqual(response.status_code, 200) + link.refresh_from_db() + self.assertEqual(link.status, 'down') diff --git a/openwisp_network_topology/tests/test_admin.py b/openwisp_network_topology/tests/test_admin.py index 9259ce8b..bd95dff5 100644 --- a/openwisp_network_topology/tests/test_admin.py +++ b/openwisp_network_topology/tests/test_admin.py @@ -188,28 +188,6 @@ def test_link_change_form(self): self.assertNotContains(response, 'organization_id') self.assertContains(response, link.topology.organization.name) - def test_link_update_status(self): - t = Topology.objects.first() - n1 = self._create_node(label='node1org1', topology=t) - n2 = self._create_node(label='node2org1', topology=t) - link = self._create_link(topology=t, source=n1, target=n2) - path = reverse('{0}_link_change'.format(self.prefix), args=[link.pk]) - response = self.client.post( - path, - data={ - 'topology': str(t.pk), - 'organization': str(t.organization_id), - 'source': str(n1.id), - 'target': str(n2.id), - 'cost': '1.0', - 'status': 'down', - }, - follow=True, - ) - self.assertEqual(response.status_code, 200) - link.refresh_from_db() - self.assertEqual(link.status, 'down') - def test_node_add(self): path = reverse('{0}_node_add'.format(self.prefix)) response = self.client.get(path)