def test_singles(self): singles_checker = QuoteChecker(None, filename=get_absolute_path('data/singles.py')) self.assertEqual(list(singles_checker.get_quotes_errors(singles_checker.get_file_contents())), [ {'col': 24, 'line': 1, 'message': 'Q000 Remove bad quotes.'}, {'col': 24, 'line': 2, 'message': 'Q000 Remove bad quotes.'}, {'col': 24, 'line': 3, 'message': 'Q000 Remove bad quotes.'}, ])
def test_doubles(self): doubles_checker = QuoteChecker(None, filename=get_absolute_path('data/doubles.py')) self.assertEqual(list(doubles_checker.get_quotes_errors(doubles_checker.get_file_contents())), [ {'col': 24, 'line': 1, 'message': 'Q000 Remove bad quotes'}, {'col': 24, 'line': 2, 'message': 'Q000 Remove bad quotes'}, {'col': 24, 'line': 3, 'message': 'Q000 Remove bad quotes'}, ])
def test_wrapped(self): doubles_checker = QuoteChecker( None, filename=get_absolute_path('data/doubles_wrapped.py')) self.assertEqual( list( doubles_checker.get_quotes_errors( doubles_checker.get_file_contents())), [])
def test_escapes_allowed(self): class Options(): inline_quotes = "'" avoid_escape = False QuoteChecker.parse_options(Options) doubles_checker = QuoteChecker(None, filename=get_absolute_path('data/doubles_escaped.py')) self.assertEqual(list(doubles_checker.get_quotes_errors(doubles_checker.get_file_contents())), [])
def test_multiline_string(self): singles_checker = QuoteChecker( None, filename=get_absolute_path('data/singles_multiline_string.py')) self.assertEqual( list( singles_checker.get_quotes_errors( singles_checker.get_file_contents())), [])
def test_doubles_alias(self): class Options(): inline_quotes = 'double' multiline_quotes = 'single' QuoteChecker.parse_options(Options) multiline_checker = QuoteChecker(None, filename=get_absolute_path('data/multiline_string.py')) self.assertEqual(list(multiline_checker.get_quotes_errors(multiline_checker.get_file_contents())), [ {'col': 4, 'line': 1, 'message': 'Q001 Remove bad quotes from multiline string'}, ])
def test_multiline_string_using_lines(self): with open(get_absolute_path('data/doubles_multiline_string.py')) as f: lines = f.readlines() doubles_checker = QuoteChecker(None, lines=lines) self.assertEqual( list( doubles_checker.get_quotes_errors( doubles_checker.get_file_contents())), [ { 'col': 4, 'line': 1, 'message': 'Q001 Remove bad quotes from multiline string' }, ])
def test_multiline_string(self): doubles_checker = QuoteChecker( None, filename=get_absolute_path('data/doubles_multiline_string.py')) self.assertEqual( list( doubles_checker.get_quotes_errors( doubles_checker.get_file_contents())), [ { 'col': 4, 'line': 1, 'message': 'Q001 Remove bad quotes from multiline string' }, ])
def test_escapes(self): singles_checker = QuoteChecker( None, filename=get_absolute_path('data/singles_escaped.py')) self.assertEqual( list( singles_checker.get_quotes_errors( singles_checker.get_file_contents())), [ { 'col': 25, 'line': 1, 'message': 'Q003 Change outer quotes to avoid escaping inner quotes' }, ])
def test_doubles_alias(self): class Options(): inline_quotes = 'double' multiline_quotes = 'single' QuoteChecker.parse_options(Options) multiline_checker = QuoteChecker(None, filename=get_absolute_path('data/multiline_string.py')) self.assertEqual(list(multiline_checker.get_quotes_errors(multiline_checker.get_file_contents())), [ {'col': 0, 'line': 1, 'message': 'Q001 Remove bad quotes from multiline string.'}, ])
def test_escapes_allowed(self): class Options(): inline_quotes = '"' avoid_escape = False QuoteChecker.parse_options(Options) singles_checker = QuoteChecker( None, filename=get_absolute_path('data/singles_escaped.py')) self.assertEqual( list( singles_checker.get_quotes_errors( singles_checker.get_file_contents())), [])
def test_noqa_singles(self): checker = QuoteChecker(None, get_absolute_path('data/singles_noqa.py')) self.assertEqual(list(checker.run()), [])
def setUp(self): class SinglesOptions(): inline_quotes = '"' multiline_quotes = '"' QuoteChecker.parse_options(SinglesOptions)
def test_get_noqa_lines(self): checker = QuoteChecker(None, filename=get_absolute_path('data/no_qa.py')) self.assertEqual(checker.get_noqa_lines(checker.get_file_contents()), [2])
def test_multiline_string(self): doubles_checker = QuoteChecker(None, filename=get_absolute_path('data/doubles_multiline_string.py')) self.assertEqual(list(doubles_checker.get_quotes_errors(doubles_checker.get_file_contents())), [ {'col': 4, 'line': 1, 'message': 'Q001 Remove bad quotes from multiline string'}, ])
def setUp(self): class SinglesOptions(): inline_quotes = '"' QuoteChecker.parse_options(SinglesOptions)
def setUp(self): class DoublesOptions(): quotes = '\'' QuoteChecker.parse_options(DoublesOptions)
def setUp(self): class DoublesAliasOptions(): inline_quotes = 'single' multiline_quotes = 'single' QuoteChecker.parse_options(DoublesAliasOptions)
def setUp(self): class SinglesOptions(): quotes = '"' QuoteChecker.parse_options(SinglesOptions)
def test_escapes(self): doubles_checker = QuoteChecker(None, filename=get_absolute_path('data/doubles_escaped.py')) self.assertEqual(list(doubles_checker.get_quotes_errors(doubles_checker.get_file_contents())), [ {'col': 25, 'line': 1, 'message': 'Q003 Change outer quotes to avoid escaping inner quotes'}, ])
def setUp(self): class SinglesAliasOptions(): inline_quotes = 'double' multiline_quotes = 'double' QuoteChecker.parse_options(SinglesAliasOptions)
def test_wrapped(self): singles_checker = QuoteChecker(None, filename=get_absolute_path('data/singles_wrapped.py')) self.assertEqual(list(singles_checker.get_quotes_errors(singles_checker.get_file_contents())), [])
def setUp(self): class DoublesOptions(): inline_quotes = "'" multiline_quotes = "'" QuoteChecker.parse_options(DoublesOptions)
def setUp(self): class DoublesOptions(): inline_quotes = '\'' QuoteChecker.parse_options(DoublesOptions)
def test_multiline_string(self): doubles_checker = QuoteChecker(None, filename=get_absolute_path('data/doubles_multiline_string.py')) self.assertEqual(list(doubles_checker.get_quotes_errors(doubles_checker.get_file_contents())), [])
def test_require_double_docstring_double_present(self): class Options(): inline_quotes = 'single' multiline_quotes = 'single' docstring_quotes = 'double' QuoteChecker.parse_options(Options) multiline_checker = QuoteChecker( None, filename=get_absolute_path('data/docstring_doubles.py') ) self.assertEqual(list(multiline_checker.get_quotes_errors(multiline_checker.get_file_contents())), [ {'col': 0, 'line': 5, 'message': 'Q001 Remove bad quotes from multiline string'}, {'col': 4, 'line': 16, 'message': 'Q001 Remove bad quotes from multiline string'}, {'col': 20, 'line': 21, 'message': 'Q001 Remove bad quotes from multiline string'}, {'col': 8, 'line': 30, 'message': 'Q001 Remove bad quotes from multiline string'}, {'col': 12, 'line': 35, 'message': 'Q001 Remove bad quotes from multiline string'}, ]) multiline_checker = QuoteChecker( None, filename=get_absolute_path('data/docstring_doubles_module_multiline.py') ) self.assertEqual(list(multiline_checker.get_quotes_errors(multiline_checker.get_file_contents())), [ {'col': 0, 'line': 4, 'message': 'Q001 Remove bad quotes from multiline string'}, {'col': 0, 'line': 9, 'message': 'Q001 Remove bad quotes from multiline string'}, ]) multiline_checker = QuoteChecker( None, filename=get_absolute_path('data/docstring_doubles_module_singleline.py') ) self.assertEqual(list(multiline_checker.get_quotes_errors(multiline_checker.get_file_contents())), [ {'col': 0, 'line': 2, 'message': 'Q001 Remove bad quotes from multiline string'}, {'col': 0, 'line': 6, 'message': 'Q001 Remove bad quotes from multiline string'}, ]) multiline_checker = QuoteChecker( None, filename=get_absolute_path('data/docstring_doubles_class.py') ) self.assertEqual(list(multiline_checker.get_quotes_errors(multiline_checker.get_file_contents())), [ {'col': 4, 'line': 3, 'message': 'Q001 Remove bad quotes from multiline string'}, {'col': 22, 'line': 5, 'message': 'Q001 Remove bad quotes from multiline string'}, ]) multiline_checker = QuoteChecker( None, filename=get_absolute_path('data/docstring_doubles_function.py') ) self.assertEqual(list(multiline_checker.get_quotes_errors(multiline_checker.get_file_contents())), [ {'col': 4, 'line': 3, 'message': 'Q001 Remove bad quotes from multiline string'}, {'col': 4, 'line': 11, 'message': 'Q001 Remove bad quotes from multiline string'}, {'col': 38, 'line': 15, 'message': 'Q001 Remove bad quotes from multiline string'}, {'col': 4, 'line': 17, 'message': 'Q001 Remove bad quotes from multiline string'}, {'col': 4, 'line': 21, 'message': 'Q001 Remove bad quotes from multiline string'}, ])