salespyforce 1.4.0.dev0__py3-none-any.whl → 1.4.0.dev2__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.
@@ -1,23 +1,23 @@
1
1
  # -*- coding: utf-8 -*-
2
+ # bandit: skip=B101
2
3
  """
3
- :Module: salespyforce.utils.tests.test_sobjects
4
+ :Module: salespyforce.utils.tests.test_soql
4
5
  :Synopsis: This module is used by pytest to test performing SOQL queries
5
6
  :Created By: Jeff Shurtliff
6
7
  :Last Modified: Jeff Shurtliff
7
- :Modified Date: 29 May 2023
8
+ :Modified Date: 20 Dec 2025
8
9
  """
9
10
 
10
- from . import resources
11
11
 
12
-
13
- def test_soql_query():
12
+ def test_soql_query(salesforce_unit):
14
13
  """This function tests the ability to perform a SOQL query.
15
14
 
16
15
  .. versionadded:: 1.1.0
16
+
17
+ .. version-changed:: 1.4.0
18
+ The function now utilizes the ``salesforce_unit`` fixture.
17
19
  """
18
- sfdc_object = resources.get_core_object()
19
20
  soql_statement = 'SELECT Id FROM Account LIMIT 1'
20
- soql_response = sfdc_object.soql_query(soql_statement)
21
+ soql_response = salesforce_unit.soql_query(soql_statement)
21
22
  assert 'done' in soql_response and soql_response.get('done') is True
22
23
  assert 'totalSize' in soql_response and 'records' in soql_response
23
-
@@ -1,10 +1,11 @@
1
1
  # -*- coding: utf-8 -*-
2
+ # bandit: skip=B101
2
3
  """
3
- :Module: salespyforce.utils.tests.test_sobjects
4
- :Synopsis: This module is used by pytest to test performing SOQL queries
4
+ :Module: salespyforce.utils.tests.test_sosl
5
+ :Synopsis: This module is used by pytest to test performing SOSL queries
5
6
  :Created By: Jeff Shurtliff
6
7
  :Last Modified: Jeff Shurtliff
7
- :Modified Date: 29 May 2023
8
+ :Modified Date: 20 Dec 2025
8
9
  """
9
10
 
10
11
  import requests
@@ -12,18 +13,17 @@ import requests
12
13
  from . import resources
13
14
 
14
15
 
15
- def test_search_string(monkeypatch):
16
+ def test_search_string(monkeypatch, salesforce_unit):
16
17
  """This function tests the ability to search for a string using an SOSL query.
17
18
 
18
19
  .. versionadded:: 1.1.0
19
- """
20
- # Instantiate the core object
21
- sfdc_object = resources.get_core_object()
22
20
 
21
+ .. version-changed:: 1.4.0
22
+ The function now utilizes the ``salesforce_unit`` fixture.
23
+ """
23
24
  # Overwrite the requests.post functionality with the mock_success_post() function
24
25
  monkeypatch.setattr(requests, 'get', resources.mock_sosl_get)
25
26
 
26
27
  # Perform the mock API call
27
- result = sfdc_object.search_string('Account')
28
+ result = salesforce_unit.search_string('Account')
28
29
  assert 'searchRecords' in result
29
-
@@ -0,0 +1,70 @@
1
+ # -*- coding: utf-8 -*-
2
+ # bandit: skip=B101
3
+ """
4
+ :Module: salespyforce.utils.tests.test_version_utils
5
+ :Synopsis: Pytest suite for salespyforce.utils.version helpers
6
+ :Created By: Jeff Shurtliff
7
+ :Last Modified: Jeff Shurtliff
8
+ :Modified Date: 20 Dec 2025
9
+ """
10
+
11
+ import importlib
12
+ import importlib.metadata as importlib_metadata
13
+
14
+ from salespyforce.utils import version as version_utils
15
+
16
+
17
+ def test_get_full_version_returns_metadata(monkeypatch):
18
+ """This function tests get_full_version returns the package metadata."""
19
+ expected_version = "1.2.3"
20
+ monkeypatch.setattr(
21
+ version_utils, "version", lambda package: expected_version
22
+ )
23
+
24
+ assert version_utils.get_full_version() == expected_version
25
+
26
+
27
+ def test_get_full_version_handles_missing_package(monkeypatch, caplog):
28
+ """This function tests get_full_version fallback when package is missing."""
29
+ def raise_not_found(_package):
30
+ raise version_utils.PackageNotFoundError("salespyforce")
31
+
32
+ monkeypatch.setattr(version_utils, "version", raise_not_found)
33
+
34
+ with caplog.at_level("WARNING"):
35
+ version_string = version_utils.get_full_version()
36
+
37
+ assert version_string == "0.0.0"
38
+ assert any("falling back to '0.0.0'" in message for message in caplog.messages)
39
+
40
+
41
+ def test_get_major_minor_version_returns_two_components(monkeypatch):
42
+ """This function tests extracting the major.minor version components."""
43
+ monkeypatch.setattr(
44
+ version_utils, "get_full_version", lambda: "2.3.4"
45
+ )
46
+
47
+ assert version_utils.get_major_minor_version() == "2.3"
48
+
49
+
50
+ def test_get_major_minor_version_returns_full_when_missing_minor(monkeypatch):
51
+ """This function tests get_major_minor_version with a single-part version."""
52
+ monkeypatch.setattr(version_utils, "get_full_version", lambda: "7")
53
+
54
+ assert version_utils.get_major_minor_version() == "7"
55
+
56
+
57
+ def test_dunder_version_matches_full_version(monkeypatch):
58
+ """This function tests __version__ initialization uses get_full_version."""
59
+ real_version_function = importlib_metadata.version
60
+ expected_version = "9.8.7"
61
+ monkeypatch.setattr(
62
+ importlib_metadata, "version", lambda package: expected_version
63
+ )
64
+
65
+ reloaded_module = importlib.reload(version_utils)
66
+ assert reloaded_module.__version__ == expected_version
67
+ assert reloaded_module.get_full_version() == expected_version
68
+
69
+ importlib_metadata.version = real_version_function
70
+ importlib.reload(version_utils)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: salespyforce
3
- Version: 1.4.0.dev0
3
+ Version: 1.4.0.dev2
4
4
  Summary: A Python toolset for performing Salesforce API calls
5
5
  License: MIT License
6
6
 
@@ -63,7 +63,7 @@ A Python toolset for performing Salesforce API calls
63
63
  <td>Latest Beta/RC Release</td>
64
64
  <td>
65
65
  <a href='https://pypi.org/project/salespyforce/#history'>
66
- <img alt="PyPI" src="https://img.shields.io/badge/pypi-1.3.0rc3-blue">
66
+ <img alt="PyPI" src="https://img.shields.io/badge/pypi-1.4.0.dev1-blue">
67
67
  </a>
68
68
  </td>
69
69
  </tr>
@@ -140,6 +140,10 @@ A Python toolset for performing Salesforce API calls
140
140
  </tr>
141
141
  </table>
142
142
 
143
+ ## Overview
144
+ salespyforce is a Python toolkit focused on interacting with Salesforce APIs, with a primary `Salesforce` class
145
+ that centralizes authentication, version selection, and access to helper feature sets (Chatter, Knowledge).
146
+
143
147
  ## Installation
144
148
  The package can be installed via pip using the syntax below.
145
149
 
@@ -147,14 +151,6 @@ The package can be installed via pip using the syntax below.
147
151
  pip install salespyforce --upgrade
148
152
  ```
149
153
 
150
- You may also clone the repository and install from source using below.
151
-
152
- ```sh
153
- git clone git://github.com/jeffshurtliff/salespyforce.git
154
- cd salespyforce/
155
- python setup.py install
156
- ```
157
-
158
154
  ## Change Log
159
155
  The change log can be found in the [documentation](https://salespyforce.readthedocs.io/en/latest/changelog.html).
160
156
 
@@ -0,0 +1,27 @@
1
+ salespyforce/__init__.py,sha256=W2RY2_kojLcXtTHJrto5FtU6q1umVPaU1RZe_QkFgNY,2031
2
+ salespyforce/api.py,sha256=fSMZYH1bpdZGS2sq924f1we0Bkubx8rrTx810Xyl3Ug,7732
3
+ salespyforce/chatter.py,sha256=GI9iXmq2mrbrH7daW8Kc3gt2O04dRthSVocJq4BVwCU,7494
4
+ salespyforce/core.py,sha256=x-D8HsjsRSS7ti1XnwSxKFfqysntI8TttgKBqjsKwh4,52661
5
+ salespyforce/errors/__init__.py,sha256=Tnl4lB2ycpK2UmwmoBoSYuWDtovDNA4CxC5Cku2hDYs,320
6
+ salespyforce/errors/exceptions.py,sha256=6ATDNCPNXnjOzXcaaLZVUy39lsFt2Se5cCvqkd_8faM,17057
7
+ salespyforce/errors/handlers.py,sha256=8Hp-WrpYooMlC7cuuowTkOFyBH8OQFfHKmB8XxDPlyk,479
8
+ salespyforce/knowledge.py,sha256=5a1kllrggh83vOmFrR-NLaz2YDpoKQweQ1B4e2AwghA,25407
9
+ salespyforce/utils/__init__.py,sha256=ATE6BsWd2qDxsy1fQpvaoSJimZgfCmNPYpcFEucES6Q,292
10
+ salespyforce/utils/core_utils.py,sha256=_uVVxHcVwCb-h6m-B7IKY77ItaSsHtGwydZN923yIic,7038
11
+ salespyforce/utils/helper.py,sha256=zwbysqwddWwhp3mfzKJf0aeTTkVqoR35L9dLu6ZVJtU,5661
12
+ salespyforce/utils/log_utils.py,sha256=-7qgSNCUQRstRgz2wXBX6LRWO-GMjIXS5WjxkHGvBHk,11936
13
+ salespyforce/utils/tests/__init__.py,sha256=Iv7M9gPyKv5f5tR-pxc089cd2nrWn5M0ZZpWqiB2htc,242
14
+ salespyforce/utils/tests/conftest.py,sha256=zYB5pYNtRHc6cIxY_cBMQHNM52Is6NjLfcCywCD3-Bw,6661
15
+ salespyforce/utils/tests/resources.py,sha256=-PEqzLMsEQSVj3dz_8VTHXINbSeMvmjX3gZRMTJgoac,4774
16
+ salespyforce/utils/tests/test_core_utils.py,sha256=8b3qjzr028wVeQAxBvIeajcqnWCsqUhNgqcquznGQKg,7272
17
+ salespyforce/utils/tests/test_instantiate_object.py,sha256=O_DTljj_QCBZlDiA1KBUmSL2CZfsVU_7K2h6ypEN0D8,2002
18
+ salespyforce/utils/tests/test_log_utils.py,sha256=FxPC21vXRQbFvqmTi_FL1DsGwuH8JHPkl9XytVoe7uY,2328
19
+ salespyforce/utils/tests/test_sobjects.py,sha256=AeKli_LjSkeaspGxHZoZsM1IafKS2HkJ1wzajSXt6Dc,2120
20
+ salespyforce/utils/tests/test_soql.py,sha256=SSOAN-4QZNpwUON-cLndb5W6AAs28Ja1u-Zt1WBx0VA,776
21
+ salespyforce/utils/tests/test_sosl.py,sha256=3Ny1uF0onjcvI_InfMYRdh31rR5MJADTB3DWSm--EjE,868
22
+ salespyforce/utils/tests/test_version_utils.py,sha256=njRKMiwtCCyUHEAFvfxvavuh03fJ_EupM1TUYmdsZAo,2465
23
+ salespyforce/utils/version.py,sha256=uEWnq3DHmN9wZVohiRCRE1KzNF1XVhP4oVY4vBBgoVU,1781
24
+ salespyforce-1.4.0.dev2.dist-info/LICENSE,sha256=b_Ch0pvcZN6Mr4dQ9Bo3It-J3MihQYcj_-EIdaZHuWw,1071
25
+ salespyforce-1.4.0.dev2.dist-info/METADATA,sha256=7Loir-UVgxd2NpPpLKFQo-0nnt540mMC2ZSh-0uIyxA,10400
26
+ salespyforce-1.4.0.dev2.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
27
+ salespyforce-1.4.0.dev2.dist-info/RECORD,,
@@ -1,23 +0,0 @@
1
- salespyforce/__init__.py,sha256=W2RY2_kojLcXtTHJrto5FtU6q1umVPaU1RZe_QkFgNY,2031
2
- salespyforce/api.py,sha256=JoqYyOo7Psx-l-bEC7iFdFfQVziIkqINcOKOnlpa_jM,5763
3
- salespyforce/chatter.py,sha256=GI9iXmq2mrbrH7daW8Kc3gt2O04dRthSVocJq4BVwCU,7494
4
- salespyforce/core.py,sha256=OPn5TsY9oCjg_jtEFWCq3yQz4-B7pTeYKsSGOtfo8yI,49148
5
- salespyforce/errors/__init__.py,sha256=Tnl4lB2ycpK2UmwmoBoSYuWDtovDNA4CxC5Cku2hDYs,320
6
- salespyforce/errors/exceptions.py,sha256=6ATDNCPNXnjOzXcaaLZVUy39lsFt2Se5cCvqkd_8faM,17057
7
- salespyforce/errors/handlers.py,sha256=8Hp-WrpYooMlC7cuuowTkOFyBH8OQFfHKmB8XxDPlyk,479
8
- salespyforce/knowledge.py,sha256=YCUbVDr8n23mdUzeuqlNToHIaaD9mzcSZ5Rvr_J8kAw,24770
9
- salespyforce/utils/__init__.py,sha256=ATE6BsWd2qDxsy1fQpvaoSJimZgfCmNPYpcFEucES6Q,292
10
- salespyforce/utils/core_utils.py,sha256=ESuQVb8L00KoP56_nAKTj3i09u_6BqK0MxJtYV5QbwI,5674
11
- salespyforce/utils/helper.py,sha256=zwbysqwddWwhp3mfzKJf0aeTTkVqoR35L9dLu6ZVJtU,5661
12
- salespyforce/utils/log_utils.py,sha256=085OBfJNxwJSjE3lQzmixjsK1s9akGvYG_kJpUPvDJ4,11799
13
- salespyforce/utils/tests/__init__.py,sha256=Iv7M9gPyKv5f5tR-pxc089cd2nrWn5M0ZZpWqiB2htc,242
14
- salespyforce/utils/tests/resources.py,sha256=-PEqzLMsEQSVj3dz_8VTHXINbSeMvmjX3gZRMTJgoac,4774
15
- salespyforce/utils/tests/test_instantiate_object.py,sha256=vxeXuzJ3OJrGlNFM4gOUfsifefRkr4tDUoElC90a0uo,1422
16
- salespyforce/utils/tests/test_sobjects.py,sha256=H_drUPsopu6y0nAxHZkZD1PAP5pd5jE15hqwC0qdDso,1846
17
- salespyforce/utils/tests/test_soql.py,sha256=xSVNuJo7U4vNqWXGbw2ue66p7-RQ-PuBlql1vkddl3M,715
18
- salespyforce/utils/tests/test_sosl.py,sha256=tKKirOtDFmROMGvMsPuG1cM603zQIeXXJHVgWYXOqYw,815
19
- salespyforce/utils/version.py,sha256=uEWnq3DHmN9wZVohiRCRE1KzNF1XVhP4oVY4vBBgoVU,1781
20
- salespyforce-1.4.0.dev0.dist-info/LICENSE,sha256=b_Ch0pvcZN6Mr4dQ9Bo3It-J3MihQYcj_-EIdaZHuWw,1071
21
- salespyforce-1.4.0.dev0.dist-info/METADATA,sha256=H5ENENMftGOHZAvC2BQUEJ02SEqTwU1WgErPbSdKvGg,10346
22
- salespyforce-1.4.0.dev0.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
23
- salespyforce-1.4.0.dev0.dist-info/RECORD,,