@@ -846,6 +846,20 @@ def test_product_relationship_queryset_update_weighted_risk_score(self):
846846 pp1 .refresh_from_db ()
847847 self .assertIsNone (pp1 .weighted_risk_score )
848848
849+ def test_productpackage_queryset_exclude_locked_products (self ):
850+ active_product = make_product (self .dataspace )
851+ pp1 = make_product_package (active_product )
852+ inactive_product = make_product (self .dataspace , is_active = False )
853+ make_product_package (inactive_product )
854+
855+ qs = ProductPackage .objects .exclude_locked_products ()
856+ self .assertQuerySetEqual (qs , [pp1 ])
857+
858+ locked_status = make_product_status (self .dataspace , is_locked = True )
859+ active_product .update (configuration_status = locked_status )
860+ qs = ProductPackage .objects .exclude_locked_products ()
861+ self .assertQuerySetEqual (qs , [])
862+
849863 def test_productpackage_queryset_license_unknown (self ):
850864 package1 = make_package (self .dataspace , declared_license_expression = "unknown" )
851865 package2 = make_package (self .dataspace , declared_license_expression = "mit" )
@@ -879,6 +893,23 @@ def test_productpackage_queryset_update_license_unknown(self):
879893 self .assertEqual ("mit" , pp1 .license_expression )
880894 self .assertEqual ("" , pp2 .license_expression )
881895
896+ def test_productpackage_queryset_update_license_unknown_exclude_locked_products (self ):
897+ locked_status = make_product_status (self .dataspace , is_locked = True )
898+ self .product1 .update (configuration_status = locked_status )
899+
900+ package1 = make_package (self .dataspace , declared_license_expression = "mit" )
901+ pp1 = make_product_package (self .product1 , package = package1 , license_expression = "unknown" )
902+
903+ ProductPackage .objects .update_license_unknown ()
904+ pp1 .refresh_from_db ()
905+ # Product is locked
906+ self .assertEqual ("unknown" , pp1 .license_expression )
907+
908+ self .product1 .update (configuration_status = None )
909+ ProductPackage .objects .update_license_unknown ()
910+ pp1 .refresh_from_db ()
911+ self .assertEqual ("mit" , pp1 .license_expression )
912+
882913 def test_productrelation_model_compute_weighted_risk_score (self ):
883914 purpose1 = make_product_item_purpose (self .dataspace )
884915
0 commit comments