@@ -1092,6 +1092,33 @@ def test_product_portfolio_detail_edit_productcomponent_permissions(self):
10921092 response = self .client .get (url )
10931093 self .assertContains (response , delete_button )
10941094
1095+ @mock .patch ("dejacode_toolkit.scancodeio.ScanCodeIO.is_configured" )
1096+ def test_product_portfolio_detail_view_has_scan_all_packages (self , mock_is_configured ):
1097+ mock_is_configured .return_value = True
1098+
1099+ self .client .login (username = self .basic_user .username , password = "secret" )
1100+ self .assertFalse (self .basic_user .dataspace .enable_package_scanning )
1101+
1102+ url = self .product1 .get_absolute_url ()
1103+ response = self .client .get (url )
1104+ self .assertEqual (404 , response .status_code )
1105+
1106+ assign_perm ("view_product" , self .basic_user , self .product1 )
1107+ response = self .client .get (url )
1108+ self .assertEqual (200 , response .status_code )
1109+ self .assertFalse (response .context .get ("has_scan_all_packages" ))
1110+
1111+ self .basic_user .dataspace .enable_package_scanning = True
1112+ self .basic_user .dataspace .save ()
1113+ response = self .client .get (url )
1114+ self .assertEqual (200 , response .status_code )
1115+ self .assertFalse (response .context .get ("has_scan_all_packages" ))
1116+
1117+ assign_perm ("change_product" , self .basic_user , self .product1 )
1118+ response = self .client .get (url )
1119+ self .assertEqual (200 , response .status_code )
1120+ self .assertTrue (response .context .get ("has_scan_all_packages" ))
1121+
10951122 def test_product_portfolio_detail_view_display_purldb_features (self ):
10961123 self .client .login (username = self .super_user .username , password = "secret" )
10971124 self .assertFalse (self .super_user .dataspace .enable_purldb_access )
@@ -1251,10 +1278,10 @@ def test_product_portfolio_details_view_admin_links(self, mock_is_configured):
12511278
12521279 manage_components_url = self .product1 .get_manage_components_url ()
12531280 manage_packages_url = self .product1 .get_manage_packages_url ()
1254- expected1 = "Scan all Packages"
1281+ expected_scan_all = "Scan all Packages"
12551282
12561283 response = self .client .get (url )
1257- self .assertContains (response , expected1 , html = True )
1284+ self .assertContains (response , expected_scan_all , html = True )
12581285 self .assertContains (response , manage_components_url )
12591286 self .assertContains (response , manage_packages_url )
12601287
@@ -1271,33 +1298,33 @@ def test_product_portfolio_details_view_admin_links(self, mock_is_configured):
12711298
12721299 assign_perm ("view_product" , self .super_user , self .product1 )
12731300 response = self .client .get (url )
1274- self .assertNotContains (response , expected1 , html = True )
1301+ self .assertNotContains (response , expected_scan_all , html = True )
12751302 self .assertNotContains (response , manage_components_url )
12761303 self .assertNotContains (response , manage_packages_url )
12771304
12781305 perms = ["change_productcomponent" ]
12791306 self .super_user = add_perms (self .super_user , perms )
12801307 response = self .client .get (url )
1281- self .assertNotContains (response , expected1 , html = True )
1308+ self .assertNotContains (response , expected_scan_all , html = True )
12821309 self .assertNotContains (response , manage_components_url )
12831310 self .assertNotContains (response , manage_packages_url )
12841311
12851312 assign_perm ("change_product" , self .super_user , self .product1 )
12861313 response = self .client .get (url )
1287- self .assertNotContains (response , expected1 , html = True )
1314+ self .assertContains (response , expected_scan_all , html = True )
12881315 self .assertContains (response , manage_components_url )
12891316 self .assertNotContains (response , manage_packages_url )
12901317
12911318 self .super_user = add_perms (self .super_user , ["change_productpackage" ])
12921319 response = self .client .get (url )
1293- self .assertNotContains (response , expected1 , html = True )
1320+ self .assertContains (response , expected_scan_all , html = True )
12941321 self .assertContains (response , manage_components_url )
12951322 self .assertContains (response , manage_packages_url )
12961323
12971324 self .super_user .is_superuser = True
12981325 self .super_user .save ()
12991326 response = self .client .get (url )
1300- self .assertContains (response , expected1 , html = True )
1327+ self .assertContains (response , expected_scan_all , html = True )
13011328
13021329 def test_product_portfolio_list_view_request_links (self ):
13031330 self .client .login (username = "nexb_user" , password = "secret" )
@@ -1734,11 +1761,15 @@ def test_product_scan_all_packages_view(self, mock_is_configured, mock_scancodei
17341761 dataspace_uuid = self .super_user .dataspace .uuid ,
17351762 )
17361763
1737- self .super_user .is_superuser = False
1738- self .super_user .save ()
1764+ self .client .login (username = self .basic_user .username , password = "secret" )
17391765 response = self .client .get (scan_all_packages_url )
17401766 self .assertEqual (404 , response .status_code )
17411767
1768+ assign_perm ("view_product" , self .basic_user , self .product1 )
1769+ assign_perm ("change_product" , self .basic_user , self .product1 )
1770+ response = self .client .get (scan_all_packages_url )
1771+ self .assertRedirects (response , self .product1 .get_absolute_url ())
1772+
17421773 def test_product_portfolio_product_add_view_permission_access (self ):
17431774 add_url = reverse ("product_portfolio:product_add" )
17441775 response = self .client .get (add_url )
0 commit comments