Skip to content

Commit 5635f69

Browse files
view_endpoint: fix error (#12343)
* view_endpoint fix error * ui tests: add view_endpoint test * ui tests: add view_endpoint test * ui tests: add view_endpoint test * ui tests: add view_endpoint test * ui tests: add view_endpoint test
1 parent 67940a9 commit 5635f69

File tree

2 files changed

+118
-2
lines changed

2 files changed

+118
-2
lines changed

dojo/templatetags/display_tags.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -411,7 +411,7 @@ def render(self, context):
411411
iterable = template.Variable(self.iterable).resolve(context)
412412
num_cols = self.num_cols
413413
context[self.varname] = zip(
414-
*[chain(iterable, [None] * (num_cols - 1))] * num_cols, strict=True)
414+
*[chain(iterable, [None] * (num_cols - 1))] * num_cols, strict=False)
415415
return ""
416416

417417
try:

tests/endpoint_test.py

+117-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import sys
22
import unittest
33

4-
from base_test_class import BaseTestCase
4+
from base_test_class import BaseTestCase, on_exception_html_source_logger
55
from product_test import ProductTest
66
from selenium.webdriver.common.by import By
77
from selenium.webdriver.support.ui import Select
@@ -28,7 +28,110 @@ def test_create_endpoint(self):
2828
# submit
2929
driver.find_element(By.CSS_SELECTOR, "input.btn.btn-primary").click()
3030
# Query the site to determine if the finding has been added
31+
# Assert ot the query to dtermine status of failure
32+
self.assertTrue(self.is_success_message_present(text="Endpoint added successfully"))
33+
34+
driver.get(self.base_url + "endpoint")
35+
# "Click" the dropdown button to see options
36+
driver.find_element(By.ID, "dropdownMenu1").click()
37+
# "Click" the New Endpoint
38+
driver.find_element(By.LINK_TEXT, "New Endpoint").click()
39+
# Keep a good practice of clearing field before entering value
40+
# Endpoints
41+
driver.find_element(By.ID, "id_endpoint").clear()
42+
driver.find_element(By.ID, "id_endpoint").send_keys("https://example.com:1")
43+
# Select product to assign endpoint to
44+
Select(driver.find_element(By.ID, "id_product")).select_by_visible_text("QA Test")
45+
# submit
46+
driver.find_element(By.CSS_SELECTOR, "input.btn.btn-primary").click()
47+
# Query the site to determine if the finding has been added
48+
# Assert ot the query to dtermine status of failure
49+
self.assertTrue(self.is_success_message_present(text="Endpoint added successfully"))
50+
51+
# we add 5 endpoints to be able to test the fix for https://github.com/DefectDojo/django-DefectDojo/issues/12295 later in test_view_host
52+
53+
driver.get(self.base_url + "endpoint")
54+
# "Click" the dropdown button to see options
55+
driver.find_element(By.ID, "dropdownMenu1").click()
56+
# "Click" the New Endpoint
57+
driver.find_element(By.LINK_TEXT, "New Endpoint").click()
58+
# Keep a good practice of clearing field before entering value
59+
# Endpoints
60+
driver.find_element(By.ID, "id_endpoint").clear()
61+
driver.find_element(By.ID, "id_endpoint").send_keys("https://example.com:1")
62+
# Select product to assign endpoint to
63+
Select(driver.find_element(By.ID, "id_product")).select_by_visible_text("QA Test")
64+
# submit
65+
driver.find_element(By.CSS_SELECTOR, "input.btn.btn-primary").click()
66+
# Query the site to determine if the finding has been added
67+
# Assert ot the query to dtermine status of failure
68+
self.assertTrue(self.is_success_message_present(text="Endpoint added successfully"))
69+
70+
driver.get(self.base_url + "endpoint")
71+
# "Click" the dropdown button to see options
72+
driver.find_element(By.ID, "dropdownMenu1").click()
73+
# "Click" the New Endpoint
74+
driver.find_element(By.LINK_TEXT, "New Endpoint").click()
75+
# Keep a good practice of clearing field before entering value
76+
# Endpoints
77+
driver.find_element(By.ID, "id_endpoint").clear()
78+
driver.find_element(By.ID, "id_endpoint").send_keys("https://example.com:2")
79+
# Select product to assign endpoint to
80+
Select(driver.find_element(By.ID, "id_product")).select_by_visible_text("QA Test")
81+
# submit
82+
driver.find_element(By.CSS_SELECTOR, "input.btn.btn-primary").click()
83+
# Query the site to determine if the finding has been added
84+
# Assert ot the query to dtermine status of failure
85+
self.assertTrue(self.is_success_message_present(text="Endpoint added successfully"))
3186

87+
driver.get(self.base_url + "endpoint")
88+
# "Click" the dropdown button to see options
89+
driver.find_element(By.ID, "dropdownMenu1").click()
90+
# "Click" the New Endpoint
91+
driver.find_element(By.LINK_TEXT, "New Endpoint").click()
92+
# Keep a good practice of clearing field before entering value
93+
# Endpoints
94+
driver.find_element(By.ID, "id_endpoint").clear()
95+
driver.find_element(By.ID, "id_endpoint").send_keys("https://example.com:3")
96+
# Select product to assign endpoint to
97+
Select(driver.find_element(By.ID, "id_product")).select_by_visible_text("QA Test")
98+
# submit
99+
driver.find_element(By.CSS_SELECTOR, "input.btn.btn-primary").click()
100+
# Query the site to determine if the finding has been added
101+
# Assert ot the query to dtermine status of failure
102+
self.assertTrue(self.is_success_message_present(text="Endpoint added successfully"))
103+
104+
driver.get(self.base_url + "endpoint")
105+
# "Click" the dropdown button to see options
106+
driver.find_element(By.ID, "dropdownMenu1").click()
107+
# "Click" the New Endpoint
108+
driver.find_element(By.LINK_TEXT, "New Endpoint").click()
109+
# Keep a good practice of clearing field before entering value
110+
# Endpoints
111+
driver.find_element(By.ID, "id_endpoint").clear()
112+
driver.find_element(By.ID, "id_endpoint").send_keys("https://example.com:4")
113+
# Select product to assign endpoint to
114+
Select(driver.find_element(By.ID, "id_product")).select_by_visible_text("QA Test")
115+
# submit
116+
driver.find_element(By.CSS_SELECTOR, "input.btn.btn-primary").click()
117+
# Query the site to determine if the finding has been added
118+
# Assert ot the query to dtermine status of failure
119+
self.assertTrue(self.is_success_message_present(text="Endpoint added successfully"))
120+
121+
driver.get(self.base_url + "endpoint")
122+
# "Click" the dropdown button to see options
123+
driver.find_element(By.ID, "dropdownMenu1").click()
124+
# "Click" the New Endpoint
125+
driver.find_element(By.LINK_TEXT, "New Endpoint").click()
126+
# Keep a good practice of clearing field before entering value
127+
# Endpoints
128+
driver.find_element(By.ID, "id_endpoint").clear()
129+
driver.find_element(By.ID, "id_endpoint").send_keys("https://example.com:5")
130+
# Select product to assign endpoint to
131+
Select(driver.find_element(By.ID, "id_product")).select_by_visible_text("QA Test")
132+
# submit
133+
driver.find_element(By.CSS_SELECTOR, "input.btn.btn-primary").click()
134+
# Query the site to determine if the finding has been added
32135
# Assert ot the query to dtermine status of failure
33136
self.assertTrue(self.is_success_message_present(text="Endpoint added successfully"))
34137

@@ -58,6 +161,18 @@ def test_edit_endpoint(self):
58161
# Assert ot the query to dtermine status of failure
59162
self.assertTrue(self.is_success_message_present(text="Endpoint updated successfully"))
60163

164+
@on_exception_html_source_logger
165+
def test_view_host(self):
166+
# Login to the site. Password will have to be modified
167+
# to match an admin password in your own container
168+
driver = self.driver
169+
# Navigate to the host page
170+
driver.get(self.base_url + "endpoint/host")
171+
# Select one of the previously created endpoint to edit
172+
driver.find_element(By.LINK_TEXT, "example.com").click()
173+
174+
self.assertTrue(self.is_text_present_on_page(text="Host: example.com"))
175+
61176
def test_delete_endpoint(self):
62177
# Login to the site. Password will have to be modified
63178
# to match an admin password in your own container
@@ -87,6 +202,7 @@ def suite():
87202
suite.addTest(ProductTest("test_create_product"))
88203
suite.addTest(EndpointTest("test_create_endpoint"))
89204
suite.addTest(EndpointTest("test_edit_endpoint"))
205+
suite.addTest(EndpointTest("test_view_host"))
90206
suite.addTest(EndpointTest("test_delete_endpoint"))
91207
suite.addTest(ProductTest("test_delete_product"))
92208
return suite

0 commit comments

Comments
 (0)