Fix more tests
parent
3d7d660ab2
commit
43e4ff78b6
|
@ -141,7 +141,7 @@ def task_values(diff):
|
||||||
return values
|
return values
|
||||||
|
|
||||||
|
|
||||||
def wiki_values(diff):
|
def wikipage_values(diff):
|
||||||
values = _common_users_values(diff)
|
values = _common_users_values(diff)
|
||||||
return values
|
return values
|
||||||
|
|
||||||
|
@ -248,12 +248,12 @@ def task_freezer(task) -> dict:
|
||||||
return snapshot
|
return snapshot
|
||||||
|
|
||||||
|
|
||||||
def wiki_freezer(wiki) -> dict:
|
def wikipage_freezer(wiki) -> dict:
|
||||||
snapshot = {
|
snapshot = {
|
||||||
"slug": wiki.slug,
|
"slug": wiki.slug,
|
||||||
"owner": wiki.owner_id,
|
"owner": wiki.owner_id,
|
||||||
"content": wiki.content,
|
"content": wiki.content,
|
||||||
"content_home": mdrender(wiki.project, wiki.content),
|
"content_html": mdrender(wiki.project, wiki.content),
|
||||||
"watchers": [x.pk for x in wiki.watchers.all()],
|
"watchers": [x.pk for x in wiki.watchers.all()],
|
||||||
"attachments": extract_attachments(wiki),
|
"attachments": extract_attachments(wiki),
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,3 +75,4 @@ class Command(BaseCommand):
|
||||||
self.handle_generic_model("tasks", "Task")
|
self.handle_generic_model("tasks", "Task")
|
||||||
self.handle_generic_model("userstories", "UserStory")
|
self.handle_generic_model("userstories", "UserStory")
|
||||||
self.handle_generic_model("issues", "Issue")
|
self.handle_generic_model("issues", "Issue")
|
||||||
|
self.handle_generic_model("wiki", "WikiPage")
|
||||||
|
|
|
@ -272,22 +272,22 @@ from .freeze_impl import milestone_freezer
|
||||||
from .freeze_impl import userstory_freezer
|
from .freeze_impl import userstory_freezer
|
||||||
from .freeze_impl import issue_freezer
|
from .freeze_impl import issue_freezer
|
||||||
from .freeze_impl import task_freezer
|
from .freeze_impl import task_freezer
|
||||||
from .freeze_impl import wiki_freezer
|
from .freeze_impl import wikipage_freezer
|
||||||
|
|
||||||
register_freeze_implementation(milestone_freezer, typename="milestones.milestone")
|
register_freeze_implementation(milestone_freezer, typename="milestones.milestone")
|
||||||
register_freeze_implementation(userstory_freezer, typename="userstories.userstory")
|
register_freeze_implementation(userstory_freezer, typename="userstories.userstory")
|
||||||
register_freeze_implementation(issue_freezer, typename="issues.issue")
|
register_freeze_implementation(issue_freezer, typename="issues.issue")
|
||||||
register_freeze_implementation(task_freezer, typename="tasks.task")
|
register_freeze_implementation(task_freezer, typename="tasks.task")
|
||||||
register_freeze_implementation(wiki_freezer, typename="wiki.wiki")
|
register_freeze_implementation(wikipage_freezer, typename="wiki.wikipage")
|
||||||
|
|
||||||
from .freeze_impl import milestone_values
|
from .freeze_impl import milestone_values
|
||||||
from .freeze_impl import userstory_values
|
from .freeze_impl import userstory_values
|
||||||
from .freeze_impl import issue_values
|
from .freeze_impl import issue_values
|
||||||
from .freeze_impl import task_values
|
from .freeze_impl import task_values
|
||||||
from .freeze_impl import wiki_values
|
from .freeze_impl import wikipage_values
|
||||||
|
|
||||||
register_values_implementation(milestone_values, typename="milestones.milestone")
|
register_values_implementation(milestone_values, typename="milestones.milestone")
|
||||||
register_values_implementation(userstory_values, typename="userstories.userstory")
|
register_values_implementation(userstory_values, typename="userstories.userstory")
|
||||||
register_values_implementation(issue_values, typename="issues.issue")
|
register_values_implementation(issue_values, typename="issues.issue")
|
||||||
register_values_implementation(task_values, typename="tasks.task")
|
register_values_implementation(task_values, typename="tasks.task")
|
||||||
register_values_implementation(wiki_values, typename="wiki.wiki")
|
register_values_implementation(wikipage_values, typename="wiki.wikipage")
|
||||||
|
|
|
@ -65,22 +65,6 @@ class Issue(NeighborsMixin, WatchedMixin, BlockedMixin, models.Model):
|
||||||
tags = PickledObjectField(null=False, blank=True, verbose_name=_("tags"))
|
tags = PickledObjectField(null=False, blank=True, verbose_name=_("tags"))
|
||||||
attachments = generic.GenericRelation("attachments.Attachment")
|
attachments = generic.GenericRelation("attachments.Attachment")
|
||||||
|
|
||||||
notifiable_fields = [
|
|
||||||
"subject",
|
|
||||||
"milestone",
|
|
||||||
"owner",
|
|
||||||
"assigned_to",
|
|
||||||
"finished_date",
|
|
||||||
"type",
|
|
||||||
"status",
|
|
||||||
"severity",
|
|
||||||
"priority",
|
|
||||||
"tags",
|
|
||||||
"description",
|
|
||||||
"is_blocked",
|
|
||||||
"blocked_comment"
|
|
||||||
]
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = "issue"
|
verbose_name = "issue"
|
||||||
verbose_name_plural = "issues"
|
verbose_name_plural = "issues"
|
||||||
|
|
|
@ -53,15 +53,6 @@ class Milestone(WatchedMixin, models.Model):
|
||||||
order = models.PositiveSmallIntegerField(default=1, null=False, blank=False,
|
order = models.PositiveSmallIntegerField(default=1, null=False, blank=False,
|
||||||
verbose_name=_("order"))
|
verbose_name=_("order"))
|
||||||
|
|
||||||
notifiable_fields = [
|
|
||||||
"name",
|
|
||||||
"owner",
|
|
||||||
"disponibility",
|
|
||||||
"closed",
|
|
||||||
"estimated_start",
|
|
||||||
"estimated_finish",
|
|
||||||
]
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = "milestone"
|
verbose_name = "milestone"
|
||||||
verbose_name_plural = "milestones"
|
verbose_name_plural = "milestones"
|
||||||
|
|
|
@ -162,13 +162,6 @@ class Project(ProjectDefaults, models.Model):
|
||||||
domain = models.ForeignKey("domains.Domain", related_name="projects", null=True, blank=True,
|
domain = models.ForeignKey("domains.Domain", related_name="projects", null=True, blank=True,
|
||||||
default=None, verbose_name=_("domain"))
|
default=None, verbose_name=_("domain"))
|
||||||
|
|
||||||
notifiable_fields = [
|
|
||||||
"name",
|
|
||||||
"total_milestones",
|
|
||||||
"total_story_points",
|
|
||||||
"description"
|
|
||||||
]
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = "project"
|
verbose_name = "project"
|
||||||
verbose_name_plural = "projects"
|
verbose_name_plural = "projects"
|
||||||
|
|
|
@ -63,19 +63,6 @@ class Task(WatchedMixin, BlockedMixin):
|
||||||
is_iocaine = models.BooleanField(default=False, null=False, blank=True,
|
is_iocaine = models.BooleanField(default=False, null=False, blank=True,
|
||||||
verbose_name=_("is iocaine"))
|
verbose_name=_("is iocaine"))
|
||||||
|
|
||||||
notifiable_fields = [
|
|
||||||
"subject",
|
|
||||||
"owner",
|
|
||||||
"assigned_to",
|
|
||||||
"finished_date",
|
|
||||||
"is_iocaine",
|
|
||||||
"status",
|
|
||||||
"description",
|
|
||||||
"tags",
|
|
||||||
"is_blocked",
|
|
||||||
"blocked_comment"
|
|
||||||
]
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = "task"
|
verbose_name = "task"
|
||||||
verbose_name_plural = "tasks"
|
verbose_name_plural = "tasks"
|
||||||
|
|
|
@ -97,23 +97,6 @@ class UserStory(NeighborsMixin, WatchedMixin, BlockedMixin, models.Model):
|
||||||
related_name="generated_user_stories",
|
related_name="generated_user_stories",
|
||||||
verbose_name=_("generated from issue"))
|
verbose_name=_("generated from issue"))
|
||||||
|
|
||||||
notifiable_fields = [
|
|
||||||
"subject",
|
|
||||||
"milestone",
|
|
||||||
"owner",
|
|
||||||
"assigned_to",
|
|
||||||
"finish_date",
|
|
||||||
"client_requirement",
|
|
||||||
"team_requirement",
|
|
||||||
"status",
|
|
||||||
"points",
|
|
||||||
"tags",
|
|
||||||
"description",
|
|
||||||
"is_blocked",
|
|
||||||
"blocked_comment",
|
|
||||||
"generated_from_isssue"
|
|
||||||
]
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
verbose_name = "user story"
|
verbose_name = "user story"
|
||||||
verbose_name_plural = "user stories"
|
verbose_name_plural = "user stories"
|
||||||
|
|
|
@ -18,9 +18,10 @@ from django.db import models
|
||||||
from django.contrib.contenttypes import generic
|
from django.contrib.contenttypes import generic
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.utils.translation import ugettext_lazy as _
|
from django.utils.translation import ugettext_lazy as _
|
||||||
|
from taiga.projects.notifications.models import WatchedMixin
|
||||||
|
|
||||||
|
|
||||||
class WikiPage(models.Model):
|
class WikiPage(WatchedMixin, models.Model):
|
||||||
project = models.ForeignKey("projects.Project", null=False, blank=False,
|
project = models.ForeignKey("projects.Project", null=False, blank=False,
|
||||||
related_name="wiki_pages", verbose_name=_("project"))
|
related_name="wiki_pages", verbose_name=_("project"))
|
||||||
slug = models.SlugField(max_length=500, db_index=True, null=False, blank=False,
|
slug = models.SlugField(max_length=500, db_index=True, null=False, blank=False,
|
||||||
|
@ -50,6 +51,14 @@ class WikiPage(models.Model):
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return "project {0} - {1}".format(self.project_id, self.slug)
|
return "project {0} - {1}".format(self.project_id, self.slug)
|
||||||
|
|
||||||
|
def _get_watchers_by_role(self):
|
||||||
|
return {
|
||||||
|
"owner": self.owner,
|
||||||
|
"assigned_to": None,
|
||||||
|
"suscribed_watchers": self.watchers.all(),
|
||||||
|
"project": self.project,
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class WikiLink(models.Model):
|
class WikiLink(models.Model):
|
||||||
project = models.ForeignKey("projects.Project", null=False, blank=False,
|
project = models.ForeignKey("projects.Project", null=False, blank=False,
|
||||||
|
|
|
@ -159,7 +159,7 @@ class WikiPagesTestCase(test.TestCase):
|
||||||
content_type="application/json")
|
content_type="application/json")
|
||||||
self.assertEqual(response.status_code, 201)
|
self.assertEqual(response.status_code, 201)
|
||||||
self.assertEqual(WikiPage.objects.all().count(), 3)
|
self.assertEqual(WikiPage.objects.all().count(), 3)
|
||||||
self.assertEqual(len(mail.outbox), 0)
|
self.assertEqual(len(mail.outbox), 2)
|
||||||
self.client.logout()
|
self.client.logout()
|
||||||
|
|
||||||
def test_create_wiki_page_by_membership(self):
|
def test_create_wiki_page_by_membership(self):
|
||||||
|
@ -180,7 +180,7 @@ class WikiPagesTestCase(test.TestCase):
|
||||||
content_type="application/json")
|
content_type="application/json")
|
||||||
self.assertEqual(response.status_code, 201)
|
self.assertEqual(response.status_code, 201)
|
||||||
self.assertEqual(WikiPage.objects.all().count(), 3)
|
self.assertEqual(WikiPage.objects.all().count(), 3)
|
||||||
self.assertEqual(len(mail.outbox), 0)
|
self.assertEqual(len(mail.outbox), 2)
|
||||||
self.client.logout()
|
self.client.logout()
|
||||||
|
|
||||||
def test_create_wiki_page_by_membership_with_wron_project(self):
|
def test_create_wiki_page_by_membership_with_wron_project(self):
|
||||||
|
@ -254,7 +254,7 @@ class WikiPagesTestCase(test.TestCase):
|
||||||
self.assertEqual(response.status_code, 200)
|
self.assertEqual(response.status_code, 200)
|
||||||
self.assertEqual(data["content"], response.data["content"])
|
self.assertEqual(data["content"], response.data["content"])
|
||||||
self.assertEqual(WikiPage.objects.all().count(), 2)
|
self.assertEqual(WikiPage.objects.all().count(), 2)
|
||||||
self.assertEqual(len(mail.outbox), 0)
|
self.assertEqual(len(mail.outbox), 2)
|
||||||
self.client.logout()
|
self.client.logout()
|
||||||
|
|
||||||
def test_edit_wiki_page_by_project_owner_with_wron_project(self):
|
def test_edit_wiki_page_by_project_owner_with_wron_project(self):
|
||||||
|
@ -292,7 +292,7 @@ class WikiPagesTestCase(test.TestCase):
|
||||||
self.assertEqual(response.status_code, 200)
|
self.assertEqual(response.status_code, 200)
|
||||||
self.assertEqual(data["content"], response.data["content"])
|
self.assertEqual(data["content"], response.data["content"])
|
||||||
self.assertEqual(WikiPage.objects.all().count(), 2)
|
self.assertEqual(WikiPage.objects.all().count(), 2)
|
||||||
self.assertEqual(len(mail.outbox), 0)
|
self.assertEqual(len(mail.outbox), 2)
|
||||||
self.client.logout()
|
self.client.logout()
|
||||||
|
|
||||||
def test_edit_wiki_page_by_owner_with_wron_project(self):
|
def test_edit_wiki_page_by_owner_with_wron_project(self):
|
||||||
|
@ -330,7 +330,7 @@ class WikiPagesTestCase(test.TestCase):
|
||||||
self.assertEqual(response.status_code, 200)
|
self.assertEqual(response.status_code, 200)
|
||||||
self.assertEqual(data["content"], response.data["content"])
|
self.assertEqual(data["content"], response.data["content"])
|
||||||
self.assertEqual(WikiPage.objects.all().count(), 2)
|
self.assertEqual(WikiPage.objects.all().count(), 2)
|
||||||
self.assertEqual(len(mail.outbox), 0)
|
self.assertEqual(len(mail.outbox), 2)
|
||||||
self.client.logout()
|
self.client.logout()
|
||||||
|
|
||||||
def test_edit_wiki_page_by_membership_with_wron_project(self):
|
def test_edit_wiki_page_by_membership_with_wron_project(self):
|
||||||
|
|
Loading…
Reference in New Issue