def test_inject_namespace__unmanaged(self): name = "___NAMESPACE___test" content = "%%%NAMESPACE%%%|%%%NAMESPACE_DOT%%%|%%%NAMESPACED_ORG%%%|%%%NAMESPACE_OR_C%%%|%%%NAMESPACED_ORG_OR_C%%%" name, content = utils.inject_namespace(name, content, namespace="ns") assert name == "test" assert content == "|||c|c"
def _process_json(self, body): """Replace namespace tokens and randomize username domains.""" user_id = self.org_config.user_id body = body.replace("%%%USERID%%%", user_id) namespace = self.project_config.project__package__namespace if "managed" in self.options: managed = process_bool_arg(self.options["managed"]) else: managed = ( bool(namespace) and namespace in self.org_config.installed_packages ) _, body = inject_namespace( "composite", body, namespace=namespace, managed=managed, namespaced_org=self.options.get("namespaced", self.org_config.namespaced), ) if self.options.get("randomize_username", True): random_tld = "".join(random.choices(string.ascii_lowercase, k=4)) body = re.sub( r'("Username": .[\w-]+@[\w-]+\.)+[\w-]+', fr"\1{random_tld}", body ) return body
def _prepare_apex(self, apex): # Process namespace tokens namespace = self.project_config.project__package__namespace if "managed" in self.options: managed = process_bool_arg(self.options["managed"]) else: managed = ( bool(namespace) and namespace in self.org_config.installed_packages ) if "namespaced" in self.options: namespaced = process_bool_arg(self.options["namespaced"]) else: namespaced = bool(namespace) and namespace == self.org_config.namespace _, apex = inject_namespace( "", apex, namespace=namespace, managed=managed, namespaced_org=namespaced, ) # This is an extra token which is not handled by inject_namespace. apex = apex.replace( "%%%NAMESPACED_RT%%%", namespace + "." if namespaced else "" ) # Process optional parameter token replacement param1 = self.options.get("param1") or "" apex = apex.replace("%%%PARAM_1%%%", param1) param2 = self.options.get("param2") or "" apex = apex.replace("%%%PARAM_2%%%", param2) return apex
def test_inject_namespace__namespaced_org(self): name = "___NAMESPACE___test" content = "%%%NAMESPACE%%%|%%%NAMESPACE_DOT%%%|%%%NAMESPACED_ORG%%%|%%%NAMESPACE_OR_C%%%|%%%NAMESPACED_ORG_OR_C%%%" name, content = utils.inject_namespace( name, content, namespace="ns", managed=True, namespaced_org=True ) assert name == "ns__test" assert content == "ns__|ns.|ns__|ns|ns"
def test_inject_namespace__managed(self): logger = mock.Mock() name = "___NAMESPACE___test" content = "%%%NAMESPACE%%%|%%%NAMESPACE_DOT%%%|%%%NAMESPACED_ORG%%%|%%%NAMESPACE_OR_C%%%|%%%NAMESPACED_ORG_OR_C%%%" name, content = utils.inject_namespace( name, content, namespace="ns", managed=True, logger=logger ) assert name == "ns__test" assert content == "ns__|ns.||ns|c"
def _inject_namespace(self, text): """Inject the namespace into the given text if running in managed mode.""" # We might not have an org yet if this is called from _init_options # while freezing steps for metadeploy. if self.org_config is None: return text return inject_namespace( "", text, namespace=self.options["namespace_inject"], managed=self.options.get("managed") or False, namespaced_org=self.options.get("namespaced_org"), )[1]
def _inject_namespace(self, text): """Inject the namespace into the given text if running in managed mode.""" return inject_namespace("", text, self.options.get("namespace_inject"), self.options["managed"])[1]