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