Exemplo n.º 1
0
    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__)),
        )
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
    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))
Exemplo n.º 4
0
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
Exemplo n.º 5
0
    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
Exemplo n.º 6
0
 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",
     )
Exemplo n.º 7
0
    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
Exemplo n.º 8
0
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))
Exemplo n.º 9
0
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)
Exemplo n.º 10
0
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))
Exemplo n.º 11
0
 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
Exemplo n.º 12
0
    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)
Exemplo n.º 13
0
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