本文整理汇总了Python中changes.listeners.mail.MailNotificationHandler类的典型用法代码示例。如果您正苦于以下问题:Python MailNotificationHandler类的具体用法?Python MailNotificationHandler怎么用?Python MailNotificationHandler使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了MailNotificationHandler类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_multiple_jobs
def test_multiple_jobs(self):
project = self.create_project()
build = self.create_build(project, result=Result.failed)
job1 = self.create_job(build, result=Result.failed)
job2 = self.create_job(build, result=Result.failed)
plan1 = self.create_plan(project)
plan2 = self.create_plan(project)
# Plan1 options.
db.session.add(ItemOption(
item_id=plan1.id,
name='mail.notify-addresses',
value='[email protected]',
))
db.session.add(ItemOption(
item_id=plan1.id,
name='mail.notify-author',
value='0',
))
# Plan2 options.
db.session.add(ItemOption(
item_id=plan2.id,
name='mail.notify-addresses',
value='[email protected]',
))
db.session.add(ItemOption(
item_id=plan2.id,
name='mail.notify-author',
value='1',
))
# Project options (notify-author is set to test that plan options can
# override it).
db.session.add(ProjectOption(
project_id=project.id,
name='mail.notify-author',
value='0',
))
# Set notify addresses to verify that it is not used when all jobs
# override it.
db.session.add(ProjectOption(
project_id=project.id,
name='mail.notify-addresses',
value='[email protected]',
))
db.session.flush()
for job, plan in [(job1, plan1), (job2, plan2)]:
self.create_job_plan(job, plan)
db.session.commit()
handler = MailNotificationHandler()
assert handler.get_build_options(build) == {
'mail.notify-addresses': {'[email protected]', '[email protected]'},
'mail.notify-addresses-revisions': set(),
'mail.notify-author': True,
}
示例2: test_simple
def test_simple(self):
project = self.create_project()
plan = self.create_plan(project)
build = self.create_build(project, result=Result.failed)
job = self.create_job(build, result=Result.failed)
db.session.add(ItemOption(
item_id=plan.id,
name='mail.notify-author',
value='0',
))
db.session.add(ProjectOption(
project_id=project.id,
name='mail.notify-author',
value='1',
))
db.session.add(ProjectOption(
project_id=project.id,
name='mail.notify-addresses',
value='[email protected]',
))
db.session.flush()
self.create_job_plan(job, plan)
db.session.commit()
handler = MailNotificationHandler()
assert handler.get_build_options(build) == {
'mail.notify-addresses': {'[email protected]'},
'mail.notify-addresses-revisions': set(),
'mail.notify-author': False,
}
示例3: test_with_revision_addressees
def test_with_revision_addressees(self):
db.session.add(ProjectOption(project=self.project, name="mail.notify-author", value="1"))
db.session.add(
ProjectOption(
project=self.project, name="mail.notify-addresses-revisions", value="[email protected], [email protected]"
)
)
author = self.create_author("[email protected]")
patch = Patch(repository=self.repo, project=self.project, label="foo", diff="")
source = self.create_source(self.project, patch=patch)
build = self.create_build(project=self.project, source=source, author=author, result=Result.failed)
job = self.create_job(build=build)
db.session.commit()
handler = MailNotificationHandler()
recipients = handler.get_recipients(job)
assert recipients == ["{0} <[email protected]>".format(author.name)]
build = self.create_build(project=self.project, result=Result.failed, author=author)
job = self.create_job(build=build)
job_finished_handler(job)
handler = MailNotificationHandler()
recipients = handler.get_recipients(job)
assert recipients == ["{0} <[email protected]>".format(author.name), "[email protected]", "[email protected]"]
示例4: test_simple
def test_simple(self):
project = self.create_project()
plan = self.create_plan()
plan.projects.append(project)
build = self.create_build(project)
job = self.create_job(build)
db.session.add(ItemOption(
item_id=plan.id,
name='mail.notify-author',
value='0',
))
db.session.add(ProjectOption(
project_id=project.id,
name='mail.notify-author',
value='1',
))
db.session.add(ProjectOption(
project_id=project.id,
name='mail.notify-addresses',
value='[email protected]',
))
db.session.flush()
self.create_job_plan(job, plan)
db.session.commit()
handler = MailNotificationHandler()
assert handler.get_job_options(job) == {
'mail.notify-addresses': '[email protected]',
'mail.notify-author': '0',
}
示例5: test_default_options
def test_default_options(self):
project = self.create_project()
author = self.create_author('[email protected]')
build = self.create_build(project, result=Result.failed, author=author)
handler = MailNotificationHandler()
recipients = handler.get_build_recipients(build)
assert recipients == ['{0} <[email protected]>'.format(author.name)]
示例6: test_default_options
def test_default_options(self):
author = self.create_author('[email protected]')
build = self.create_build(self.project, result=Result.passed, author=author)
job = self.create_job(build)
handler = MailNotificationHandler()
recipients = handler.get_recipients(job)
assert recipients == ['{0} <[email protected]>'.format(author.name)]
示例7: test_multiple_sources
def test_multiple_sources(self, get_collection_recipients):
project = self.create_project(name='test', slug='test')
build = self.create_build(
project,
date_started=datetime.utcnow(),
result=Result.failed,
)
job = self.create_job(build=build, result=Result.failed)
phase = self.create_jobphase(job=job)
step = self.create_jobstep(phase=phase)
logsource = self.create_logsource(
step=step,
name='console',
)
self.create_logchunk(
source=logsource,
text='hello world',
)
phase2 = self.create_jobphase(job=job, label='other')
step2 = self.create_jobstep(phase=phase2)
logsource2 = self.create_logsource(
step=step2,
name='other',
)
self.create_logchunk(
source=logsource2,
text='hello world',
)
job_link = 'http://example.com/projects/%s/builds/%s/jobs/%s/' % (
project.slug, build.id.hex, job.id.hex,)
log_link1 = '%slogs/%s/' % (job_link, logsource.id.hex)
log_link2 = '%slogs/%s/' % (job_link, logsource2.id.hex)
get_collection_recipients.return_value = ['[email protected]', 'Bob <[email protected]>']
handler = MailNotificationHandler()
context = handler.get_collection_context([build])
msg = handler.get_msg(context)
handler.send(msg, build)
assert len(self.outbox) == 1
msg = self.outbox[0]
assert msg.subject == '%s failed - %s' % (
'D1234', job.build.label)
assert msg.recipients == ['[email protected]', 'Bob <[email protected]>']
assert msg.extra_headers['Reply-To'] == '[email protected], Bob <[email protected]>'
assert job_link in msg.html
assert job_link in msg.body
assert log_link1 in msg.html
assert log_link1 in msg.body
assert log_link2 in msg.html
assert log_link2 in msg.body
assert msg.as_string()
示例8: test_without_author_option
def test_without_author_option(self):
db.session.add(ProjectOption(project=self.project, name="mail.notify-author", value="0"))
author = self.create_author("[email protected]")
build = self.create_build(self.project, result=Result.failed, author=author)
job = self.create_job(build)
db.session.commit()
handler = MailNotificationHandler()
recipients = handler.get_recipients(job)
assert recipients == []
示例9: test_without_author_option
def test_without_author_option(self):
project = self.create_project()
db.session.add(ProjectOption(
project=project, name='mail.notify-author', value='0'))
author = self.create_author('[email protected]')
build = self.create_build(project, result=Result.failed, author=author)
db.session.commit()
handler = MailNotificationHandler()
recipients = handler.get_build_recipients(build)
assert recipients == []
示例10: test_multiple_sources
def test_multiple_sources(self, get_recipients):
project = self.create_project(name='test', slug='test')
build = self.create_build(project, target='D1234')
job = self.create_job(build=build, result=Result.failed)
phase = self.create_jobphase(job=job)
step = self.create_jobstep(phase=phase)
logsource = self.create_logsource(
step=step,
name='console',
)
self.create_logchunk(
source=logsource,
text='hello world',
)
phase2 = self.create_jobphase(job=job, label='other')
step2 = self.create_jobstep(phase=phase2)
logsource2 = self.create_logsource(
step=step2,
name='other',
)
self.create_logchunk(
source=logsource2,
text='hello world',
)
job_link = 'http://example.com/projects/test/builds/%s/jobs/%s/' % (build.id.hex, job.id.hex,)
log_link1 = '%slogs/%s/' % (job_link, logsource.id.hex)
log_link2 = '%slogs/%s/' % (job_link, logsource2.id.hex)
get_recipients.return_value = ['[email protected]', 'Bob <[email protected]>']
handler = MailNotificationHandler()
handler.send(job, None)
assert len(self.outbox) == 1
msg = self.outbox[0]
assert msg.subject == '%s Failed - %s #%s.%s' % (
job.build.target, job.project.name, job.build.number, job.number)
assert msg.recipients == ['[email protected]', 'Bob <[email protected]>']
assert msg.extra_headers['Reply-To'] == '[email protected], Bob <[email protected]>'
assert job_link in msg.html
assert job_link in msg.body
assert log_link1 in msg.html
assert log_link1 in msg.body
assert log_link2 in msg.html
assert log_link2 in msg.body
assert msg.as_string()
示例11: test_subject_branch
def test_subject_branch(self, get_recipients):
project = self.create_project(name='test', slug='test')
repo = project.repository
branches = ['master', 'branch1']
branch_str = ' (%s)' % ','.join(branches)
revision = self.create_revision(repository=repo, branches=branches)
source = self.create_source(
project=project,
revision=revision,
)
build = self.create_build(
project=project,
source=source,
label='Test diff',
target='D1234',
)
job = self.create_job(build=build, result=Result.failed)
phase = self.create_jobphase(job=job)
step = self.create_jobstep(phase=phase)
logsource = self.create_logsource(
step=step,
name='console',
)
self.create_logchunk(
source=logsource,
text='hello world',
)
job_link = 'http://example.com/projects/test/builds/%s/jobs/%s/' % (build.id.hex, job.id.hex,)
log_link = '%slogs/%s/' % (job_link, logsource.id.hex)
get_recipients.return_value = ['[email protected]', 'Bob <[email protected]>']
handler = MailNotificationHandler()
handler.send(job, None)
assert len(self.outbox) == 1
msg = self.outbox[0]
assert msg.subject == '%s FAILED - %s%s %s #%s.%s' % (
job.build.target, job.project.name, branch_str, job.build.label, job.build.number, job.number)
assert msg.recipients == ['[email protected]', 'Bob <[email protected]>']
assert msg.extra_headers['Reply-To'] == '[email protected], Bob <[email protected]>'
assert job_link in msg.html
assert job_link in msg.body
assert log_link in msg.html
assert log_link in msg.body
assert msg.as_string()
示例12: get
def get(self, job_id):
job = Job.query.get(job_id)
assert job
handler = MailNotificationHandler()
parent = handler.get_parent(job)
context = handler.get_context(job, parent)
html_content = Markup(toronado.from_string(
render_template('listeners/mail/notification.html', **context)
))
return render_template('debug/email.html', html_content=html_content)
示例13: test_with_addressees
def test_with_addressees(self):
db.session.add(ProjectOption(project=self.project, name="mail.notify-author", value="1"))
db.session.add(
ProjectOption(project=self.project, name="mail.notify-addresses", value="[email protected], [email protected]")
)
author = self.create_author("[email protected]")
build = self.create_build(self.project, result=Result.failed, author=author)
job = self.create_job(build)
db.session.commit()
handler = MailNotificationHandler()
recipients = handler.get_recipients(job)
assert recipients == ["{0} <[email protected]>".format(author.name), "[email protected]", "[email protected]"]
示例14: get
def get(self, build_id):
build = Build.query.get(build_id)
assert build, 'There is no build for {}'.format(build_id)
builds = list(
Build.query.filter(Build.collection_id == build.collection_id))
notification_handler = MailNotificationHandler()
context = notification_handler.get_collection_context(builds)
msg = notification_handler.get_msg(context)
return render_template(
'debug/email.html',
recipients=msg.recipients,
subject=msg.subject,
text_content=msg.body,
html_content=msg.html,
)
示例15: test_simple
def test_simple(self):
project = self.project
plan = self.create_plan()
plan.projects.append(project)
build = self.create_build(project)
job = self.create_job(build)
self.create_job_plan(job, plan)
db.session.add(ItemOption(item_id=plan.id, name="mail.notify-author", value="0"))
db.session.add(ProjectOption(project_id=project.id, name="mail.notify-author", value="1"))
db.session.add(ProjectOption(project_id=project.id, name="mail.notify-addresses", value="[email protected]"))
db.session.commit()
handler = MailNotificationHandler()
assert handler.get_job_options(job) == {"mail.notify-addresses": "[email protected]", "mail.notify-author": "0"}