diff --git a/pagure/ui/repo.py b/pagure/ui/repo.py index 42d552d..644d393 100644 --- a/pagure/ui/repo.py +++ b/pagure/ui/repo.py @@ -1087,7 +1087,7 @@ def update_milestones(repo, username=None): break for milestone_date in milestone_dates: - if milestone_dates.count(milestone_date) != 1: + if milestone_date and milestone_dates.count(milestone_date) != 1: flask.flash( 'Date %s is present %s times' % ( milestone_date, milestone_dates.count(milestone_date) diff --git a/tests/test_pagure_flask_ui_roadmap.py b/tests/test_pagure_flask_ui_roadmap.py index 9cc94f4..9f514d6 100644 --- a/tests/test_pagure_flask_ui_roadmap.py +++ b/tests/test_pagure_flask_ui_roadmap.py @@ -339,6 +339,38 @@ class PagureFlaskRoadmaptests(tests.Modeltests): @patch('pagure.lib.git.update_git') @patch('pagure.lib.notify.send_email') + def test_milestones_without_dates(self, p_send_email, p_ugt): + """ Test creating two milestones with no dates. """ + tests.create_projects(self.session) + tests.create_projects_git(os.path.join(tests.HERE), bare=True) + + user = tests.FakeUser() + user.username = 'pingou' + with tests.user_set(pagure.APP, user): + # Get the CSRF token + output = self.app.get('/test/settings') + csrf_token = output.data.split( + 'name="csrf_token" type="hidden" value="')[1].split('">')[0] + + data = { + 'milestones': ['v1.0', 'v2.0'], + 'milestone_dates': ['', ''], + 'csrf_token': csrf_token, + } + output = self.app.post( + '/test/update/milestones', data=data, follow_redirects=True) + self.assertEqual(output.status_code, 200) + # Check the redirect + self.assertIn( + u'