def test_get_email_from_koji_obj(self, has_kerberos, email_domain, expected_email, workflow): session = MockedClientSession('', has_kerberos=has_kerberos) flexmock(koji, ClientSession=lambda hub, opts: session) workflow.data.postbuild_results[KojiImportPlugin.key] = MOCK_KOJI_BUILD_ID smtp_map = { 'from_address': '*****@*****.**', 'host': 'smtp.bar.com', 'domain': email_domain, } rcm = {'version': 1, 'smtp': smtp_map, 'openshift': {'url': 'https://something.com'}} workflow.conf = Configuration(raw_config=rcm) add_koji_map_in_workflow(workflow, hub_url='/', root_url='', ssl_certs_dir='/certs') p = SendMailPlugin(workflow, email_domain=email_domain) koji_task_owner = get_koji_task_owner(p.session, p.koji_task_id) try: found_email = p._get_email_from_koji_obj(koji_task_owner) assert expected_email == found_email except RuntimeError as exc: if not email_domain: assert str(exc) == "Empty email_domain specified" else: assert str(exc) == "Koji task owner name is missing"
def test_get_email_from_koji_obj(self, monkeypatch, has_kerberos, koji_task_id, email_domain, expected_email): class WF(object): exit_results = { KojiImportPlugin.key: MOCK_KOJI_BUILD_ID } plugin_workspace = {} monkeypatch.setenv("BUILD", json.dumps({ 'metadata': { 'labels': { 'koji-task-id': koji_task_id, }, 'name': {}, } })) session = MockedClientSession('', has_kerberos=has_kerberos) flexmock(koji, ClientSession=lambda hub, opts: session) workflow = WF() workflow.plugin_workspace[ReactorConfigPlugin.key] = {} workflow.plugin_workspace[ReactorConfigPlugin.key][WORKSPACE_CONF_KEY] =\ ReactorConfig({'version': 1}) add_koji_map_in_workflow(workflow, hub_url='/', root_url='', ssl_certs_dir='/certs') p = SendMailPlugin(None, workflow, email_domain=email_domain) koji_task_owner = get_koji_task_owner(p.session, p.koji_task_id) try: found_email = p._get_email_from_koji_obj(koji_task_owner) assert expected_email == found_email except RuntimeError as exc: if not email_domain: assert str(exc) == "Empty email_domain specified" else: assert str(exc) == "Koji task owner name is missing"