Improvements and fixes on tests.
parent
01d524adb8
commit
3061425a67
|
@ -18,9 +18,9 @@ from .development import *
|
|||
|
||||
SKIP_SOUTH_TESTS = True
|
||||
SOUTH_TESTS_MIGRATE = False
|
||||
|
||||
CELERY_ALWAYS_EAGER = True
|
||||
|
||||
MEDIA_ROOT = "/tmp"
|
||||
|
||||
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
|
||||
# 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 django
|
||||
|
||||
django.setup()
|
||||
|
||||
from .fixtures import *
|
||||
|
||||
|
||||
|
@ -30,3 +30,8 @@ def pytest_addoption(parser):
|
|||
def pytest_runtest_setup(item):
|
||||
if "slow" in item.keywords and not item.config.getoption("--runslow"):
|
||||
pytest.skip("need --runslow option to run")
|
||||
|
||||
|
||||
def pytest_configure(config):
|
||||
django.setup()
|
||||
|
||||
|
|
|
@ -363,8 +363,8 @@ class ContentTypeFactory(Factory):
|
|||
strategy = factory.CREATE_STRATEGY
|
||||
django_get_or_create = ("app_label", "model")
|
||||
|
||||
app_label = factory.LazyAttribute(lambda obj: ContentTypeFactory.FACTORY_FOR._meta.app_label)
|
||||
model = factory.LazyAttribute(lambda obj: ContentTypeFactory.FACTORY_FOR._meta.model_name)
|
||||
app_label = factory.LazyAttribute(lambda obj: "issues")
|
||||
model = factory.LazyAttribute(lambda obj: "Issue")
|
||||
|
||||
|
||||
class AttachmentFactory(Factory):
|
||||
|
|
|
@ -190,7 +190,8 @@ def test_milestone_create(client, data):
|
|||
"estimated_finish": "2014-12-24",
|
||||
"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]
|
||||
|
||||
create_data = json.dumps({
|
||||
|
@ -199,7 +200,9 @@ def test_milestone_create(client, data):
|
|||
"estimated_finish": "2014-12-24",
|
||||
"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]
|
||||
|
||||
create_data = json.dumps({
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from unittest import mock
|
||||
import json
|
||||
|
||||
from django.core.urlresolvers import reverse
|
||||
|
||||
|
@ -23,31 +24,32 @@ Issue #2
|
|||
assert issues[1].subject == "Issue #2"
|
||||
|
||||
|
||||
@mock.patch("taiga.projects.issues.services.db")
|
||||
def test_create_issues_in_bulk(db):
|
||||
data = """
|
||||
Issue #1
|
||||
Issue #2
|
||||
"""
|
||||
issues = services.create_issues_in_bulk(data)
|
||||
|
||||
db.save_in_bulk.assert_called_once_with(issues, None, None)
|
||||
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)
|
||||
|
||||
|
||||
@mock.patch("taiga.projects.issues.services.db")
|
||||
def test_update_issues_order_in_bulk(db):
|
||||
def test_update_issues_order_in_bulk():
|
||||
data = [(1, 1), (2, 2)]
|
||||
services.update_issues_order_in_bulk(data)
|
||||
|
||||
db.update_in_bulk_with_ids.assert_called_once_with([1, 2], [{"order": 1}, {"order": 2}],
|
||||
model=models.Issue)
|
||||
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}],
|
||||
model=models.Issue)
|
||||
|
||||
|
||||
def test_api_create_issues_in_bulk(client):
|
||||
project = f.create_project()
|
||||
|
||||
url = reverse("issues-bulk-create")
|
||||
data = {"bulk_issues": "Issue #1\nIssue #2",
|
||||
|
||||
data = {"bulk_issues": "Issue #1\nIssue #2\n",
|
||||
"project_id": project.id}
|
||||
|
||||
client.login(project.owner)
|
||||
|
|
|
@ -20,13 +20,12 @@ def test_get_members_from_bulk():
|
|||
assert members[1].email == "member2@email.com"
|
||||
|
||||
|
||||
@mock.patch("taiga.projects.services.members.db")
|
||||
def test_create_members_in_bulk(db):
|
||||
data = [{"role_id": "1", "email": "member1@email.com"},
|
||||
{"role_id": "1", "email": "member2@email.com"}]
|
||||
members = services.create_members_in_bulk(data, project_id=1)
|
||||
|
||||
db.save_in_bulk.assert_called_once_with(members, None, None)
|
||||
def test_create_members_in_bulk():
|
||||
with mock.patch("taiga.projects.services.members.db") as db:
|
||||
data = [{"role_id": "1", "email": "member1@email.com"},
|
||||
{"role_id": "1", "email": "member2@email.com"}]
|
||||
members = services.create_members_in_bulk(data, project_id=1)
|
||||
db.save_in_bulk.assert_called_once_with(members, None, None)
|
||||
|
||||
|
||||
def test_api_create_bulk_members(client):
|
||||
|
|
|
@ -25,5 +25,4 @@ def test_api_partially_update_project(client):
|
|||
|
||||
client.login(project.owner)
|
||||
response = client.json.patch(url, json.dumps(data))
|
||||
|
||||
assert response.status_code == 400
|
||||
|
|
|
@ -1,18 +1,11 @@
|
|||
import pytest
|
||||
|
||||
from django.db import models
|
||||
|
||||
from taiga.base import tags
|
||||
|
||||
pytestmark = pytest.mark.django_db
|
||||
|
||||
|
||||
class TaggedModel(tags.TaggedMixin, models.Model):
|
||||
class Meta:
|
||||
app_label = "base"
|
||||
from taiga.base import tags
|
||||
from tests.models import TaggedModel
|
||||
|
||||
|
||||
def test():
|
||||
def test_tags():
|
||||
tags1 = TaggedModel.objects.create(tags=["foo", "bar"])
|
||||
tags2 = TaggedModel.objects.create(tags=["foo"])
|
||||
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from unittest import mock
|
||||
import json
|
||||
|
||||
from django.core.urlresolvers import reverse
|
||||
|
||||
|
@ -23,15 +24,14 @@ Task #2
|
|||
assert tasks[1].subject == "Task #2"
|
||||
|
||||
|
||||
@mock.patch("taiga.projects.tasks.services.db")
|
||||
def test_create_tasks_in_bulk(db):
|
||||
data = """
|
||||
Task #1
|
||||
Task #2
|
||||
"""
|
||||
tasks = services.create_tasks_in_bulk(data)
|
||||
|
||||
db.save_in_bulk.assert_called_once_with(tasks, None, None)
|
||||
with mock.patch("taiga.projects.tasks.services.db") as db:
|
||||
tasks = services.create_tasks_in_bulk(data)
|
||||
db.save_in_bulk.assert_called_once_with(tasks, None, None)
|
||||
|
||||
|
||||
def test_api_update_task_tags(client):
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
from unittest import mock
|
||||
|
||||
from django.core.urlresolvers import reverse
|
||||
|
||||
from taiga.base.utils import json
|
||||
|
@ -23,24 +22,24 @@ User Story #2
|
|||
assert userstories[1].subject == "User Story #2"
|
||||
|
||||
|
||||
@mock.patch("taiga.projects.userstories.services.db")
|
||||
def test_create_userstories_in_bulk(db):
|
||||
def test_create_userstories_in_bulk():
|
||||
data = """
|
||||
User Story #1
|
||||
User Story #2
|
||||
"""
|
||||
userstories = services.create_userstories_in_bulk(data)
|
||||
|
||||
db.save_in_bulk.assert_called_once_with(userstories, None, None)
|
||||
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)
|
||||
|
||||
|
||||
@mock.patch("taiga.projects.userstories.services.db")
|
||||
def test_update_userstories_order_in_bulk(db):
|
||||
def test_update_userstories_order_in_bulk():
|
||||
data = [{"us_id": 1, "order": 1}, {"us_id": 2, "order": 2}]
|
||||
services.update_userstories_order_in_bulk(data)
|
||||
|
||||
db.update_in_bulk_with_ids.assert_called_once_with([1, 2], [{"order": 1}, {"order": 2}],
|
||||
model=models.UserStory)
|
||||
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}],
|
||||
model=models.UserStory)
|
||||
|
||||
|
||||
def test_api_delete_userstory(client):
|
||||
|
|
|
@ -76,6 +76,7 @@ def test_get_issue_votes(client):
|
|||
user = f.UserFactory.create()
|
||||
issue = f.create_issue(owner=user)
|
||||
url = reverse("issues-detail", args=(issue.id,))
|
||||
|
||||
f.VotesFactory.create(content_object=issue, count=5)
|
||||
|
||||
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.deferred import defer, call_async, apply_async
|
||||
|
||||
from ..utils import set_settings
|
||||
|
||||
|
||||
@set_settings(CELERY_ALWAYS_EAGER=False)
|
||||
@mock.patch("taiga.deferred.app")
|
||||
def test_defer(app):
|
||||
def test_defer():
|
||||
# settings.CELERY_ALWAYS_EAGER = True
|
||||
name = "task name"
|
||||
args = (1, 2)
|
||||
kwargs = {"kw": "keyword argument"}
|
||||
|
||||
defer(name, *args, **kwargs)
|
||||
|
||||
app.send_task.assert_called_once_with(name, args, kwargs, routing_key="transient.deferred")
|
||||
with mock.patch("taiga.deferred.app") as app:
|
||||
defer(name, *args, **kwargs)
|
||||
app.tasks[name].apply.assert_called_once_with(args, kwargs,
|
||||
routing_key="transient.deferred")
|
||||
|
||||
|
||||
@set_settings(CELERY_ALWAYS_EAGER=False)
|
||||
@mock.patch("taiga.deferred.app")
|
||||
def test_apply_async(app):
|
||||
def test_apply_async():
|
||||
name = "task name"
|
||||
args = (1, 2)
|
||||
kwargs = {"kw": "keyword argument"}
|
||||
|
||||
apply_async(name, args, kwargs)
|
||||
|
||||
app.send_task.assert_called_once_with(name, args, kwargs)
|
||||
with mock.patch("taiga.deferred.app") as app:
|
||||
apply_async(name, args, kwargs)
|
||||
app.tasks[name].apply.assert_called_once_with(args, kwargs)
|
||||
|
||||
|
||||
@set_settings(CELERY_ALWAYS_EAGER=False)
|
||||
@mock.patch("taiga.deferred.app")
|
||||
def test_call_async(app):
|
||||
def test_call_async():
|
||||
name = "task name"
|
||||
args = (1, 2)
|
||||
kwargs = {"kw": "keyword argument"}
|
||||
|
||||
call_async(name, *args, **kwargs)
|
||||
|
||||
app.send_task.assert_called_once_with(name, args, kwargs)
|
||||
with mock.patch("taiga.deferred.app") as app:
|
||||
call_async(name, *args, **kwargs)
|
||||
app.tasks[name].apply.assert_called_once_with(args, kwargs)
|
||||
|
||||
|
||||
@set_settings(CELERY_ALWAYS_EAGER=True)
|
||||
def test_task_invocation():
|
||||
celery.app.task(name="_test_task")(lambda: 1)
|
||||
|
||||
assert defer("_test_task").get() == 1
|
||||
|
|
Loading…
Reference in New Issue