本文整理汇总了Python中taiga.projects.notifications.services.make_ms_thread_index函数的典型用法代码示例。如果您正苦于以下问题:Python make_ms_thread_index函数的具体用法?Python make_ms_thread_index怎么用?Python make_ms_thread_index使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了make_ms_thread_index函数的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_ms_thread_id
def test_ms_thread_id():
id = '<test/[email protected]>'
now = timezone.now()
index = services.make_ms_thread_index(id, now)
parsed = parse_ms_thread_index(index)
assert parsed[0] == hashlib.md5(id.encode('utf-8')).hexdigest()
# always only one time
assert (now - parsed[1][0]).seconds <= 2
开发者ID:tnir,项目名称:taiga-back,代码行数:10,代码来源:test_notifications.py
示例2: test_send_notifications_using_services_method_for_wiki_pages
def test_send_notifications_using_services_method_for_wiki_pages(settings, mail):
settings.CHANGE_NOTIFICATIONS_MIN_INTERVAL = 1
project = f.ProjectFactory.create()
role = f.RoleFactory.create(project=project, permissions=['view_issues', 'view_us', 'view_tasks', 'view_wiki_pages'])
member1 = f.MembershipFactory.create(project=project, role=role)
member2 = f.MembershipFactory.create(project=project, role=role)
wiki = f.WikiPageFactory.create(project=project, owner=member2.user)
history_change = f.HistoryEntryFactory.create(
project=project,
user={"pk": member1.user.id},
comment="",
type=HistoryType.change,
key="wiki.wikipage:{}".format(wiki.id),
is_hidden=False,
diff=[]
)
history_create = f.HistoryEntryFactory.create(
project=project,
user={"pk": member1.user.id},
comment="",
type=HistoryType.create,
key="wiki.wikipage:{}".format(wiki.id),
is_hidden=False,
diff=[]
)
history_delete = f.HistoryEntryFactory.create(
project=project,
user={"pk": member1.user.id},
comment="test:delete",
type=HistoryType.delete,
key="wiki.wikipage:{}".format(wiki.id),
is_hidden=False,
diff=[]
)
take_snapshot(wiki, user=wiki.owner)
services.send_notifications(wiki,
history=history_create)
services.send_notifications(wiki,
history=history_change)
services.send_notifications(wiki,
history=history_delete)
assert models.HistoryChangeNotification.objects.count() == 3
assert len(mail.outbox) == 0
time.sleep(1)
services.process_sync_notifications()
assert len(mail.outbox) == 3
# test headers
domain = settings.SITES["api"]["domain"].split(":")[0] or settings.SITES["api"]["domain"]
for msg in mail.outbox:
m_id = "{project_slug}/{msg_id}".format(
project_slug=project.slug,
msg_id=wiki.slug
)
message_id = "<{m_id}/".format(m_id=m_id)
message_id_domain = "@{domain}>".format(domain=domain)
in_reply_to = "<{m_id}@{domain}>".format(m_id=m_id, domain=domain)
list_id = "Taiga/{p_name} <taiga.{p_slug}@{domain}>" \
.format(p_name=project.name, p_slug=project.slug, domain=domain)
assert msg.extra_headers
headers = msg.extra_headers
# can't test the time part because it's set when sending
# check what we can
assert 'Message-ID' in headers
assert message_id in headers.get('Message-ID')
assert message_id_domain in headers.get('Message-ID')
assert 'In-Reply-To' in headers
assert in_reply_to == headers.get('In-Reply-To')
assert 'References' in headers
assert in_reply_to == headers.get('References')
assert 'List-ID' in headers
assert list_id == headers.get('List-ID')
assert 'Thread-Index' in headers
# hashes should match for identical ids and times
# we check the actual method in test_ms_thread_id()
msg_time = headers.get('Message-ID').split('/')[2].split('@')[0]
msg_ts = datetime.datetime.fromtimestamp(int(msg_time))
assert services.make_ms_thread_index(in_reply_to, msg_ts) == headers.get('Thread-Index')
开发者ID:tnir,项目名称:taiga-back,代码行数:92,代码来源:test_notifications.py
示例3: test_send_notifications_using_services_method
#.........这里部分代码省略.........
history=history_delete)
# Userstories
us = f.UserStoryFactory.create(project=project, owner=member2.user)
take_snapshot(us, user=us.owner)
services.send_notifications(us,
history=history_create)
services.send_notifications(us,
history=history_change)
services.send_notifications(us,
history=history_delete)
# Tasks
task = f.TaskFactory.create(project=project, owner=member2.user)
take_snapshot(task, user=task.owner)
services.send_notifications(task,
history=history_create)
services.send_notifications(task,
history=history_change)
services.send_notifications(task,
history=history_delete)
# Wiki pages
wiki = f.WikiPageFactory.create(project=project, owner=member2.user)
take_snapshot(wiki, user=wiki.owner)
services.send_notifications(wiki,
history=history_create)
services.send_notifications(wiki,
history=history_change)
services.send_notifications(wiki,
history=history_delete)
assert models.HistoryChangeNotification.objects.count() == 12
assert len(mail.outbox) == 0
time.sleep(1)
services.process_sync_notifications()
assert len(mail.outbox) == 12
# test headers
events = [issue, us, task, wiki]
domain = settings.SITES["api"]["domain"].split(":")[0] or settings.SITES["api"]["domain"]
i = 0
for msg in mail.outbox:
# each event has 3 msgs
event = events[math.floor(i / 3)]
# each set of 3 should have the same headers
if i % 3 == 0:
if hasattr(event, 'ref'):
e_slug = event.ref
elif hasattr(event, 'slug'):
e_slug = event.slug
else:
e_slug = 'taiga-system'
m_id = "{project_slug}/{msg_id}".format(
project_slug=project.slug,
msg_id=e_slug
)
message_id = "<{m_id}/".format(m_id=m_id)
message_id_domain = "@{domain}>".format(domain=domain)
in_reply_to = "<{m_id}@{domain}>".format(m_id=m_id, domain=domain)
list_id = "Taiga/{p_name} <taiga.{p_slug}@{domain}>" \
.format(p_name=project.name, p_slug=project.slug, domain=domain)
assert msg.extra_headers
headers = msg.extra_headers
# can't test the time part because it's set when sending
# check what we can
assert 'Message-ID' in headers
assert message_id in headers.get('Message-ID')
assert message_id_domain in headers.get('Message-ID')
assert 'In-Reply-To' in headers
assert in_reply_to == headers.get('In-Reply-To')
assert 'References' in headers
assert in_reply_to == headers.get('References')
assert 'List-ID' in headers
assert list_id == headers.get('List-ID')
assert 'Thread-Index' in headers
# always is b64 encoded 22 bytes
assert len(base64.b64decode(headers.get('Thread-Index'))) == 22
# hashes should match for identical ids and times
# we check the actual method in test_ms_thread_id()
msg_time = headers.get('Message-ID').split('/')[2].split('@')[0]
msg_ts = datetime.datetime.fromtimestamp(int(msg_time))
assert services.make_ms_thread_index(in_reply_to, msg_ts) == headers.get('Thread-Index')
i += 1
开发者ID:Davidx7,项目名称:taiga-back,代码行数:101,代码来源:test_notifications.py
示例4: test_send_notifications_using_services_method_for_issues
def test_send_notifications_using_services_method_for_issues(settings, mail):
settings.CHANGE_NOTIFICATIONS_MIN_INTERVAL = 1
project = f.ProjectFactory.create()
role = f.RoleFactory.create(
project=project, permissions=["view_issues", "view_us", "view_tasks", "view_wiki_pages"]
)
member1 = f.MembershipFactory.create(project=project, role=role)
member2 = f.MembershipFactory.create(project=project, role=role)
issue = f.IssueFactory.create(project=project, owner=member2.user)
history_change = f.HistoryEntryFactory.create(
user={"pk": member1.user.id},
comment="",
type=HistoryType.change,
key="issues.issue:{}".format(issue.id),
is_hidden=False,
diff=[],
)
history_create = f.HistoryEntryFactory.create(
user={"pk": member1.user.id},
comment="",
type=HistoryType.create,
key="issues.issue:{}".format(issue.id),
is_hidden=False,
diff=[],
)
history_delete = f.HistoryEntryFactory.create(
user={"pk": member1.user.id},
comment="test:delete",
type=HistoryType.delete,
key="issues.issue:{}".format(issue.id),
is_hidden=False,
diff=[],
)
take_snapshot(issue, user=issue.owner)
services.send_notifications(issue, history=history_create)
services.send_notifications(issue, history=history_change)
services.send_notifications(issue, history=history_delete)
assert models.HistoryChangeNotification.objects.count() == 3
assert len(mail.outbox) == 0
time.sleep(1)
services.process_sync_notifications()
assert len(mail.outbox) == 3
# test headers
domain = settings.SITES["api"]["domain"].split(":")[0] or settings.SITES["api"]["domain"]
for msg in mail.outbox:
m_id = "{project_slug}/{msg_id}".format(project_slug=project.slug, msg_id=issue.ref)
message_id = "<{m_id}/".format(m_id=m_id)
message_id_domain = "@{domain}>".format(domain=domain)
in_reply_to = "<{m_id}@{domain}>".format(m_id=m_id, domain=domain)
list_id = "Taiga/{p_name} <taiga.{p_slug}@{domain}>".format(
p_name=project.name, p_slug=project.slug, domain=domain
)
assert msg.extra_headers
headers = msg.extra_headers
# can't test the time part because it's set when sending
# check what we can
assert "Message-ID" in headers
assert message_id in headers.get("Message-ID")
assert message_id_domain in headers.get("Message-ID")
assert "In-Reply-To" in headers
assert in_reply_to == headers.get("In-Reply-To")
assert "References" in headers
assert in_reply_to == headers.get("References")
assert "List-ID" in headers
assert list_id == headers.get("List-ID")
assert "Thread-Index" in headers
# always is b64 encoded 22 bytes
assert len(base64.b64decode(headers.get("Thread-Index"))) == 22
# hashes should match for identical ids and times
# we check the actual method in test_ms_thread_id()
msg_time = headers.get("Message-ID").split("/")[2].split("@")[0]
msg_ts = datetime.datetime.fromtimestamp(int(msg_time))
assert services.make_ms_thread_index(in_reply_to, msg_ts) == headers.get("Thread-Index")
开发者ID:andrewchenshx,项目名称:taiga-back,代码行数:89,代码来源:test_notifications.py
注:本文中的taiga.projects.notifications.services.make_ms_thread_index函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论