2121
2222
2323class SeleniumTestMixin (BaseSeleniumTestMixin ):
24+ config_app_label = "config"
25+
2426 def _select_organization (self , org ):
2527 self .find_element (
2628 by = By .CSS_SELECTOR , value = "#select2-id_organization-container"
@@ -55,7 +57,8 @@ class TestDeviceAdmin(
5557 # helper function for adding/removing templates
5658 def _update_template (self , device_id , templates , is_enabled = False ):
5759 self .open (
58- reverse ("admin:config_device_change" , args = [device_id ]) + "#config-group"
60+ reverse (f"admin:{ self .config_app_label } _device_change" , args = [device_id ])
61+ + "#config-group"
5962 )
6063 self .wait_for_presence (By .CSS_SELECTOR , 'input[name="config-0-templates"]' )
6164
@@ -84,7 +87,7 @@ def test_create_new_device(self):
8487 default_template = self ._create_template (name = "Default" , default = True )
8588 org = self ._get_org ()
8689 self .login ()
87- self .open (reverse ("admin:config_device_add " ))
90+ self .open (reverse (f "admin:{ self . config_app_label } _device_add " ))
8891 self .find_element (by = By .NAME , value = "name" ).send_keys ("11:22:33:44:55:66" )
8992 self .find_element (
9093 by = By .CSS_SELECTOR , value = "#select2-id_organization-container"
@@ -149,9 +152,13 @@ def test_create_new_device(self):
149152 def test_device_preview_keyboard_shortcuts (self ):
150153 device = self ._create_config (device = self ._create_device (name = "Test" )).device
151154 self .login ()
152- self .open (reverse ("admin:config_device_changelist " ))
155+ self .open (reverse (f "admin:{ self . config_app_label } _device_changelist " ))
153156 try :
154- self .open (reverse ("admin:config_device_change" , args = [device .id ]))
157+ self .open (
158+ reverse (
159+ f"admin:{ self .config_app_label } _device_change" , args = [device .id ]
160+ )
161+ )
155162 self .hide_loading_overlay ()
156163 except TimeoutException :
157164 self .fail ("Device detail page did not load in time" )
@@ -191,7 +198,8 @@ def test_multiple_organization_templates(self):
191198
192199 self .login ()
193200 self .open (
194- reverse ("admin:config_device_change" , args = [device .id ]) + "#config-group"
201+ reverse (f"admin:{ self .config_app_label } _device_change" , args = [device .id ])
202+ + "#config-group"
195203 )
196204 self .hide_loading_overlay ()
197205
@@ -255,7 +263,8 @@ def test_change_config_backend(self):
255263
256264 self .login ()
257265 self .open (
258- reverse ("admin:config_device_change" , args = [device .id ]) + "#config-group"
266+ reverse (f"admin:{ self .config_app_label } _device_change" , args = [device .id ])
267+ + "#config-group"
259268 )
260269 self .hide_loading_overlay ()
261270 self .find_element (by = By .XPATH , value = f'//*[@value="{ template .id } "]' )
@@ -274,7 +283,9 @@ def test_force_delete_device_with_deactivating_config(self):
274283 self .assertEqual (config .status , "modified" )
275284
276285 self .login ()
277- self .open (reverse ("admin:config_device_change" , args = [device .id ]))
286+ self .open (
287+ reverse (f"admin:{ self .config_app_label } _device_change" , args = [device .id ])
288+ )
278289 self .hide_loading_overlay ()
279290 # The webpage has two "submit-row" sections, each containing a "Deactivate"
280291 # button. The first (top) "Deactivate" button is hidden, causing
@@ -291,7 +302,9 @@ def test_force_delete_device_with_deactivating_config(self):
291302 self .assertEqual (device .is_deactivated (), True )
292303 self .assertEqual (config .is_deactivating (), True )
293304
294- self .open (reverse ("admin:config_device_change" , args = [device .id ]))
305+ self .open (
306+ reverse (f"admin:{ self .config_app_label } _device_change" , args = [device .id ])
307+ )
295308 self .hide_loading_overlay ()
296309 # Use `presence` instead of `visibility` for `wait_for`,
297310 # as the same issue described above applies here.
@@ -328,7 +341,7 @@ def test_force_delete_multiple_devices_with_deactivating_config(self):
328341 self .assertEqual (config2 .status , "modified" )
329342
330343 self .login ()
331- self .open (reverse ("admin:config_device_changelist " ))
344+ self .open (reverse (f "admin:{ self . config_app_label } _device_changelist " ))
332345 self .find_element (by = By .CSS_SELECTOR , value = "#action-toggle" ).click ()
333346 select = Select (self .find_element (by = By .NAME , value = "action" ))
334347 select .select_by_value ("delete_selected" )
@@ -400,7 +413,7 @@ def test_show_relevant_templates(self):
400413 )
401414
402415 self .login ()
403- self .open (reverse ("admin:config_devicegroup_add " ))
416+ self .open (reverse (f "admin:{ self . config_app_label } _devicegroup_add " ))
404417 self .assertEqual (
405418 self .wait_for_visibility (
406419 By .CSS_SELECTOR , ".sortedm2m-container .help"
@@ -509,7 +522,7 @@ def test_unsaved_changes(self):
509522 self .login ()
510523 self ._create_template (default = True , default_values = {"ssid" : "default" })
511524 device = self ._create_config (organization = self ._get_org ()).device
512- path = reverse ("admin:config_device_change " , args = [device .id ])
525+ path = reverse (f "admin:{ self . config_app_label } _device_change " , args = [device .id ])
513526
514527 with self .subTest ("Alert should not be displayed without any change" ):
515528 self .open (path )
@@ -551,7 +564,8 @@ def test_template_context_variables(self):
551564 device = self ._create_config (organization = self ._get_org ()).device
552565 self .login ()
553566 self .open (
554- reverse ("admin:config_device_change" , args = [device .id ]) + "#config-group"
567+ reverse (f"admin:{ self .config_app_label } _device_change" , args = [device .id ])
568+ + "#config-group"
555569 )
556570 self .hide_loading_overlay ()
557571 try :
@@ -577,7 +591,11 @@ def test_template_context_variables(self):
577591 self .fail ("Unsaved changes alert displayed without any change" )
578592
579593 with self .subTest ("Saving the objects should not save context variables" ):
580- self .open (reverse ("admin:config_device_change" , args = [device .id ]))
594+ self .open (
595+ reverse (
596+ f"admin:{ self .config_app_label } _device_change" , args = [device .id ]
597+ )
598+ )
581599 self .web_driver .execute_script (
582600 "window.scrollTo(0, document.body.scrollHeight);"
583601 )
@@ -598,7 +616,7 @@ class TestVpnAdmin(
598616 def test_vpn_edit (self ):
599617 self .login ()
600618 device , vpn , template = self ._create_wireguard_vpn_template ()
601- self .open (reverse ("admin:config_vpn_change " , args = [vpn .id ]))
619+ self .open (reverse (f "admin:{ self . config_app_label } _vpn_change " , args = [vpn .id ]))
602620 with self .subTest ("Ca and Cert should not be visible" ):
603621 self .wait_for_invisibility (by = By .CLASS_NAME , value = "field-ca" )
604622 self .wait_for_invisibility (by = By .CLASS_NAME , value = "field-cert" )
0 commit comments