Test move and close oprevious sprint
parent
0cb423c929
commit
fe4cddac30
|
@ -29,7 +29,7 @@ from . import models
|
||||||
|
|
||||||
|
|
||||||
class MilestoneExistsValidator:
|
class MilestoneExistsValidator:
|
||||||
def validate_sprint_id(self, attrs, source):
|
def validate_milestone_id(self, attrs, source):
|
||||||
value = attrs[source]
|
value = attrs[source]
|
||||||
if not models.Milestone.objects.filter(pk=value).exists():
|
if not models.Milestone.objects.filter(pk=value).exists():
|
||||||
msg = _("There's no milestone with that id")
|
msg = _("There's no milestone with that id")
|
||||||
|
@ -56,15 +56,6 @@ class UpdateMilestoneBulkValidator(MilestoneExistsValidator,
|
||||||
milestone_id = serializers.IntegerField()
|
milestone_id = serializers.IntegerField()
|
||||||
bulk_stories = _UserStoryMilestoneBulkValidator(many=True)
|
bulk_stories = _UserStoryMilestoneBulkValidator(many=True)
|
||||||
|
|
||||||
# def validate_milestone_id(self, attrs, source):
|
|
||||||
# filters = {
|
|
||||||
# "project__id": attrs["project_id"],
|
|
||||||
# "id": attrs[source]
|
|
||||||
# }
|
|
||||||
# if not Milestone.objects.filter(**filters).exists():
|
|
||||||
# raise ValidationError(_("The milestone isn't valid for the project"))
|
|
||||||
# return attrs
|
|
||||||
|
|
||||||
def validate_bulk_stories(self, attrs, source):
|
def validate_bulk_stories(self, attrs, source):
|
||||||
filters = {
|
filters = {
|
||||||
"project__id": attrs["project_id"],
|
"project__id": attrs["project_id"],
|
||||||
|
|
|
@ -188,24 +188,85 @@ def test_api_update_milestone_in_bulk_userstories(client):
|
||||||
is_admin=True)
|
is_admin=True)
|
||||||
milestone1 = f.MilestoneFactory.create(project=project)
|
milestone1 = f.MilestoneFactory.create(project=project)
|
||||||
milestone2 = f.MilestoneFactory.create(project=project)
|
milestone2 = f.MilestoneFactory.create(project=project)
|
||||||
|
|
||||||
us1 = f.create_userstory(project=project, milestone=milestone1,
|
us1 = f.create_userstory(project=project, milestone=milestone1,
|
||||||
sprint_order=1)
|
sprint_order=1)
|
||||||
us2 = f.create_userstory(project=project, milestone=milestone1,
|
us2 = f.create_userstory(project=project, milestone=milestone1,
|
||||||
sprint_order=2)
|
sprint_order=2)
|
||||||
|
|
||||||
url = reverse("milestones-bulk-update-items", kwargs={"pk": milestone1.pk})
|
|
||||||
|
|
||||||
data = {
|
|
||||||
"project_id": project.id,
|
|
||||||
"sprint_id": milestone2.id,
|
|
||||||
"bulk_stories": [{"us_id": us2.id, "order": 2}]
|
|
||||||
}
|
|
||||||
|
|
||||||
client.login(project.owner)
|
|
||||||
assert project.milestones.get(id=milestone1.id).user_stories.count() == 2
|
assert project.milestones.get(id=milestone1.id).user_stories.count() == 2
|
||||||
|
|
||||||
|
url = reverse("milestones-bulk-update-userstories", kwargs={"pk": milestone1.pk})
|
||||||
|
data = {
|
||||||
|
"project_id": project.id,
|
||||||
|
"milestone_id": milestone2.id,
|
||||||
|
"bulk_stories": [{"us_id": us2.id, "order": 2}]
|
||||||
|
}
|
||||||
|
client.login(project.owner)
|
||||||
|
|
||||||
response = client.json.post(url, json.dumps(data))
|
response = client.json.post(url, json.dumps(data))
|
||||||
|
|
||||||
assert response.status_code == 204, response.data
|
assert response.status_code == 204, response.data
|
||||||
assert project.milestones.get(id=milestone1.id).user_stories.count() == 1
|
assert project.milestones.get(id=milestone1.id).user_stories.count() == 1
|
||||||
assert project.milestones.get(id=milestone2.id).user_stories.count() == 1
|
assert project.milestones.get(id=milestone2.id).user_stories.count() == 1
|
||||||
|
|
||||||
|
|
||||||
|
def test_api_move_userstories_to_another_sprint(client):
|
||||||
|
project = f.create_project()
|
||||||
|
f.MembershipFactory.create(project=project, user=project.owner,
|
||||||
|
is_admin=True)
|
||||||
|
milestone1 = f.MilestoneFactory.create(project=project)
|
||||||
|
milestone2 = f.MilestoneFactory.create(project=project)
|
||||||
|
|
||||||
|
us1 = f.create_userstory(project=project, milestone=milestone1,
|
||||||
|
sprint_order=1)
|
||||||
|
us2 = f.create_userstory(project=project, milestone=milestone1,
|
||||||
|
sprint_order=2)
|
||||||
|
|
||||||
|
assert project.milestones.get(id=milestone1.id).user_stories.count() == 2
|
||||||
|
|
||||||
|
url = reverse("milestones-move-userstories-to-sprint", kwargs={"pk": milestone1.pk})
|
||||||
|
data = {
|
||||||
|
"project_id": project.id,
|
||||||
|
"milestone_id": milestone2.id,
|
||||||
|
"bulk_stories": [{"us_id": us2.id, "order": 2}]
|
||||||
|
}
|
||||||
|
client.login(project.owner)
|
||||||
|
|
||||||
|
response = client.json.post(url, json.dumps(data))
|
||||||
|
|
||||||
|
assert response.status_code == 204, response.data
|
||||||
|
assert project.milestones.get(id=milestone1.id).user_stories.count() == 1
|
||||||
|
assert project.milestones.get(id=milestone2.id).user_stories.count() == 1
|
||||||
|
|
||||||
|
|
||||||
|
def test_api_move_userstories_to_another_sprint_close_previous(client):
|
||||||
|
project = f.create_project()
|
||||||
|
f.MembershipFactory.create(project=project, user=project.owner,
|
||||||
|
is_admin=True)
|
||||||
|
milestone1 = f.MilestoneFactory.create(project=project)
|
||||||
|
milestone2 = f.MilestoneFactory.create(project=project)
|
||||||
|
|
||||||
|
closed_status = f.UserStoryStatusFactory.create(is_closed=True)
|
||||||
|
us1 = f.create_userstory(project=project, milestone=milestone1,
|
||||||
|
sprint_order=1, status=closed_status)
|
||||||
|
us2 = f.create_userstory(project=project, milestone=milestone1,
|
||||||
|
sprint_order=2)
|
||||||
|
|
||||||
|
assert milestone1.user_stories.count() == 2
|
||||||
|
assert not milestone1.closed
|
||||||
|
|
||||||
|
url = reverse("milestones-move-userstories-to-sprint", kwargs={"pk": milestone1.pk})
|
||||||
|
data = {
|
||||||
|
"project_id": project.id,
|
||||||
|
"milestone_id": milestone2.id,
|
||||||
|
"bulk_stories": [{"us_id": us2.id, "order": 2}]
|
||||||
|
}
|
||||||
|
client.login(project.owner)
|
||||||
|
|
||||||
|
response = client.json.post(url, json.dumps(data))
|
||||||
|
|
||||||
|
assert response.status_code == 204, response.data
|
||||||
|
assert project.milestones.get(id=milestone1.id).user_stories.count() == 1
|
||||||
|
assert project.milestones.get(id=milestone2.id).user_stories.count() == 1
|
||||||
|
assert project.milestones.get(id=milestone1.id).closed
|
||||||
|
|
Loading…
Reference in New Issue