| OLD | NEW | 
|    1 # This file is part of the Adblock Plus web scripts, |    1 # This file is part of the Adblock Plus web scripts, | 
|    2 # Copyright (C) 2006-present eyeo GmbH |    2 # Copyright (C) 2006-present eyeo GmbH | 
|    3 # |    3 # | 
|    4 # Adblock Plus is free software: you can redistribute it and/or modify |    4 # Adblock Plus is free software: you can redistribute it and/or modify | 
|    5 # it under the terms of the GNU General Public License version 3 as |    5 # it under the terms of the GNU General Public License version 3 as | 
|    6 # published by the Free Software Foundation. |    6 # published by the Free Software Foundation. | 
|    7 # |    7 # | 
|    8 # Adblock Plus is distributed in the hope that it will be useful, |    8 # Adblock Plus is distributed in the hope that it will be useful, | 
|    9 # but WITHOUT ANY WARRANTY; without even the implied warranty of |    9 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|   10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the |   10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|   11 # GNU General Public License for more details. |   11 # GNU General Public License for more details. | 
|   12 # |   12 # | 
|   13 # You should have received a copy of the GNU General Public License |   13 # You should have received a copy of the GNU General Public License | 
|   14 # along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. |   14 # along with Adblock Plus.  If not, see <http://www.gnu.org/licenses/>. | 
|   15  |   15  | 
|   16 import ConfigParser |   16 import ConfigParser | 
|   17 import mock |   17 import mock | 
|   18 import unittest |   18 import unittest | 
|   19  |   19  | 
|   20 import sitescripts.hg.bin.update_issues as update_issues |   20 import sitescripts.hg.bin.update_issues as update_issues | 
|   21  |   21  | 
|   22  |   22  | 
|   23 def _issue(component, milestone='', can_resolve=False): |   23 def _issue(component, milestone='', can_resolve=False): | 
|   24     issue = { |   24     issue = { | 
|   25         'attrs': {'_ts': 1, 'milestone': milestone, 'component': component}, |   25         'attrs': {'_ts': 1, 'milestone': milestone, 'component': component}, | 
|   26         'actions': [['leave', '', '', []]] |   26         'actions': [['leave', '', '', []]], | 
|   27     } |   27     } | 
|   28     if can_resolve: |   28     if can_resolve: | 
|   29         issue['actions'].append(['resolve', '', '', []]) |   29         issue['actions'].append(['resolve', '', '', []]) | 
|   30     return issue |   30     return issue | 
|   31  |   31  | 
|   32  |   32  | 
|   33 ISSUES = { |   33 ISSUES = { | 
|   34     1337: _issue(component='one', can_resolve=True), |   34     1337: _issue(component='one', can_resolve=True), | 
|   35     2448: _issue(component='two'), |   35     2448: _issue(component='two'), | 
|   36     3559: _issue(component='one', milestone='other'), |   36     3559: _issue(component='one', milestone='other'), | 
|   37     4670: _issue(component='three', can_resolve=True), |   37     4670: _issue(component='three', can_resolve=True), | 
|   38     5781: _issue(component='four', can_resolve=True) |   38     5781: _issue(component='four', can_resolve=True), | 
|   39 } |   39 } | 
|   40  |   40  | 
|   41 MILESTONES = { |   41 MILESTONES = { | 
|   42     'completed': {'completed': True, 'name': 'completed'}, |   42     'completed': {'completed': True, 'name': 'completed'}, | 
|   43     'current': {'completed': None, 'name': 'current'}, |   43     'current': {'completed': None, 'name': 'current'}, | 
|   44     'other': {'completed': None, 'name': 'other'} |   44     'other': {'completed': None, 'name': 'other'}, | 
|   45 } |   45 } | 
|   46  |   46  | 
|   47  |   47  | 
|   48 class _TestBase(unittest.TestCase): |   48 class _TestBase(unittest.TestCase): | 
|   49     """Base class for hook tests that prepares the environment.""" |   49     """Base class for hook tests that prepares the environment.""" | 
|   50  |   50  | 
|   51     def _patchWith(self, target, return_value): |   51     def _patchWith(self, target, return_value): | 
|   52         patcher = mock.patch(target, return_value=return_value) |   52         patcher = mock.patch(target, return_value=return_value) | 
|   53         patcher.start() |   53         patcher.start() | 
|   54         self.addCleanup(patcher.stop) |   54         self.addCleanup(patcher.stop) | 
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  122         return updates |  122         return updates | 
|  123  |  123  | 
|  124     def test_commits_with_invalid_message_format_ignored(self): |  124     def test_commits_with_invalid_message_format_ignored(self): | 
|  125         self._run_hook([ |  125         self._run_hook([ | 
|  126             '', |  126             '', | 
|  127             'Issue #1337 - Extraneous characters in issue number', |  127             'Issue #1337 - Extraneous characters in issue number', | 
|  128             'Issue 1337',  # No dash, no message. |  128             'Issue 1337',  # No dash, no message. | 
|  129             'Issue 1337: Colon instead of dash', |  129             'Issue 1337: Colon instead of dash', | 
|  130             'Noissue no dash', |  130             'Noissue no dash', | 
|  131             'Issue 1337-No space around dash', |  131             'Issue 1337-No space around dash', | 
|  132             'Fixes 1337 no dash' |  132             'Fixes 1337 no dash', | 
|  133         ], warning_count=7) |  133         ], warning_count=7) | 
|  134  |  134  | 
|  135     def test_noissue_commits_ignored(self): |  135     def test_noissue_commits_ignored(self): | 
|  136         self._run_hook(['Noissue - Foo', 'noissue - Bar'])  # No updates. |  136         self._run_hook(['Noissue - Foo', 'noissue - Bar'])  # No updates. | 
|  137  |  137  | 
|  138     def test_single_issue_referenced(self): |  138     def test_single_issue_referenced(self): | 
|  139         updates = self._run_hook(['Issue 1337 - Foo'], update_count=1) |  139         updates = self._run_hook(['Issue 1337 - Foo'], update_count=1) | 
|  140         self.assertEqual(updates[0][0][0], 1337) |  140         self.assertEqual(updates[0][0][0], 1337) | 
|  141  |  141  | 
|  142     def test_multiline_commit_message(self): |  142     def test_multiline_commit_message(self): | 
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  233  |  233  | 
|  234     def test_fix_nonexistent(self): |  234     def test_fix_nonexistent(self): | 
|  235         self._run_hook(['Fixes 7331 - Foo'], warning_count=1) |  235         self._run_hook(['Fixes 7331 - Foo'], warning_count=1) | 
|  236  |  236  | 
|  237     def test_fix_closed_with_assigned_milestone(self): |  237     def test_fix_closed_with_assigned_milestone(self): | 
|  238         self._run_hook(['fixes 3559 - Foo'])  # No updates. |  238         self._run_hook(['fixes 3559 - Foo'])  # No updates. | 
|  239  |  239  | 
|  240  |  240  | 
|  241 if __name__ == '__main__': |  241 if __name__ == '__main__': | 
|  242     unittest.main() |  242     unittest.main() | 
| OLD | NEW |