Просмотр исходного кода

Fixes #19610: FieldError when sorting Tunnel Termination on tenant (#19612)

Jason Novinger 8 месяцев назад
Родитель
Сommit
e24fa2ee4d
2 измененных файлов с 24 добавлено и 1 удалено
  1. 1 1
      netbox/vpn/tables/tunnels.py
  2. 23 0
      netbox/vpn/tests/test_tables.py

+ 1 - 1
netbox/vpn/tables/tunnels.py

@@ -73,7 +73,7 @@ class TunnelTable(TenancyColumnsMixin, NetBoxTable):
         default_columns = ('pk', 'name', 'group', 'status', 'encapsulation', 'tenant', 'terminations_count')
 
 
-class TunnelTerminationTable(TenancyColumnsMixin, NetBoxTable):
+class TunnelTerminationTable(NetBoxTable):
     tunnel = tables.Column(
         verbose_name=_('Tunnel'),
         linkify=True

+ 23 - 0
netbox/vpn/tests/test_tables.py

@@ -0,0 +1,23 @@
+from django.test import RequestFactory, tag, TestCase
+
+from vpn.models import TunnelTermination
+from vpn.tables import TunnelTerminationTable
+
+
+@tag('regression')
+class TunnelTerminationTableTest(TestCase):
+    def test_every_orderable_field_does_not_throw_exception(self):
+        terminations = TunnelTermination.objects.all()
+        fake_request = RequestFactory().get("/")
+        disallowed = {'actions'}
+
+        orderable_columns = [
+            column.name for column in TunnelTerminationTable(terminations).columns
+            if column.orderable and column.name not in disallowed
+        ]
+
+        for col in orderable_columns:
+            for dir in ('-', ''):
+                table = TunnelTerminationTable(terminations)
+                table.order_by = f'{dir}{col}'
+                table.as_html(fake_request)