Divadsn has uploaded a new change for review. ( 
https://gerrit.wikimedia.org/r/396589 )

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

Replace assertRaises with assertRaisesRegex in namespace_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: Ie6d334b2225cde1b2c4380b5e62b9860ba42a2fc
---
M tests/namespace_tests.py
1 file changed, 38 insertions(+), 20 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/pywikibot/core 
refs/changes/89/396589/1

diff --git a/tests/namespace_tests.py b/tests/namespace_tests.py
index 9897f03..0a293ad 100644
--- a/tests/namespace_tests.py
+++ b/tests/namespace_tests.py
@@ -229,6 +229,10 @@
 
     """Test static/classmethods in Namespace replaced by NamespacesDict."""
 
+    CONTAINSINAPPROPRIATE_RE = 'identifiers contains inappropriate types: 
(.*?)'
+    INTARGNOTSTRINGORNUMBER_RE = 'int\(\) argument must be a string or a 
number, not \'(.*?)\''
+    NAMESPACEIDNOTRECOGNISED_RE = 'Namespace identifier\(s\) not recognised: 
(.*?)'
+
     net = False
 
     def test_resolve_equal(self):
@@ -269,26 +273,33 @@
 
     def test_resolve_exceptions(self):
         """Test Namespace.resolve failure."""
-        self.assertRaises(TypeError, Namespace.resolve, [True])
-        self.assertRaises(TypeError, Namespace.resolve, [False])
-        self.assertRaises(TypeError, Namespace.resolve, [None])
-        self.assertRaises(TypeError, Namespace.resolve, True)
-        self.assertRaises(TypeError, Namespace.resolve, False)
-        self.assertRaises(TypeError, Namespace.resolve, None)
+        self.assertRaisesRegex(TypeError, self.CONTAINSINAPPROPRIATE_RE,
+                               Namespace.resolve, [True])
+        self.assertRaisesRegex(TypeError, self.CONTAINSINAPPROPRIATE_RE,
+                               Namespace.resolve, [False])
+        self.assertRaisesRegex(TypeError, self.INTARGNOTSTRINGORNUMBER_RE,
+                               Namespace.resolve, [None])
+        self.assertRaisesRegex(TypeError, self.CONTAINSINAPPROPRIATE_RE,
+                               Namespace.resolve, True)
+        self.assertRaisesRegex(TypeError, self.CONTAINSINAPPROPRIATE_RE,
+                               Namespace.resolve, False)
+        self.assertRaisesRegex(TypeError, self.INTARGNOTSTRINGORNUMBER_RE,
+                               Namespace.resolve, None)
 
-        self.assertRaises(KeyError, Namespace.resolve, -10)
-        self.assertRaises(KeyError, Namespace.resolve, '-10')
-        self.assertRaises(KeyError, Namespace.resolve, 'foo')
-        self.assertRaises(KeyError, Namespace.resolve, ['foo'])
+        self.assertRaisesRegex(KeyError, self.NAMESPACEIDNOTRECOGNISED_RE,
+                               Namespace.resolve, -10)
+        self.assertRaisesRegex(KeyError, self.NAMESPACEIDNOTRECOGNISED_RE,
+                               Namespace.resolve, '-10')
+        self.assertRaisesRegex(KeyError, self.NAMESPACEIDNOTRECOGNISED_RE,
+                               Namespace.resolve, 'foo')
+        self.assertRaisesRegex(KeyError, self.NAMESPACEIDNOTRECOGNISED_RE,
+                               Namespace.resolve, ['foo'])
 
-        self.assertRaisesRegex(KeyError,
-                               r'Namespace identifier\(s\) not recognised: 
-10',
+        self.assertRaisesRegex(KeyError, self.NAMESPACEIDNOTRECOGNISED_RE,
                                Namespace.resolve, [-10, 0])
-        self.assertRaisesRegex(KeyError,
-                               r'Namespace identifier\(s\) not recognised: 
foo',
+        self.assertRaisesRegex(KeyError, self.NAMESPACEIDNOTRECOGNISED_RE,
                                Namespace.resolve, [0, 'foo'])
-        self.assertRaisesRegex(KeyError,
-                               r'Namespace identifier\(s\) not recognised: 
-10,-11',
+        self.assertRaisesRegex(KeyError, self.NAMESPACEIDNOTRECOGNISED_RE,
                                Namespace.resolve, [-10, 0, -11])
 
     def test_lookup_name(self):
@@ -366,6 +377,9 @@
 
     """Test NamespacesDict.__getitem__."""
 
+    VALIDNUMBER_RE = '-?(0|[1-9]\d*)'
+    EMPTYTEXT_RE = '\s*'
+
     net = False
 
     def test_ids(self):
@@ -385,8 +399,10 @@
         namespaces = builtin_NamespacesDict()
         lower = min(namespaces.keys()) - 1
         higher = max(namespaces.keys()) + 1
-        self.assertRaises(KeyError, namespaces.__getitem__, lower)
-        self.assertRaises(KeyError, namespaces.__getitem__, higher)
+        self.assertRaisesRegex(KeyError, self.VALIDNUMBER_RE,
+                               namespaces.__getitem__, lower)
+        self.assertRaisesRegex(KeyError, self.VALIDNUMBER_RE,
+                               namespaces.__getitem__, higher)
 
     def test_canonical_name(self):
         """Test lookup by canonical namespace name."""
@@ -418,9 +434,11 @@
     def test_invalid_name(self):
         """Test lookup by invalid name."""
         namespaces = builtin_NamespacesDict()
-        self.assertRaises(KeyError, namespaces.__getitem__, 'FOO')
+        self.assertRaisesRegex(KeyError, self.EMPTYTEXT_RE,
+                               namespaces.__getitem__, 'FOO')
         # '|' is not permitted in namespace names
-        self.assertRaises(KeyError, namespaces.__getitem__, '|')
+        self.assertRaisesRegex(KeyError, self.EMPTYTEXT_RE,
+                               namespaces.__getitem__, '|')
 
 
 if __name__ == '__main__':  # pragma: no cover

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie6d334b2225cde1b2c4380b5e62b9860ba42a2fc
Gerrit-PatchSet: 1
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Divadsn <divad.nnamtd...@gmail.com>

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

Reply via email to