Add tests & milestone to Issues bulk-create

remotes/origin/endpoint-for-estimation-system-new
Álex Hermida 2018-07-02 12:55:13 +02:00 committed by Alex Hermida
parent b6b421245e
commit ab59782103
3 changed files with 52 additions and 3 deletions

View File

@ -228,9 +228,12 @@ class IssueViewSet(OCCResourceMixin, VotedResourceMixin, HistoryResourceMixin, W
raise exc.Blocked(_("Blocked element")) raise exc.Blocked(_("Blocked element"))
issues = services.create_issues_in_bulk( issues = services.create_issues_in_bulk(
data["bulk_issues"], project=project, owner=request.user, data["bulk_issues"], milestone_id=data["milestone_id"],
status=project.default_issue_status, severity=project.default_severity, project=project, owner=request.user,
priority=project.default_priority, type=project.default_issue_type, status=project.default_issue_status,
severity=project.default_severity,
priority=project.default_priority,
type=project.default_issue_type,
callback=self.post_save, precall=self.pre_save) callback=self.post_save, precall=self.pre_save)
issues = self.get_queryset().filter(id__in=[i.id for i in issues]) issues = self.get_queryset().filter(id__in=[i.id for i in issues])

View File

@ -41,4 +41,5 @@ class IssueValidator(AssignedToValidator, WatchersValidator, EditableWatchedReso
class IssuesBulkValidator(ProjectExistsValidator, validators.Validator): class IssuesBulkValidator(ProjectExistsValidator, validators.Validator):
project_id = serializers.IntegerField() project_id = serializers.IntegerField()
milestone_id = serializers.IntegerField()
bulk_issues = serializers.CharField() bulk_issues = serializers.CharField()

View File

@ -710,3 +710,48 @@ def test_api_validator_assigned_to_when_create_issues(client):
response = client.json.post(url, json.dumps(data)) response = client.json.post(url, json.dumps(data))
assert response.status_code == 400, response.data assert response.status_code == 400, response.data
def test_create_issue_in_milestone(client):
user = f.UserFactory.create()
project = f.ProjectFactory.create(owner=user, default_task_status=None)
project.default_issue_status = f.IssueStatusFactory.create(project=project)
f.MembershipFactory.create(project=project, user=user, is_admin=True)
milestone = f.MilestoneFactory(project=project)
project.save()
url = reverse("issues-list")
data = {"subject": "Test issue with milestone", "project": project.id,
"milestone": milestone.id}
client.login(user)
response = client.json.post(url, json.dumps(data))
assert response.status_code == 201
assert response.data['status'] == project.default_issue_status.id
assert response.data['project'] == project.id
assert response.data['milestone'] == milestone.id
def test_api_create_in_bulk_with_status_milestone(client):
user = f.UserFactory.create()
project = f.ProjectFactory.create(owner=user, default_task_status=None)
f.MembershipFactory.create(project=project, user=user, is_admin=True)
project.default_issue_status = f.IssueStatusFactory.create(project=project)
project.save()
milestone = f.MilestoneFactory(project=project)
url = reverse("issues-bulk-create")
data = {
"bulk_issues": "Issue #1\nIssue #2",
"project_id": project.id,
"milestone_id": milestone.id,
"status_id": project.default_issue_status.id
}
client.login(user)
response = client.json.post(url, json.dumps(data))
assert response.status_code == 200
assert response.data[0]["status"] == project.default_issue_status.id
assert response.data[0]["milestone"] == milestone.id