Exemple #1
0
def test_update_in_bulk_with_a_callback():
    instance = mock.Mock()
    callback = mock.Mock()
    instances = [instance, instance]
    new_values = [{"field1": 1}, {"field2": 2}]

    update_in_bulk(instances, new_values, callback)

    assert callback.call_count == 2
Exemple #2
0
def test_update_in_bulk_with_a_callback():
    instance = mock.Mock()
    callback = mock.Mock()
    instances = [instance, instance]
    new_values = [{"field1": 1}, {"field2": 2}]

    update_in_bulk(instances, new_values, callback)

    assert callback.call_count == 2
Exemple #3
0
def test_update_in_bulk():
    instance = mock.Mock()
    instances = [instance, instance]
    new_values = [{"field1": 1}, {"field2": 2}]

    update_in_bulk(instances, new_values)

    assert instance.save.call_count == 2
    assert instance.field1 == 1
    assert instance.field2 == 2
Exemple #4
0
def test_update_in_bulk():
    instance = mock.Mock()
    instances = [instance, instance]
    new_values = [{"field1": 1}, {"field2": 2}]

    update_in_bulk(instances, new_values)

    assert instance.save.call_count == 2
    assert instance.field1 == 1
    assert instance.field2 == 2
Exemple #5
0
def update_userstories_milestone_in_bulk(bulk_data: list, milestone: object):
    """
    Update the milestone and the milestone order of some user stories adding
    the extra orders needed to keep consistency.
    `bulk_data` should be a list of dicts with the following format:
    [{'us_id': <value>, 'order': <value>}, ...]
    """
    user_stories = milestone.user_stories.all()
    us_orders = {us.id: getattr(us, "sprint_order") for us in user_stories}
    new_us_orders = {}
    for e in bulk_data:
        new_us_orders[e["us_id"]] = e["order"]
        # The base orders where we apply the new orders must containg all
        # the values
        us_orders[e["us_id"]] = e["order"]

    apply_order_updates(us_orders, new_us_orders)

    us_milestones = {e["us_id"]: milestone.id for e in bulk_data}
    user_story_ids = us_milestones.keys()

    events.emit_event_for_ids(
        ids=user_story_ids,
        content_type="userstories.userstory",
        projectid=milestone.project.pk,
    )

    us_instance_list = []
    us_values = []
    for us_id in user_story_ids:
        us = UserStory.objects.get(pk=us_id)
        us_instance_list.append(us)
        us_values.append({"milestone_id": milestone.id})

    db.update_in_bulk(us_instance_list, us_values)
    db.update_attr_in_bulk_for_ids(us_orders, "sprint_order", UserStory)

    # Updating the milestone for the tasks
    Task.objects.filter(user_story_id__in=[e["us_id"] for e in bulk_data]).update(
        milestone=milestone
    )

    return us_orders
Exemple #6
0
def update_issues_milestone_in_bulk(bulk_data: list, milestone: object):
    """
    Update the milestone some issues adding
    `bulk_data` should be a list of dicts with the following format:
    [{'task_id': <value>}, ...]
    """
    issue_milestones = {e["issue_id"]: milestone.id for e in bulk_data}
    issue_ids = issue_milestones.keys()

    events.emit_event_for_ids(ids=issue_ids,
                              content_type="issues.issues",
                              projectid=milestone.project.pk)

    issues_instance_list = []
    issues_values = []
    for issue_id in issue_ids:
        issue = Issue.objects.get(pk=issue_id)
        issues_instance_list.append(issue)
        issues_values.append({'milestone_id': milestone.id})

    db.update_in_bulk(issues_instance_list, issues_values)

    return issue_milestones
Exemple #7
0
def update_tasks_milestone_in_bulk(bulk_data: list, milestone: object):
    """
    Update the milestone and the milestone order of some tasks adding
    the extra orders needed to keep consistency.
    `bulk_data` should be a list of dicts with the following format:
    [{'task_id': <value>, 'order': <value>}, ...]
    """
    tasks = milestone.tasks.all()
    task_orders = {task.id: getattr(task, "taskboard_order") for task in tasks}
    new_task_orders = {}
    for e in bulk_data:
        new_task_orders[e["task_id"]] = e["order"]
        # The base orders where we apply the new orders must containg all
        # the values
        task_orders[e["task_id"]] = e["order"]

    apply_order_updates(task_orders, new_task_orders)

    task_milestones = {e["task_id"]: milestone.id for e in bulk_data}
    task_ids = task_milestones.keys()

    events.emit_event_for_ids(ids=task_ids,
                              content_type="tasks.task",
                              projectid=milestone.project.pk)

    task_instance_list = []
    task_values = []
    for task_id in task_ids:
        task = Task.objects.get(pk=task_id)
        task_instance_list.append(task)
        task_values.append({'milestone_id': milestone.id})

    db.update_in_bulk(task_instance_list, task_values)
    db.update_attr_in_bulk_for_ids(task_orders, "taskboard_order", Task)

    return task_milestones