11from unittest .mock import Mock
22
33from cumulusci .tasks .preflight .licenses import (
4+ GetAssignableLicenses ,
5+ GetAssignablePermissionSets ,
46 GetAvailableLicenses ,
57 GetAvailablePermissionSetLicenses ,
68 GetAvailablePermissionSets ,
@@ -16,17 +18,56 @@ def test_license_preflight(self):
1618 task ._init_api .return_value .query .return_value = {
1719 "totalSize" : 2 ,
1820 "records" : [
19- {"LicenseDefinitionKey" : "TEST1" },
20- {"LicenseDefinitionKey" : "TEST2" },
21+ {
22+ "Id" : "L1" ,
23+ "LicenseDefinitionKey" : "TEST1" ,
24+ "TotalLicenses" : 100 ,
25+ "UsedLicenses" : 90 ,
26+ },
27+ {
28+ "Id" : "L2" ,
29+ "LicenseDefinitionKey" : "TEST2" ,
30+ "TotalLicenses" : 100 ,
31+ "UsedLicenses" : 100 ,
32+ },
2133 ],
2234 }
23- task ()
2435
36+ task ()
2537 task ._init_api .return_value .query .assert_called_once_with (
26- "SELECT LicenseDefinitionKey FROM UserLicense"
38+ "SELECT Id, LicenseDefinitionKey, TotalLicenses, UsedLicenses FROM UserLicense WHERE Status = 'Active' "
2739 )
40+
2841 assert task .return_values == ["TEST1" , "TEST2" ]
2942
43+ def test_assignable_license_preflight (self ):
44+ task = create_task (GetAssignableLicenses , {})
45+ task ._init_api = Mock ()
46+ task ._init_api .return_value .query .return_value = {
47+ "totalSize" : 2 ,
48+ "records" : [
49+ {
50+ "Id" : "L1" ,
51+ "LicenseDefinitionKey" : "TEST1" ,
52+ "TotalLicenses" : 100 ,
53+ "UsedLicenses" : 90 ,
54+ },
55+ {
56+ "Id" : "L2" ,
57+ "LicenseDefinitionKey" : "TEST2" ,
58+ "TotalLicenses" : 100 ,
59+ "UsedLicenses" : 100 ,
60+ },
61+ ],
62+ }
63+
64+ task ()
65+ task ._init_api .return_value .query .assert_called_once_with (
66+ "SELECT Id, LicenseDefinitionKey, TotalLicenses, UsedLicenses FROM UserLicense WHERE Status = 'Active'"
67+ )
68+ # Only TEST1 assignable licenses
69+ assert task .return_values == ["TEST1" ]
70+
3071 def test_psl_preflight (self ):
3172 task = create_task (GetAvailablePermissionSetLicenses , {})
3273 task ._init_api = Mock ()
@@ -41,7 +82,7 @@ def test_psl_preflight(self):
4182 task ()
4283
4384 task ._init_api .return_value .query .assert_called_once_with (
44- "SELECT PermissionSetLicenseKey FROM PermissionSetLicense"
85+ "SELECT PermissionSetLicenseKey FROM PermissionSetLicense WHERE Status = 'Active' "
4586 )
4687 assert task .return_values == ["TEST1" , "TEST2" ]
4788
@@ -93,3 +134,41 @@ def test_permsets_preflight(self):
93134 "SELECT Name FROM PermissionSet"
94135 )
95136 assert task .return_values == ["TEST1" , "TEST2" ]
137+
138+ def test_assignable_permsets_preflight (self ):
139+ task = create_task (GetAssignablePermissionSets , {})
140+ task ._init_api = Mock ()
141+ task ._init_api .return_value .query .return_value = {
142+ "totalSize" : 2 ,
143+ "records" : [
144+ {
145+ "Id" : "L1" ,
146+ "LicenseDefinitionKey" : "TEST1" ,
147+ "TotalLicenses" : 100 ,
148+ "UsedLicenses" : 90 ,
149+ },
150+ {
151+ "Id" : "L2" ,
152+ "LicenseDefinitionKey" : "TEST2" ,
153+ "TotalLicenses" : 100 ,
154+ "UsedLicenses" : 100 ,
155+ },
156+ ],
157+ }
158+ task ._init_api .return_value .query_all .return_value = {
159+ "totalSize" : 3 ,
160+ "records" : [
161+ {"LicenseId" : "L1" , "Name" : "TEST1" },
162+ {"LicenseId" : "L2" , "Name" : "TEST2" },
163+ {"LicenseId" : None , "Name" : "TEST3" },
164+ ],
165+ }
166+ task ()
167+
168+ task ._init_api .return_value .query .assert_called_once_with (
169+ "SELECT Id, LicenseDefinitionKey, TotalLicenses, UsedLicenses FROM UserLicense WHERE Status = 'Active'"
170+ )
171+ task ._init_api .return_value .query_all .assert_called_once_with (
172+ "SELECT LicenseId, Name FROM PermissionSet"
173+ )
174+ assert task .return_values == ["TEST1" , "TEST3" ]
0 commit comments