import json
|
|
import pytest
|
from django.db.models.query import QuerySet
|
from tests.utils import make_project
|
from users.models import User
|
|
|
@pytest.mark.django_db
|
def test_update_tasks_counters_and_task_states(business_client):
|
project = make_project({}, business_client.user, use_ml_backend=False)
|
|
# CHECK EMPTY LIST
|
ids = []
|
obj = project._update_tasks_counters_and_task_states(ids, True, True, True)
|
assert obj == 0
|
|
tasks = [{'data': {'location': 'London', 'text': 'text A'}}, {'data': {'location': 'London', 'text': 'text B'}}]
|
# upload tasks with annotations
|
r = business_client.post(
|
f'/api/projects/{project.id}/tasks/bulk', data=json.dumps(tasks), content_type='application/json'
|
)
|
assert r.status_code == 201
|
|
# CHECK LIST with IDS
|
ids = list(project.tasks.all().values_list('id', flat=True))
|
obj = project._update_tasks_counters_and_task_states(ids, True, True, True)
|
assert obj == 0
|
|
# CHECK SET with IDS
|
ids = set(project.tasks.all().values_list('id', flat=True))
|
obj = project._update_tasks_counters_and_task_states(ids, True, True, True)
|
assert obj == 0
|
|
|
@pytest.mark.django_db
|
def test_project_all_members(business_client):
|
project = make_project({}, business_client.user, use_ml_backend=False)
|
members = project.all_members
|
|
assert isinstance(members, QuerySet)
|
assert isinstance(members.first(), User)
|