Improvements and fixes on tests.
parent
01d524adb8
commit
3061425a67
|
@ -18,9 +18,9 @@ from .development import *
|
||||||
|
|
||||||
SKIP_SOUTH_TESTS = True
|
SKIP_SOUTH_TESTS = True
|
||||||
SOUTH_TESTS_MIGRATE = False
|
SOUTH_TESTS_MIGRATE = False
|
||||||
|
|
||||||
CELERY_ALWAYS_EAGER = True
|
CELERY_ALWAYS_EAGER = True
|
||||||
|
|
||||||
MEDIA_ROOT = "/tmp"
|
MEDIA_ROOT = "/tmp"
|
||||||
|
|
||||||
EMAIL_BACKEND = "django.core.mail.backends.locmem.EmailBackend"
|
EMAIL_BACKEND = "django.core.mail.backends.locmem.EmailBackend"
|
||||||
|
INSTALLED_APPS = INSTALLED_APPS + ["tests"]
|
||||||
|
|
|
@ -15,11 +15,11 @@
|
||||||
# You should have received a copy of the GNU Affero General Public License
|
# You should have received a copy of the GNU Affero General Public License
|
||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
import os
|
||||||
|
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings.testing")
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
import django
|
import django
|
||||||
|
|
||||||
django.setup()
|
|
||||||
|
|
||||||
from .fixtures import *
|
from .fixtures import *
|
||||||
|
|
||||||
|
|
||||||
|
@ -30,3 +30,8 @@ def pytest_addoption(parser):
|
||||||
def pytest_runtest_setup(item):
|
def pytest_runtest_setup(item):
|
||||||
if "slow" in item.keywords and not item.config.getoption("--runslow"):
|
if "slow" in item.keywords and not item.config.getoption("--runslow"):
|
||||||
pytest.skip("need --runslow option to run")
|
pytest.skip("need --runslow option to run")
|
||||||
|
|
||||||
|
|
||||||
|
def pytest_configure(config):
|
||||||
|
django.setup()
|
||||||
|
|
||||||
|
|
|
@ -363,8 +363,8 @@ class ContentTypeFactory(Factory):
|
||||||
strategy = factory.CREATE_STRATEGY
|
strategy = factory.CREATE_STRATEGY
|
||||||
django_get_or_create = ("app_label", "model")
|
django_get_or_create = ("app_label", "model")
|
||||||
|
|
||||||
app_label = factory.LazyAttribute(lambda obj: ContentTypeFactory.FACTORY_FOR._meta.app_label)
|
app_label = factory.LazyAttribute(lambda obj: "issues")
|
||||||
model = factory.LazyAttribute(lambda obj: ContentTypeFactory.FACTORY_FOR._meta.model_name)
|
model = factory.LazyAttribute(lambda obj: "Issue")
|
||||||
|
|
||||||
|
|
||||||
class AttachmentFactory(Factory):
|
class AttachmentFactory(Factory):
|
||||||
|
|
|
@ -190,7 +190,8 @@ def test_milestone_create(client, data):
|
||||||
"estimated_finish": "2014-12-24",
|
"estimated_finish": "2014-12-24",
|
||||||
"project": data.public_project.pk,
|
"project": data.public_project.pk,
|
||||||
})
|
})
|
||||||
results = helper_test_http_method(client, 'post', url, create_data, users, lambda: Milestone.objects.all().delete())
|
results = helper_test_http_method(client, 'post', url, create_data, users,
|
||||||
|
lambda: Milestone.objects.all().delete())
|
||||||
assert results == [401, 403, 403, 201, 201]
|
assert results == [401, 403, 403, 201, 201]
|
||||||
|
|
||||||
create_data = json.dumps({
|
create_data = json.dumps({
|
||||||
|
@ -199,7 +200,9 @@ def test_milestone_create(client, data):
|
||||||
"estimated_finish": "2014-12-24",
|
"estimated_finish": "2014-12-24",
|
||||||
"project": data.private_project1.pk,
|
"project": data.private_project1.pk,
|
||||||
})
|
})
|
||||||
results = helper_test_http_method(client, 'post', url, create_data, users, lambda: Milestone.objects.all().delete())
|
|
||||||
|
results = helper_test_http_method(client, 'post', url, create_data, users,
|
||||||
|
lambda: Milestone.objects.all().delete())
|
||||||
assert results == [401, 403, 403, 201, 201]
|
assert results == [401, 403, 403, 201, 201]
|
||||||
|
|
||||||
create_data = json.dumps({
|
create_data = json.dumps({
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
import json
|
||||||
|
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
|
|
||||||
|
@ -23,22 +24,22 @@ Issue #2
|
||||||
assert issues[1].subject == "Issue #2"
|
assert issues[1].subject == "Issue #2"
|
||||||
|
|
||||||
|
|
||||||
@mock.patch("taiga.projects.issues.services.db")
|
|
||||||
def test_create_issues_in_bulk(db):
|
def test_create_issues_in_bulk(db):
|
||||||
data = """
|
data = """
|
||||||
Issue #1
|
Issue #1
|
||||||
Issue #2
|
Issue #2
|
||||||
"""
|
"""
|
||||||
issues = services.create_issues_in_bulk(data)
|
|
||||||
|
|
||||||
|
with mock.patch("taiga.projects.issues.services.db") as db:
|
||||||
|
issues = services.create_issues_in_bulk(data)
|
||||||
db.save_in_bulk.assert_called_once_with(issues, None, None)
|
db.save_in_bulk.assert_called_once_with(issues, None, None)
|
||||||
|
|
||||||
|
|
||||||
@mock.patch("taiga.projects.issues.services.db")
|
def test_update_issues_order_in_bulk():
|
||||||
def test_update_issues_order_in_bulk(db):
|
|
||||||
data = [(1, 1), (2, 2)]
|
data = [(1, 1), (2, 2)]
|
||||||
services.update_issues_order_in_bulk(data)
|
|
||||||
|
|
||||||
|
with mock.patch("taiga.projects.issues.services.db") as db:
|
||||||
|
services.update_issues_order_in_bulk(data)
|
||||||
db.update_in_bulk_with_ids.assert_called_once_with([1, 2], [{"order": 1}, {"order": 2}],
|
db.update_in_bulk_with_ids.assert_called_once_with([1, 2], [{"order": 1}, {"order": 2}],
|
||||||
model=models.Issue)
|
model=models.Issue)
|
||||||
|
|
||||||
|
@ -47,7 +48,8 @@ def test_api_create_issues_in_bulk(client):
|
||||||
project = f.create_project()
|
project = f.create_project()
|
||||||
|
|
||||||
url = reverse("issues-bulk-create")
|
url = reverse("issues-bulk-create")
|
||||||
data = {"bulk_issues": "Issue #1\nIssue #2",
|
|
||||||
|
data = {"bulk_issues": "Issue #1\nIssue #2\n",
|
||||||
"project_id": project.id}
|
"project_id": project.id}
|
||||||
|
|
||||||
client.login(project.owner)
|
client.login(project.owner)
|
||||||
|
|
|
@ -20,12 +20,11 @@ def test_get_members_from_bulk():
|
||||||
assert members[1].email == "member2@email.com"
|
assert members[1].email == "member2@email.com"
|
||||||
|
|
||||||
|
|
||||||
@mock.patch("taiga.projects.services.members.db")
|
def test_create_members_in_bulk():
|
||||||
def test_create_members_in_bulk(db):
|
with mock.patch("taiga.projects.services.members.db") as db:
|
||||||
data = [{"role_id": "1", "email": "member1@email.com"},
|
data = [{"role_id": "1", "email": "member1@email.com"},
|
||||||
{"role_id": "1", "email": "member2@email.com"}]
|
{"role_id": "1", "email": "member2@email.com"}]
|
||||||
members = services.create_members_in_bulk(data, project_id=1)
|
members = services.create_members_in_bulk(data, project_id=1)
|
||||||
|
|
||||||
db.save_in_bulk.assert_called_once_with(members, None, None)
|
db.save_in_bulk.assert_called_once_with(members, None, None)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -25,5 +25,4 @@ def test_api_partially_update_project(client):
|
||||||
|
|
||||||
client.login(project.owner)
|
client.login(project.owner)
|
||||||
response = client.json.patch(url, json.dumps(data))
|
response = client.json.patch(url, json.dumps(data))
|
||||||
|
|
||||||
assert response.status_code == 400
|
assert response.status_code == 400
|
||||||
|
|
|
@ -1,18 +1,11 @@
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from django.db import models
|
|
||||||
|
|
||||||
from taiga.base import tags
|
|
||||||
|
|
||||||
pytestmark = pytest.mark.django_db
|
pytestmark = pytest.mark.django_db
|
||||||
|
|
||||||
|
from taiga.base import tags
|
||||||
class TaggedModel(tags.TaggedMixin, models.Model):
|
from tests.models import TaggedModel
|
||||||
class Meta:
|
|
||||||
app_label = "base"
|
|
||||||
|
|
||||||
|
|
||||||
def test():
|
def test_tags():
|
||||||
tags1 = TaggedModel.objects.create(tags=["foo", "bar"])
|
tags1 = TaggedModel.objects.create(tags=["foo", "bar"])
|
||||||
tags2 = TaggedModel.objects.create(tags=["foo"])
|
tags2 = TaggedModel.objects.create(tags=["foo"])
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
import json
|
||||||
|
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
|
|
||||||
|
@ -23,14 +24,13 @@ Task #2
|
||||||
assert tasks[1].subject == "Task #2"
|
assert tasks[1].subject == "Task #2"
|
||||||
|
|
||||||
|
|
||||||
@mock.patch("taiga.projects.tasks.services.db")
|
|
||||||
def test_create_tasks_in_bulk(db):
|
def test_create_tasks_in_bulk(db):
|
||||||
data = """
|
data = """
|
||||||
Task #1
|
Task #1
|
||||||
Task #2
|
Task #2
|
||||||
"""
|
"""
|
||||||
|
with mock.patch("taiga.projects.tasks.services.db") as db:
|
||||||
tasks = services.create_tasks_in_bulk(data)
|
tasks = services.create_tasks_in_bulk(data)
|
||||||
|
|
||||||
db.save_in_bulk.assert_called_once_with(tasks, None, None)
|
db.save_in_bulk.assert_called_once_with(tasks, None, None)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,4 @@
|
||||||
from unittest import mock
|
from unittest import mock
|
||||||
|
|
||||||
from django.core.urlresolvers import reverse
|
from django.core.urlresolvers import reverse
|
||||||
|
|
||||||
from taiga.base.utils import json
|
from taiga.base.utils import json
|
||||||
|
@ -23,22 +22,22 @@ User Story #2
|
||||||
assert userstories[1].subject == "User Story #2"
|
assert userstories[1].subject == "User Story #2"
|
||||||
|
|
||||||
|
|
||||||
@mock.patch("taiga.projects.userstories.services.db")
|
def test_create_userstories_in_bulk():
|
||||||
def test_create_userstories_in_bulk(db):
|
|
||||||
data = """
|
data = """
|
||||||
User Story #1
|
User Story #1
|
||||||
User Story #2
|
User Story #2
|
||||||
"""
|
"""
|
||||||
userstories = services.create_userstories_in_bulk(data)
|
|
||||||
|
|
||||||
|
with mock.patch("taiga.projects.userstories.services.db") as db:
|
||||||
|
userstories = services.create_userstories_in_bulk(data)
|
||||||
db.save_in_bulk.assert_called_once_with(userstories, None, None)
|
db.save_in_bulk.assert_called_once_with(userstories, None, None)
|
||||||
|
|
||||||
|
|
||||||
@mock.patch("taiga.projects.userstories.services.db")
|
def test_update_userstories_order_in_bulk():
|
||||||
def test_update_userstories_order_in_bulk(db):
|
|
||||||
data = [{"us_id": 1, "order": 1}, {"us_id": 2, "order": 2}]
|
data = [{"us_id": 1, "order": 1}, {"us_id": 2, "order": 2}]
|
||||||
services.update_userstories_order_in_bulk(data)
|
|
||||||
|
|
||||||
|
with mock.patch("taiga.projects.userstories.services.db") as db:
|
||||||
|
services.update_userstories_order_in_bulk(data)
|
||||||
db.update_in_bulk_with_ids.assert_called_once_with([1, 2], [{"order": 1}, {"order": 2}],
|
db.update_in_bulk_with_ids.assert_called_once_with([1, 2], [{"order": 1}, {"order": 2}],
|
||||||
model=models.UserStory)
|
model=models.UserStory)
|
||||||
|
|
||||||
|
|
|
@ -76,6 +76,7 @@ def test_get_issue_votes(client):
|
||||||
user = f.UserFactory.create()
|
user = f.UserFactory.create()
|
||||||
issue = f.create_issue(owner=user)
|
issue = f.create_issue(owner=user)
|
||||||
url = reverse("issues-detail", args=(issue.id,))
|
url = reverse("issues-detail", args=(issue.id,))
|
||||||
|
|
||||||
f.VotesFactory.create(content_object=issue, count=5)
|
f.VotesFactory.create(content_object=issue, count=5)
|
||||||
|
|
||||||
client.login(user)
|
client.login(user)
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
from django.db import models
|
||||||
|
from taiga.base import tags
|
||||||
|
|
||||||
|
class TaggedModel(tags.TaggedMixin, models.Model):
|
||||||
|
class Meta:
|
||||||
|
app_label = "tests"
|
||||||
|
|
|
@ -3,47 +3,38 @@ from unittest import mock
|
||||||
from taiga import celery
|
from taiga import celery
|
||||||
from taiga.deferred import defer, call_async, apply_async
|
from taiga.deferred import defer, call_async, apply_async
|
||||||
|
|
||||||
from ..utils import set_settings
|
def test_defer():
|
||||||
|
# settings.CELERY_ALWAYS_EAGER = True
|
||||||
|
|
||||||
@set_settings(CELERY_ALWAYS_EAGER=False)
|
|
||||||
@mock.patch("taiga.deferred.app")
|
|
||||||
def test_defer(app):
|
|
||||||
name = "task name"
|
name = "task name"
|
||||||
args = (1, 2)
|
args = (1, 2)
|
||||||
kwargs = {"kw": "keyword argument"}
|
kwargs = {"kw": "keyword argument"}
|
||||||
|
|
||||||
|
with mock.patch("taiga.deferred.app") as app:
|
||||||
defer(name, *args, **kwargs)
|
defer(name, *args, **kwargs)
|
||||||
|
app.tasks[name].apply.assert_called_once_with(args, kwargs,
|
||||||
app.send_task.assert_called_once_with(name, args, kwargs, routing_key="transient.deferred")
|
routing_key="transient.deferred")
|
||||||
|
|
||||||
|
|
||||||
@set_settings(CELERY_ALWAYS_EAGER=False)
|
def test_apply_async():
|
||||||
@mock.patch("taiga.deferred.app")
|
|
||||||
def test_apply_async(app):
|
|
||||||
name = "task name"
|
name = "task name"
|
||||||
args = (1, 2)
|
args = (1, 2)
|
||||||
kwargs = {"kw": "keyword argument"}
|
kwargs = {"kw": "keyword argument"}
|
||||||
|
|
||||||
|
with mock.patch("taiga.deferred.app") as app:
|
||||||
apply_async(name, args, kwargs)
|
apply_async(name, args, kwargs)
|
||||||
|
app.tasks[name].apply.assert_called_once_with(args, kwargs)
|
||||||
app.send_task.assert_called_once_with(name, args, kwargs)
|
|
||||||
|
|
||||||
|
|
||||||
@set_settings(CELERY_ALWAYS_EAGER=False)
|
def test_call_async():
|
||||||
@mock.patch("taiga.deferred.app")
|
|
||||||
def test_call_async(app):
|
|
||||||
name = "task name"
|
name = "task name"
|
||||||
args = (1, 2)
|
args = (1, 2)
|
||||||
kwargs = {"kw": "keyword argument"}
|
kwargs = {"kw": "keyword argument"}
|
||||||
|
|
||||||
|
with mock.patch("taiga.deferred.app") as app:
|
||||||
call_async(name, *args, **kwargs)
|
call_async(name, *args, **kwargs)
|
||||||
|
app.tasks[name].apply.assert_called_once_with(args, kwargs)
|
||||||
app.send_task.assert_called_once_with(name, args, kwargs)
|
|
||||||
|
|
||||||
|
|
||||||
@set_settings(CELERY_ALWAYS_EAGER=True)
|
|
||||||
def test_task_invocation():
|
def test_task_invocation():
|
||||||
celery.app.task(name="_test_task")(lambda: 1)
|
celery.app.task(name="_test_task")(lambda: 1)
|
||||||
|
|
||||||
assert defer("_test_task").get() == 1
|
assert defer("_test_task").get() == 1
|
||||||
|
|
Loading…
Reference in New Issue