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

Fixes #13666: Fix behavior for reports without test methods (#13667)

JCWasmx86 2 лет назад
Родитель
Сommit
e67624f042

+ 0 - 2
netbox/extras/reports.py

@@ -106,8 +106,6 @@ class Report(object):
                     'failure': 0,
                     'log': [],
                 }
-        if not test_methods:
-            raise Exception("A report must contain at least one test method.")
         self.test_methods = test_methods
 
     @classproperty

+ 5 - 1
netbox/templates/extras/report.html

@@ -12,7 +12,11 @@
             {% csrf_token %}
             {% render_form form %}
             <div class="float-end">
-              <button type="submit" name="_run" class="btn btn-primary">
+              <button type="submit" name="_run" class="btn btn-primary"
+              {% if not report.test_methods|length %}
+                disabled
+              {% endif %}
+              >
                 {% if report.result %}
                   <i class="mdi mdi-replay"></i> {% trans "Run Again" %}
                 {% else %}

+ 8 - 2
netbox/templates/extras/report_list.html

@@ -68,10 +68,16 @@
                           </td>
                         {% else %}
                           <td class="text-muted">{% trans "Never" %}</td>
-                          <td>{{ ''|placeholder }}</td>
+                          {% if report.test_methods|length %}
+                            <td>{{ ''|placeholder }}</td>
+                          {% else %}
+                            <td>
+                              Invalid (no test methods found)
+                           </td>
+                          {% endif %}
                         {% endif %}
                         <td>
-                          {% if perms.extras.run_report %}
+                          {% if perms.extras.run_report and report.test_methods|length %}
                             <div class="float-end noprint">
                               <form action="{% url 'extras:report' module=report.module name=report.class_name %}" method="post">
                                 {% csrf_token %}