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.nnamtd...@gmail.com> Gerrit-Reviewer: Divadsn <divad.nnamtd...@gmail.com> Gerrit-Reviewer: John Vandenberg <jay...@gmail.com> Gerrit-Reviewer: MtDu <justin.d...@gmail.com> 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