def test_connection__no_connected_app(self, mock_sf): org_config = Mock() proj_config = Mock() proj_config.keychain.get_service.side_effect = ServiceNotConfigured get_simple_salesforce_connection(proj_config, org_config) mock_sf.return_value.headers.setdefault.assert_called_once_with( "Sforce-Call-Options", "client={}".format("CumulusCI/{}".format(__version__)), )
def org_shell(runtime, org_name, script=None, python=None): org_name, org_config = runtime.get_org(org_name) org_config.refresh_oauth_token(runtime.keychain) sf = get_simple_salesforce_connection(runtime.project_config, org_config) globals = { "sf": sf, "org_config": org_config, "project_config": runtime.project_config, } if script: if python: raise click.UsageError("Cannot specify both --script and --python") runpy.run_path(script, init_globals=globals) elif python: exec(python) else: code.interact( banner=f"Use `sf` to access org `{org_name}` via simple_salesforce", local=globals, ) # Save the org config in case it was modified runtime.keychain.set_org(org_config)
def test_connection(self, mock_sf): org_config = Mock() proj_config = Mock() service_mock = Mock() service_mock.client_id = "TEST" proj_config.keychain.get_service.return_value = service_mock get_simple_salesforce_connection(proj_config, org_config) mock_sf.assert_called_once_with( instance_url=org_config.instance_url, session_id=org_config.access_token, version=proj_config.project__package__api_version, ) mock_sf.return_value.headers.setdefault.assert_called_once_with( "Sforce-Call-Options", "client={}".format(service_mock.client_id))
def test_sf_api_retries(mock_http_response): org_config = Mock() proj_config = Mock() service_mock = Mock() service_mock.client_id = "TEST" proj_config.keychain.get_service.return_value = service_mock org_config.instance_url = "https://enterprise-dream-6536.cs41.my.salesforce.com" org_config.access_token = "httpsenterprise-dream-6536.cs41.my.salesforce.com" sf = get_simple_salesforce_connection(proj_config, org_config, api_version="42.0") adapter = sf.session.get_adapter("http://") assert 0.3 == adapter.max_retries.backoff_factor assert 502 in adapter.max_retries.status_forcelist with patch("urllib3.connectionpool.HTTPConnectionPool._make_request" ) as _make_request: _make_request.side_effect = [ ConnectionResetError, mock_http_response(status=200), ] try: sf.describe() except JSONDecodeError: # We're not returning a message to decode pass assert 2 == _make_request.call_count
def _init_api(self, base_url=None): rv = get_simple_salesforce_connection(self.project_config, self.org_config, api_version=self.api_version) if base_url is not None: rv.base_url += base_url return rv
def _init_task(self): self.devhub_config = self._init_devhub() self.tooling = get_simple_salesforce_connection( self.project_config, self.devhub_config, api_version=self.api_version, base_url="tooling", )
def _init_api(self, base_url=None): rv = get_simple_salesforce_connection( self.project_config, self.org_config, api_version=self.api_version, base_url=base_url, ) return rv
def test_connection__explicit_api_version(): org_config = Mock() proj_config = Mock() service_mock = Mock() service_mock.client_id = "TEST" proj_config.keychain.get_service.return_value = service_mock with patch("simple_salesforce.Salesforce") as mock_sf: get_simple_salesforce_connection(proj_config, org_config, api_version="42.0") mock_sf.assert_called_once_with( instance_url=org_config.instance_url, session_id=org_config.access_token, version="42.0", ) mock_sf.return_value.headers.setdefault.assert_called_once_with( "Sforce-Call-Options", "client={}".format(service_mock.client_id))
def org_shell(config, org_name): org_name, org_config = config.get_org(org_name) org_config.refresh_oauth_token(config.keychain) sf = get_simple_salesforce_connection(config.project_config, org_config) code.interact( banner=f"Use `sf` to access org `{org_name}` via simple_salesforce", local={ "sf": sf, "org_config": org_config, "project_config": config.project_config, }, ) # Save the org config in case it was modified config.keychain.set_org(org_config)
def _install_package_version(project_config, org_config, options): tooling = get_simple_salesforce_connection(project_config, org_config, base_url="tooling") PackageInstallRequest = cast(SFType, tooling.PackageInstallRequest) PackageInstallRequest.base_url = PackageInstallRequest.base_url.replace( "/sobjects/", "/tooling/sobjects/") request = PackageInstallRequest.create({ "EnableRss": options.get("activateRSS", True), "NameConflictResolution": options.get("name_conflict_resolution", "Block"), "Password": options.get("password"), "SecurityType": options.get("security_type", "FULL"), "SubscriberPackageVersionKey": options["version_id"], }) poll(functools.partial(_wait_for_package_install, tooling, request))
def _init_api(self, base_url=None): client = get_simple_salesforce_connection(self.project_config, self.org) if base_url is not None: client.base_url += base_url return client
def _get_sf_clients(project_config, org_config): from cumulusci.salesforce_api.utils import get_simple_salesforce_connection sf = get_simple_salesforce_connection(project_config, org_config) return sf, _init_bulk(sf, org_config)
def sf(request, project_config, org_config): """Get a simple-salesforce client for org_config.""" sf = get_simple_salesforce_connection(project_config, org_config) return sf