summaryrefslogtreecommitdiff
path: root/tests/functional/l/logging_format_interpolation.py
blob: 5f61d6bafe9c7cfeb5aa10176a00b76b4bb67edc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# pylint: disable=E1101, no-absolute-import, import-error,line-too-long, missing-docstring,wrong-import-order,wrong-import-position
# pylint: disable=invalid-name
try:
    import __builtin__ as builtins
except ImportError:
    import builtins

# Muck up the names in an effort to confuse...
import logging as renamed_logging
import os as logging
from uninferable import UNINFERABLE

FORMAT_STR = '{0}, {1}'

# Statements that should be flagged:
renamed_logging.debug('{0}, {1}'.format(4, 5)) # [logging-format-interpolation]
renamed_logging.log(renamed_logging.DEBUG, 'msg: {}'.format('Run!')) # [logging-format-interpolation]
renamed_logging.debug(FORMAT_STR.format(4, 5)) # [logging-format-interpolation]
renamed_logging.log(renamed_logging.DEBUG, FORMAT_STR.format(4, 5)) # [logging-format-interpolation]
renamed_logging.info("Read {l} rows".format(l=123456789)) # [logging-format-interpolation]

# Statements that should not be flagged:
renamed_logging.debug(format(66, 'x'))
renamed_logging.debug(builtins.format(66, 'x'))
renamed_logging.log(renamed_logging.DEBUG, 'msg: Run!'.upper())
logging.debug('{0}, {1}'.format(4, 5))
logging.log(logging.DEBUG, 'msg: {}'.format('Run!'))
renamed_logging.info("Read {l:,d} rows".format(l=123456789))
renamed_logging.info(UNINFERABLE.format(l=123456789))


class Logger(renamed_logging.Logger):
    pass

custom_logger = Logger('three')

# Currently disabled until we get this in https://github.com/PyCQA/astroid/pull/637
# custom_logger.info('testing {0}'.format('info'))
# custom_logger.info('testing %s' % 'info')