diff --git a/cumulusci/core/config/org_config.py b/cumulusci/core/config/org_config.py index b3f191d172..bf0ab4166f 100644 --- a/cumulusci/core/config/org_config.py +++ b/cumulusci/core/config/org_config.py @@ -26,7 +26,6 @@ SANDBOX_MYDOMAIN_RE = re.compile(r"\.cs\d+\.my\.(.*)salesforce\.com") MYDOMAIN_RE = re.compile(r"\.my\.(.*)salesforce\.com") - VersionInfo = namedtuple("VersionInfo", ["id", "number"]) @@ -155,10 +154,20 @@ def _refresh_token(self, keychain, connected_app): @property def lightning_base_url(self): instance_url = self.instance_url.rstrip("/") + if "SF_CUSTOM_URL_RE" in os.environ and "SF_CUSTOM_URL_BASE" in os.environ: + checkCustom = True + SF_CUSTOM_URL_RE = re.compile(r"%s" % os.environ.get("SF_CUSTOM_URL_RE")) + else: + checkCustom = False + if SANDBOX_MYDOMAIN_RE.search(instance_url): return SANDBOX_MYDOMAIN_RE.sub(r".lightning.\1force.com", instance_url) elif MYDOMAIN_RE.search(instance_url): return MYDOMAIN_RE.sub(r".lightning.\1force.com", instance_url) + elif checkCustom and SF_CUSTOM_URL_RE.search(instance_url): + return SF_CUSTOM_URL_RE.sub( + r"%s" % os.environ.get("SF_CUSTOM_URL_BASE"), instance_url + ) else: return self.instance_url.split(".")[0] + ".lightning.force.com" diff --git a/cumulusci/core/config/tests/test_config.py b/cumulusci/core/config/tests/test_config.py index 9656964daa..88a9dff852 100644 --- a/cumulusci/core/config/tests/test_config.py +++ b/cumulusci/core/config/tests/test_config.py @@ -1035,6 +1035,22 @@ def test_lightning_base_url__mydomain(self): config = OrgConfig({"instance_url": "https://foo.my.salesforce.com"}, "test") assert config.lightning_base_url == "https://foo.lightning.force.com" + def test_lightning_base_url__env_provided(self): + with mock.patch.dict( + os.environ, + { + "SF_CUSTOM_URL_RE": "\\.test\\.url\\.dev", + "SF_CUSTOM_URL_BASE": ".api.url.dev", + }, + ): + config = OrgConfig( + { + "instance_url": "https://special.custom.test.url.dev", + }, + "test", + ) + assert config.lightning_base_url == "https://special.custom.api.url.dev" + @responses.activate def test_get_salesforce_version(self): responses.add(