jenkins-bot has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/404085 )

Change subject: Replace assertRaises with assertRaisesRegex in isbn_tests.py
......................................................................


Replace assertRaises with assertRaisesRegex in isbn_tests.py

assertRaises is not as good of a test as asserRaisesRegex.
The latter has an extra parameter to match the exception message,
allowing more more precision when checking an error.

Bug: T154281
Change-Id: Iaab3472bbae926caf5d68239b3828b5691ee38b9
---
M tests/isbn_tests.py
1 file changed, 53 insertions(+), 15 deletions(-)

Approvals:
  John Vandenberg: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/tests/isbn_tests.py b/tests/isbn_tests.py
index df00417..ae867d2 100644
--- a/tests/isbn_tests.py
+++ b/tests/isbn_tests.py
@@ -34,10 +34,29 @@
 else:
     AnyIsbnValidationException = IsbnExc
 
+ISBNINVALIDCHECKSUM_RE = (
+    r'The ISBN checksum of ([A-Z0-9]*) is incorrect'
+)
+
+ISBNINVALIDLENGTH_RE = (
+    r'The ISBN ([A-Z0-9]*) is not (10|13) digits long'
+)
+
+ISBNINVALIDCHARACTERS_RE = (
+    r'The ISBN ([A-Z0-9]*) contains invalid characters'
+)
+
 
 class TestCosmeticChangesISBN(DefaultDrySiteTestCase):
 
     """Test CosmeticChanges ISBN fix."""
+
+    INVALIDNUMBERLENGTH_RE = (
+        r'The number has an invalid length'
+    )
+    INVALIDNUMBERCHECKSUM_RE = (
+        r'The number\'s checksum or check digit is invalid'
+    )
 
     def test_valid_isbn(self):
         """Test ISBN."""
@@ -54,17 +73,25 @@
         cc = CosmeticChangesToolkit(self.site, namespace=0)
 
         # Invalid characters
-        self.assertRaises(AnyIsbnValidationException,
-                          cc.fix_ISBN, 'ISBN 0975229LOL')
+        self.assertRaisesRegex(AnyIsbnValidationException,
+                               (ISBNINVALIDLENGTH_RE + '|' +
+                                self.INVALIDNUMBERLENGTH_RE),
+                               cc.fix_ISBN, 'ISBN 0975229LOL')
         # Invalid checksum
-        self.assertRaises(AnyIsbnValidationException,
-                          cc.fix_ISBN, 'ISBN 0975229801')
+        self.assertRaisesRegex(AnyIsbnValidationException,
+                               (ISBNINVALIDCHECKSUM_RE + '|' +
+                                self.INVALIDNUMBERCHECKSUM_RE),
+                               cc.fix_ISBN, 'ISBN 0975229801')
         # Invalid length
-        self.assertRaises(AnyIsbnValidationException,
-                          cc.fix_ISBN, 'ISBN 09752298')
+        self.assertRaisesRegex(AnyIsbnValidationException,
+                               (ISBNINVALIDLENGTH_RE + '|' +
+                                self.INVALIDNUMBERLENGTH_RE),
+                               cc.fix_ISBN, 'ISBN 09752298')
         # X in the middle
-        self.assertRaises(AnyIsbnValidationException,
-                          cc.fix_ISBN, 'ISBN 09752X9801')
+        self.assertRaisesRegex(AnyIsbnValidationException,
+                               (ISBNINVALIDCHARACTERS_RE + '|' +
+                                self.INVALIDNUMBERLENGTH_RE),
+                               cc.fix_ISBN, 'ISBN 09752X9801')
 
     def test_ignore_invalid_isbn(self):
         """Test fixing ISBN numbers with an invalid ISBN."""
@@ -77,6 +104,10 @@
 class TestIsbn(TestCase):
 
     """Test ISBN-related classes and helper functions."""
+
+    ISBNXINTHEMIDDLE_RE = (
+        r'ISBN ([A-Z0-9]*): X is only allowed at the end of the ISBN'
+    )
 
     net = False
 
@@ -94,10 +125,14 @@
         self.assertEqual(isbn13.code, '978-0-9752298-0-4')
 
         # Errors
-        self.assertRaises(IsbnExc, ISBN10, '0975229LOL')  # Invalid characters
-        self.assertRaises(IsbnExc, ISBN10, '0975229801')  # Invalid checksum
-        self.assertRaises(IsbnExc, ISBN10, '09752298')  # Invalid length
-        self.assertRaises(IsbnExc, ISBN10, '09752X9801')  # X in the middle
+        self.assertRaisesRegex(IsbnExc, ISBNINVALIDCHARACTERS_RE,
+                               ISBN10, '0975229LOL')  # Invalid characters
+        self.assertRaisesRegex(IsbnExc, ISBNINVALIDCHECKSUM_RE,
+                               ISBN10, '0975229801')  # Invalid checksum
+        self.assertRaisesRegex(IsbnExc, ISBNINVALIDLENGTH_RE,
+                               ISBN10, '09752298')  # Invalid length
+        self.assertRaisesRegex(IsbnExc, self.ISBNXINTHEMIDDLE_RE,
+                               ISBN10, '09752X9801')  # X in the middle
 
     def test_isbn13(self):
         """Test ISBN13."""
@@ -111,9 +146,12 @@
         self.assertEqual(isbn.code, '9788090273412')
 
         # Errors
-        self.assertRaises(IsbnExc, ISBN13, '9783161484LOL')  # Invalid chars
-        self.assertRaises(IsbnExc, ISBN13, '9783161484105')  # Invalid checksum
-        self.assertRaises(IsbnExc, ISBN13, '9783161484')  # Invalid length
+        self.assertRaisesRegex(IsbnExc, ISBNINVALIDCHARACTERS_RE,
+                               ISBN13, '9783161484LOL')  # Invalid characters
+        self.assertRaisesRegex(IsbnExc, ISBNINVALIDCHECKSUM_RE,
+                               ISBN13, '9783161484105')  # Invalid checksum
+        self.assertRaisesRegex(IsbnExc, ISBNINVALIDLENGTH_RE,
+                               ISBN13, '9783161484')  # Invalid length
 
     def test_general(self):
         """Test things that apply both to ISBN10 and ISBN13."""

-- 
To view, visit https://gerrit.wikimedia.org/r/404085
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Iaab3472bbae926caf5d68239b3828b5691ee38b9
Gerrit-PatchSet: 14
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Divadsn <divad.nnamtd...@gmail.com>
Gerrit-Reviewer: Divadsn <divad.nnamtd...@gmail.com>
Gerrit-Reviewer: Framawiki <framaw...@tools.wmflabs.org>
Gerrit-Reviewer: John Vandenberg <jay...@gmail.com>
Gerrit-Reviewer: MtDu <justin.d...@gmail.com>
Gerrit-Reviewer: Xqt <i...@gno.de>
Gerrit-Reviewer: Zoranzoki21 <zorandori4...@gmail.com>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to