jenkins-bot has submitted this change and it was merged. (
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(-)
Approvals:
John Vandenberg: Looks good to me, approved
jenkins-bot: Verified
diff --git a/tests/namespace_tests.py b/tests/namespace_tests.py
index 9897f03..1b35582 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)
+ with self.assertRaisesRegex(KeyError, self.VALIDNUMBER_RE):
+ namespaces[lower]
+ with self.assertRaisesRegex(KeyError, self.VALIDNUMBER_RE):
+ namespaces[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')
+ with self.assertRaisesRegex(KeyError, self.EMPTYTEXT_RE):
+ namespaces['FOO']
# '|' is not permitted in namespace names
- self.assertRaises(KeyError, namespaces.__getitem__, '|')
+ with self.assertRaisesRegex(KeyError, self.EMPTYTEXT_RE):
+ namespaces['|']
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: merged
Gerrit-Change-Id: Ie6d334b2225cde1b2c4380b5e62b9860ba42a2fc
Gerrit-PatchSet: 3
Gerrit-Project: pywikibot/core
Gerrit-Branch: master
Gerrit-Owner: Divadsn <divad.nnamtdeis(a)gmail.com>
Gerrit-Reviewer: Divadsn <divad.nnamtdeis(a)gmail.com>
Gerrit-Reviewer: John Vandenberg <jayvdb(a)gmail.com>
Gerrit-Reviewer: MtDu <justin.d128(a)gmail.com>
Gerrit-Reviewer: Zoranzoki21 <zorandori4444(a)gmail.com>
Gerrit-Reviewer: jenkins-bot <>