|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- '''
- Complain about multi-argument exception constructors where the first argument
- contains a percent sign, thus suggesting a % string formatting was intended
- instead. The same holds for a string containing {...} suggesting str.format()
- was intended.
- '''
-
- def bad_percent(arg):
- '''Raising a percent-formatted string and an argument'''
- raise KeyError('Bad key: %r', arg) # [raising-format-tuple]
-
- def good_percent(arg):
- '''Instead of passing multiple arguments, format the message'''
- raise KeyError('Bad key: %r' % arg)
-
- def bad_multiarg(name, value):
- '''Raising a formatted string and multiple additional arguments'''
- raise ValueError('%s measures %.2f', name, value) # [raising-format-tuple]
-
- def good_multiarg(name, value):
- '''The arguments have to be written as a tuple for formatting'''
- raise ValueError('%s measures %.2f' % (name, value))
-
- def bad_braces(arg):
- '''Curly braces as placeholders'''
- raise KeyError('Bad key: {:r}', arg) # [raising-format-tuple]
-
- def good_braces(arg):
- '''Call str.format() instead'''
- raise KeyError('Bad key: {:r}'.format(arg))
-
- def bad_multistring(arg):
- '''Multiple adjacent string literals'''
- raise AssertionError( # [raising-format-tuple]
- 'Long message about %s '
- "split over several adjacent literals", arg)
-
- def bad_triplequote(arg):
- '''String literals with triple quotes'''
- raise AssertionError( # [raising-format-tuple]
- '''Long message about %s
- split over several adjacent literals''', arg)
-
- def bad_unicode(arg):
- '''Unicode string literal'''
- raise ValueError(u'Bad %s', arg) # [raising-format-tuple]
-
- def raise_something_without_name(arg):
- '''Regression test for nodes without .node attribute'''
- import standard_exceptions # pylint: disable=import-error
- raise standard_exceptions.MyException(u'An %s', arg) # [raising-format-tuple]
|