From 89ada60b6442f320cbf0714288a9757543142f35 Mon Sep 17 00:00:00 2001 From: skrzepto Date: May 31 2016 14:03:44 +0000 Subject: issue #1003: check if the tag exists and if the tag matches anything already there. With a basic unit test --- diff --git a/pagure/ui/issues.py b/pagure/ui/issues.py index a19296c..ebaae4d 100644 --- a/pagure/ui/issues.py +++ b/pagure/ui/issues.py @@ -275,6 +275,11 @@ def edit_tag(repo, tag, username=None): if not repo.settings.get('issue_tracker', True): flask.abort(404, 'No issue tracker found for this project') + tags = pagure.lib.get_tags_of_project(SESSION, repo) + + if not tags or tag not in [t.tag for t in tags]: + flask.abort(404, 'Tag %s not found in this project' % tag ) + form = pagure.forms.AddIssueTagForm() if form.validate_on_submit(): new_tag = form.tag.data diff --git a/tests/test_pagure_flask_ui_issues.py b/tests/test_pagure_flask_ui_issues.py index f0aaef8..e9d51d2 100644 --- a/tests/test_pagure_flask_ui_issues.py +++ b/tests/test_pagure_flask_ui_issues.py @@ -1339,6 +1339,10 @@ class PagureFlaskIssuestests(tests.Modeltests): # Edit tag user.username = 'pingou' with tests.user_set(pagure.APP, user): + #Edit a tag that doesn't exit + output = self.app.get('/test/tag/does_not_exist/edit') + self.assertEqual(output.status_code, 404) + output = self.app.get('/test/tag/tag1/edit') self.assertEqual(output.status_code, 200) self.assertTrue('

Edit tag: tag1

' in output.data)