本文整理汇总了Python中integration.ggrc_workflows.generator.WorkflowsGenerator.generate_task_group_task方法的典型用法代码示例。如果您正苦于以下问题:Python WorkflowsGenerator.generate_task_group_task方法的具体用法?Python WorkflowsGenerator.generate_task_group_task怎么用?Python WorkflowsGenerator.generate_task_group_task使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类integration.ggrc_workflows.generator.WorkflowsGenerator
的用法示例。
在下文中一共展示了WorkflowsGenerator.generate_task_group_task方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: TestCycleTaskImportUpdate
# 需要导入模块: from integration.ggrc_workflows.generator import WorkflowsGenerator [as 别名]
# 或者: from integration.ggrc_workflows.generator.WorkflowsGenerator import generate_task_group_task [as 别名]
class TestCycleTaskImportUpdate(BaseTestCycleTaskImportUpdate):
""" This class contains simple cycle task update tests using import
functionality
"""
CSV_DIR = join(abspath(dirname(__file__)), "test_csvs/")
def setUp(self):
super(TestCycleTaskImportUpdate, self).setUp()
self.wf_generator = WorkflowsGenerator()
self.object_generator = ObjectGenerator()
self.random_objects = self.object_generator.generate_random_objects(2)
_, self.person_1 = self.object_generator.generate_person(
user_role="Administrator")
self.ftime_active = "2016-07-01"
self.ftime_historical = "2014-05-01"
self._create_test_cases_data()
# It is needed because cycle-tasks are generated automatically with
# 'slug' based on auto_increment 'id' field.
# At start of each test we suppose that created cycle-task's 'slug'
# lie in range from 1 to 10.
db.session.execute('ALTER TABLE cycle_task_group_object_tasks '
'AUTO_INCREMENT = 1')
def test_cycle_task_correct(self):
"""Test cycle task update via import with correct data"""
self._generate_cycle_tasks()
with freeze_time(self.ftime_active):
response = self.import_file("cycle_task_correct.csv")
self._check_csv_response(response, {})
self._cmp_tasks(self.expected_cycle_task_correct)
def test_cycle_task_warnings(self):
"""Test cycle task update via import with data which is the reason of
warnings about non-importable columns."""
self._generate_cycle_tasks()
with freeze_time(self.ftime_active):
response = self.import_file("cycle_task_warnings.csv")
self._check_csv_response(response, self.expected_warnings)
self._cmp_tasks(self.expected_cycle_task_correct)
def test_cycle_task_create_error(self):
"""Test cycle task update via import with data which is the reason of
errors about new cycle task creation."""
self._generate_cycle_tasks()
with freeze_time(self.ftime_active):
response = self.import_file("cycle_task_create_error.csv")
self._check_csv_response(response, self.expected_create_error)
self._cmp_tasks(self.expected_cycle_task_correct)
def test_cycle_task_date_error(self):
"""Test cycle task update via import with data which is the reason of
errors about incorrect dates in csv file."""
self._generate_cycle_tasks()
with freeze_time(self.ftime_active):
response = self.import_file("cycle_task_date_error.csv")
self._check_csv_response(response, self.expected_date_error)
self._cmp_tasks(self.expected_cycle_task_date_error)
def test_cycle_task_permission_error(self):
"""Test cycle task update via import with non-admin user which is the
reason of error. Only admin can update cycle tasks via import."""
self._generate_cycle_tasks()
with freeze_time(self.ftime_active):
_, creator = self.object_generator.generate_person(user_role="Creator")
response = self.import_file("cycle_task_correct.csv", person=creator)
self._check_csv_response(response, self.expected_permission_error)
# Cycle tasks' data shouldn't be changed in test DB after import run from
# non-admin user
expected_cycle_task_permission_error = {}
expected_cycle_task_permission_error.update(
self.generated_cycle_tasks_active)
expected_cycle_task_permission_error.update(
self.generated_cycle_tasks_historical)
self._cmp_tasks(expected_cycle_task_permission_error)
def _cmp_tasks(self, expected_ctasks):
"""Compare tasks values from argument's list and test DB."""
for ctask in db.session.query(CycleTaskGroupObjectTask).all():
if ctask.slug not in expected_ctasks:
continue
exp_task = expected_ctasks[ctask.slug]
for attr, val in exp_task.iteritems():
self.assertEqual(str(getattr(ctask, attr, None)), val)
# pylint: disable=too-many-arguments
def _activate_workflow(self, ftime, workflow, task_group, task_group_tasks,
random_object, cycle_tasks):
"""Helper which is responsible for active cycle-tasks creation"""
with freeze_time(ftime):
_, wf = self.wf_generator.generate_workflow(workflow)
_, tg = self.wf_generator.generate_task_group(wf, task_group)
for task in task_group_tasks:
self.wf_generator.generate_task_group_task(tg, task)
self.wf_generator.generate_task_group_object(tg, random_object)
_, cycle = self.wf_generator.generate_cycle(wf)
self.wf_generator.activate_workflow(wf)
#.........这里部分代码省略.........
示例2: TestOneTimeWorkflowNotification
# 需要导入模块: from integration.ggrc_workflows.generator import WorkflowsGenerator [as 别名]
# 或者: from integration.ggrc_workflows.generator.WorkflowsGenerator import generate_task_group_task [as 别名]
class TestOneTimeWorkflowNotification(TestCase):
""" Tests are defined in the g-sheet test grid under:
WF EMAILS for unit tests (middle level)
"""
def setUp(self):
super(TestOneTimeWorkflowNotification, self).setUp()
self.api = Api()
self.wf_generator = WorkflowsGenerator()
self.object_generator = ObjectGenerator()
self.random_objects = self.object_generator.generate_random_objects()
self.random_people = [
self.object_generator.generate_person(user_role="Administrator")[1]
for _ in range(5)]
self.create_test_cases()
self.create_users()
db.session.query(Notification).delete()
def init_decorator(init):
def new_init(self, *args, **kwargs):
init(self, *args, **kwargs)
if hasattr(self, "created_at"):
self.created_at = datetime.now()
return new_init
Notification.__init__ = init_decorator(Notification.__init__)
def tearDown(self):
db.session.query(Notification).delete()
def short_dict(self, obj, plural):
return {
"href": "/api/%s/%d" % (plural, obj.id),
"id": obj.id,
"type": obj.__class__.__name__,
}
def test_one_time_wf(self):
# setup
with freeze_time("2015-04-07 03:21:34"):
wf_response, wf = self.wf_generator.generate_workflow(data={
# admin will be the current user
"notify_on_change": True, # force real time updates
"title": "One-time WF",
"notify_custom_message": textwrap.dedent("""\
Hi all.
Did you know that Irelnd city namd Newtownmountkennedy has 19
letters? But it's not the longest one. The recordsman is the
city in New Zealand that contains 97 letter."""),
})
_, tg = self.wf_generator.generate_task_group(wf, data={
"title": "TG #1 for the One-time WF",
"contact": self.short_dict(self.tgassignee1, "people"),
})
self.wf_generator.generate_task_group_task(tg, {
"title": "task #1 for one-time workflow",
"contact": self.short_dict(self.member1, "people"),
"start_date": "04/07/2015",
"end_date": "04/15/2015",
})
self.wf_generator.generate_task_group_object(tg, self.random_objects[0])
self.wf_generator.generate_task_group_object(tg, self.random_objects[1])
# test
with freeze_time("2015-04-07 03:21:34"):
cycle_response, cycle = self.wf_generator.generate_cycle(wf)
self.wf_generator.activate_workflow(wf)
common.get_daily_notifications()
def create_test_cases(self):
def person_dict(person_id):
return {
"href": "/api/people/%d" % person_id,
"id": person_id,
"type": "Person"
}
self.one_time_workflow_1 = {
"title": "one time test workflow",
"description": "some test workflow",
# admin will be current user with id == 1
"task_groups": [{
"title": "one time task group",
"task_group_tasks": [{
"title": "task 1",
"description": "some task",
"contact": person_dict(self.random_people[0].id),
"start_date": date(2015, 5, 1), # friday
"end_date": date(2015, 5, 5),
}, {
"title": "task 2",
"description": "some task",
#.........这里部分代码省略.........