cumulusci-plus 5.0.19__py3-none-any.whl → 5.0.21__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
cumulusci/__about__.py CHANGED
@@ -1 +1 @@
1
- __version__ = "5.0.19"
1
+ __version__ = "5.0.21"
@@ -23,8 +23,9 @@ class CreateBlankProfile(BaseSalesforceMetadataApiTask):
23
23
  "description": "The description of the the new profile",
24
24
  "required": False,
25
25
  },
26
- "collision_check": {
27
- "description": "Performs a collision check with metadata already present in the target org. Defaults to True"
26
+ "skip_if_exists": {
27
+ "description": "Skip if the profile already exists in the target org. Defaults to True",
28
+ "required": False,
28
29
  },
29
30
  }
30
31
 
@@ -43,14 +44,17 @@ class CreateBlankProfile(BaseSalesforceMetadataApiTask):
43
44
  self.description = self.options.get("description") or ""
44
45
  self.license_id = self.options.get("license_id")
45
46
 
46
- if self.options.get("collision_check", True):
47
- profile_id = self._get_profile_id(self.name)
48
- if profile_id:
49
- self.logger.info(
47
+ profile_id = self._get_profile_id(self.name)
48
+ if profile_id:
49
+ if not self.options.get("skip_if_exists", True):
50
+ raise TaskOptionsError(
50
51
  f"Profile '{self.name}' already exists with id: {profile_id}"
51
52
  )
52
- self.return_values = {"profile_id": profile_id}
53
- return profile_id
53
+ self.logger.info(
54
+ f"Profile '{self.name}' already exists with id: {profile_id}"
55
+ )
56
+ self.return_values = {"profile_id": profile_id}
57
+ return profile_id
54
58
 
55
59
  if not self.license_id:
56
60
  self.license_id = self._get_user_license_id(self.license)
@@ -64,7 +68,7 @@ class CreateBlankProfile(BaseSalesforceMetadataApiTask):
64
68
  def _get_profile_id(self, profile_name):
65
69
  """Returns the Id of a Profile from a given Name"""
66
70
  res = self._query_sf(
67
- f"SELECT Id, Name FROM Profile WHERE FullName = '{profile_name}' LIMIT 1"
71
+ f"SELECT Id, Name FROM Profile WHERE Name = '{profile_name}' LIMIT 1"
68
72
  )
69
73
  if res["records"]:
70
74
  return res["records"][0]["Id"]
@@ -124,7 +124,7 @@ def test_run_task_success():
124
124
  result = task._run_task()
125
125
  assert result == "001R0000029IyDPIA0"
126
126
  assert responses.calls[0].request.params == {
127
- "q": "SELECT Id, Name FROM Profile WHERE FullName = 'Test Profile Name' LIMIT 1"
127
+ "q": "SELECT Id, Name FROM Profile WHERE Name = 'Test Profile Name' LIMIT 1"
128
128
  }
129
129
  assert responses.calls[1].request.params == {
130
130
  "q": "SELECT Id, Name FROM UserLicense WHERE Name = 'Foo' LIMIT 1"
@@ -245,7 +245,7 @@ def test_task_options_error():
245
245
 
246
246
 
247
247
  @responses.activate
248
- def test_run_task_success_with_collision_check():
248
+ def test_run_task_success_with_skip_if_exists_false():
249
249
  query_url = "https://test.salesforce.com/services/data/v53.0/query/"
250
250
 
251
251
  task = create_task(
@@ -278,12 +278,52 @@ def test_run_task_success_with_collision_check():
278
278
  )
279
279
 
280
280
  result = task._run_task()
281
+
281
282
  assert result == "10056000000VGjUAAW"
282
283
  assert responses.calls[0].request.params == {
283
- "q": "SELECT Id, Name FROM Profile WHERE FullName = 'Test Profile Name' LIMIT 1"
284
+ "q": "SELECT Id, Name FROM Profile WHERE Name = 'Test Profile Name' LIMIT 1"
284
285
  }
285
286
 
286
287
 
288
+ @responses.activate
289
+ def test_run_task_success_with_skip_if_exists_true():
290
+ query_url = "https://test.salesforce.com/services/data/v53.0/query/"
291
+
292
+ task = create_task(
293
+ CreateBlankProfile,
294
+ {
295
+ "license": "Foo",
296
+ "name": "Test Profile Name",
297
+ "description": "Have fun stormin da castle",
298
+ "skip_if_exists": False,
299
+ },
300
+ )
301
+ task.org_config._latest_api_version = "53.0"
302
+
303
+ responses.add(
304
+ responses.GET,
305
+ query_url,
306
+ json={
307
+ "done": True,
308
+ "totalSize": 1,
309
+ "records": [
310
+ {
311
+ "attributes": {
312
+ "type": "Profile",
313
+ "url": "/services/data/v53.0/sobjects/Profile/10056000000VGjUAAW",
314
+ },
315
+ "Id": "10056000000VGjUAAW",
316
+ "Name": "Test Profile Name",
317
+ }
318
+ ],
319
+ },
320
+ )
321
+
322
+ with pytest.raises(TaskOptionsError) as e:
323
+ task._run_task()
324
+ assert "10056000000VGjUAAW" in str(e)
325
+
326
+
287
327
  @responses.activate
288
328
  def test_run_task_with_invalid_license():
289
329
  query_url = "https://test.salesforce.com/services/data/v53.0/query/"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cumulusci-plus
3
- Version: 5.0.19
3
+ Version: 5.0.21
4
4
  Summary: Build and release tools for Salesforce developers
5
5
  Project-URL: Homepage, https://github.com/jorgesolebur/CumulusCI
6
6
  Project-URL: Changelog, https://cumulusci.readthedocs.io/en/stable/history.html
@@ -127,7 +127,7 @@ license](https://github.com/SFDO-Tooling/CumulusCI/blob/main/LICENSE)
127
127
  and is not covered by the Salesforce Master Subscription Agreement.
128
128
 
129
129
  <!-- Changelog -->
130
- ## v5.0.19 (2025-09-04)
130
+ ## v5.0.21 (2025-09-08)
131
131
 
132
132
  <!-- Release notes generated using configuration in .github/release.yml at main -->
133
133
 
@@ -135,6 +135,6 @@ and is not covered by the Salesforce Master Subscription Agreement.
135
135
 
136
136
  ### Changes
137
137
 
138
- - Feature/pm 2055 pre post flow by [@rupeshjSFDC](https://github.com/rupeshjSFDC) in [#63](https://github.com/jorgesolebur/CumulusCI/pull/63)
138
+ - Fix profile query from tooling api field to simple salesforce. by [@rupeshjSFDC](https://github.com/rupeshjSFDC) in [#67](https://github.com/jorgesolebur/CumulusCI/pull/67)
139
139
 
140
- **Full Changelog**: https://github.com/jorgesolebur/CumulusCI/compare/v5.0.18...v5.0.19
140
+ **Full Changelog**: https://github.com/jorgesolebur/CumulusCI/compare/v5.0.20...v5.0.21
@@ -1,4 +1,4 @@
1
- cumulusci/__about__.py,sha256=iG1RqsHMM9Y4rg_H9ZqoQLdpz9vroikOtO-jPCwzbaY,23
1
+ cumulusci/__about__.py,sha256=GkhyUEGaKn6DXJU6Qo79adooo63Qsz8_lNr8trY06TE,23
2
2
  cumulusci/__init__.py,sha256=jdanFQ_i8vbdO7Eltsf4pOfvV4mwa_Osyc4gxWKJ8ng,764
3
3
  cumulusci/__main__.py,sha256=kgRH-n5AJrH_daCK_EJwH7azAUxdXEmpi-r-dPGMR6Y,43
4
4
  cumulusci/conftest.py,sha256=AIL98BDwNAQtdo8YFmLKwav0tmrQ5dpbw1cX2FyGouQ,5108
@@ -538,7 +538,7 @@ cumulusci/tasks/salesforce/network_member_group.py,sha256=sWkRr4A6Zm_Iv_7uzPmiNj
538
538
  cumulusci/tasks/salesforce/nonsourcetracking.py,sha256=kKaQGEOErCIaE53A_TO4Hc5Afhv2aIi97UjPAN-4cQM,8720
539
539
  cumulusci/tasks/salesforce/org_settings.py,sha256=0Xg_voNeHV94husGpo7HTpA0QpqQ1NBJKqBsvLM24NA,7105
540
540
  cumulusci/tasks/salesforce/package_upload.py,sha256=AKrguElY4cTprmReq4s5BtIuG-QoxeaP9-YT8385Hzo,13024
541
- cumulusci/tasks/salesforce/profiles.py,sha256=J3fO72UdnSct7HpPUTwVWVwbSWnAyfHxCGYqMcVF05M,3724
541
+ cumulusci/tasks/salesforce/profiles.py,sha256=vvru3hu586EgcSvtzYJZV7BfoP_x83ZjzRty1l0vbjY,3848
542
542
  cumulusci/tasks/salesforce/promote_package_version.py,sha256=2mD_iOzkbelaglH_NJKfR_MJoJOVpnqPuaGmnRTL5Go,15186
543
543
  cumulusci/tasks/salesforce/retrieve_profile.py,sha256=VTO--xWQJ7sidMMkvrfvgd2fSUaumQWJK25Aqa0oSNU,7798
544
544
  cumulusci/tasks/salesforce/salesforce_files.py,sha256=91VHtOkZzi9Tabfy0IDFWBW5bZPi8xOPb_4RPCqmFaY,9193
@@ -583,7 +583,7 @@ cumulusci/tasks/salesforce/tests/test_install_package_version.py,sha256=f_hHO83v
583
583
  cumulusci/tasks/salesforce/tests/test_network_member_group.py,sha256=N0ZXcy74nNQdpmGrBnkVzY6mALW4KxoYhQtARrZJ578,13968
584
584
  cumulusci/tasks/salesforce/tests/test_nonsourcetracking.py,sha256=14yjidvGa0Q85n8uoWXwMeFsOWYJGqvFShevAbidfbU,9154
585
585
  cumulusci/tasks/salesforce/tests/test_org_settings.py,sha256=SRpqihPzRy29WEinOlU-l-DU8viyFP1guIzjfROTK7A,13532
586
- cumulusci/tasks/salesforce/tests/test_profiles.py,sha256=qe1A6s_0ckuRJQsTDPbVr0QMuCaYvzH7dAG5ufkOmGc,9462
586
+ cumulusci/tasks/salesforce/tests/test_profiles.py,sha256=biS9Btb7DVnZnLd0FTo50TS0QsXda84tDXZgvTvksvI,10532
587
587
  cumulusci/tasks/salesforce/tests/test_retrieve_profile.py,sha256=Ujbt1k34CmN6-CvcKhTY_vgVp-OtpvGb0NDXS-vGYSQ,9858
588
588
  cumulusci/tasks/salesforce/tests/test_salesforce_files.py,sha256=eBeyanF7ygldukf9TQrPSXmeTU5sLQi_vNHVplx8dd0,8005
589
589
  cumulusci/tasks/salesforce/tests/test_sourcetracking.py,sha256=n9dyJ21OZs8P574Ds3uzVESCVl6fK0_RYv2bKI1dm3E,12540
@@ -740,9 +740,9 @@ cumulusci/vcs/tests/dummy_service.py,sha256=RltOUpMIhSDNrfxk0LhLqlH4ppC0sK6NC2cO
740
740
  cumulusci/vcs/tests/test_vcs_base.py,sha256=9mp6uZ3lTxY4onjUNCucp9N9aB3UylKS7_2Zu_hdAZw,24331
741
741
  cumulusci/vcs/tests/test_vcs_bootstrap.py,sha256=N0NA48-rGNIIjY3Z7PtVnNwHObSlEGDk2K55TQGI8g4,27954
742
742
  cumulusci/vcs/utils/__init__.py,sha256=py4fEcHM7Vd0M0XWznOlywxaeCtG3nEVGmELmEKVGU8,869
743
- cumulusci_plus-5.0.19.dist-info/METADATA,sha256=H6WNavlWKMBgslTFJcl_b64AJF_owi7XhFRlYg6G5RI,5750
744
- cumulusci_plus-5.0.19.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
745
- cumulusci_plus-5.0.19.dist-info/entry_points.txt,sha256=nTtu04b9iLXhzADcTrb5PwmdXE6e2MTUAMh9OK6Z2pg,80
746
- cumulusci_plus-5.0.19.dist-info/licenses/AUTHORS.rst,sha256=PvewjKImdKPhhJ6xR2EEZ4T7GbpY2ZeAeyWm2aLtiMQ,676
747
- cumulusci_plus-5.0.19.dist-info/licenses/LICENSE,sha256=NFsF_s7RVXk2dU6tmRAN8wF45pnD98VZ5IwqOsyBcaU,1499
748
- cumulusci_plus-5.0.19.dist-info/RECORD,,
743
+ cumulusci_plus-5.0.21.dist-info/METADATA,sha256=UBDHG9IrjrryteDIlpuyX65BZsz44DcsjJCbMXm2-gs,5783
744
+ cumulusci_plus-5.0.21.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
745
+ cumulusci_plus-5.0.21.dist-info/entry_points.txt,sha256=nTtu04b9iLXhzADcTrb5PwmdXE6e2MTUAMh9OK6Z2pg,80
746
+ cumulusci_plus-5.0.21.dist-info/licenses/AUTHORS.rst,sha256=PvewjKImdKPhhJ6xR2EEZ4T7GbpY2ZeAeyWm2aLtiMQ,676
747
+ cumulusci_plus-5.0.21.dist-info/licenses/LICENSE,sha256=NFsF_s7RVXk2dU6tmRAN8wF45pnD98VZ5IwqOsyBcaU,1499
748
+ cumulusci_plus-5.0.21.dist-info/RECORD,,