def test_explicit_raw_string( parse_tokens, assert_errors, default_options, code, ): """Ensures that implicit raw strings raise a warning.""" file_tokens = parse_tokens(code) visitor = WrongStringTokenVisitor(default_options, file_tokens=file_tokens) visitor.run() assert_errors(visitor, [])
def test_necessary_raw_string( parse_tokens, assert_errors, default_options, raw_strings, ): """Ensures that correct usage of raw string works.""" file_tokens = parse_tokens(raw_strings) visitor = WrongStringTokenVisitor(default_options, file_tokens=file_tokens) visitor.run() assert_errors(visitor, [])
def test_unnecessary_raw_string( parse_tokens, assert_errors, default_options, raw_strings, ): """Ensures that usage of raw string is forbidden if no backslash.""" file_tokens = parse_tokens(raw_strings) visitor = WrongStringTokenVisitor(default_options, file_tokens=file_tokens) visitor.run() assert_errors(visitor, [RawStringNotNeededViolation])
def test_correct_unicode_string_escape( parse_tokens, assert_errors, default_options, code, ): """Ensures that correct unicode escape does not raise a warning.""" file_tokens = parse_tokens(code, do_compile=False) visitor = WrongStringTokenVisitor(default_options, file_tokens=file_tokens) visitor.run() assert_errors(visitor, [UnicodeStringViolation])
def test_wrong_unicode_escape( parse_tokens, assert_errors, default_options, code, ): """Ensures that wrong unicode escape raises a warning.""" file_tokens = parse_tokens(code) visitor = WrongStringTokenVisitor(default_options, file_tokens=file_tokens) visitor.run() assert_errors(visitor, [WrongUnicodeEscapeViolation])
def test_correct_multiline_string( parse_tokens, assert_errors, default_options, primitives_usages, primitive, mode, ): """Ensures that correct multiline strings are allowed.""" file_tokens = parse_tokens(mode(primitives_usages.format(primitive))) visitor = WrongStringTokenVisitor(default_options, file_tokens=file_tokens) visitor.run() assert_errors(visitor, [])
def test_incorrect_multiline_strings( parse_tokens, assert_errors, default_options, primitives_usages, primitive, mode, ): """Ensures that incorrect multiline strings are forbiden.""" file_tokens = parse_tokens(mode(primitives_usages.format(primitive))) visitor = WrongStringTokenVisitor(default_options, file_tokens=file_tokens) visitor.run() assert_errors(visitor, [WrongMultilineStringViolation])
def test_correct_multiline_docstrings( parse_tokens, assert_errors, default_options, code, primitive, mode, ): """Ensures that correct singleline and multiline docstrings are allowed.""" file_tokens = parse_tokens(mode(code.format(primitive))) visitor = WrongStringTokenVisitor(default_options, file_tokens=file_tokens) visitor.run() assert_errors(visitor, [])
def test_implicit_unicode_raw_string( parse_tokens, assert_errors, default_options, code, ): """Ensures that implicit unicode raw string raise a warning.""" file_tokens = parse_tokens(code) visitor = WrongStringTokenVisitor(default_options, file_tokens=file_tokens) visitor.run() assert_errors(visitor, [ UnicodeStringViolation, ImplicitRawStringViolation, ])
def test_unicode_regression( parse_tokens, assert_errors, default_options, primitives_usages, mode, ): """Ensures that correct uppercase unicode string raises two violations.""" file_tokens = parse_tokens(mode(primitives_usages.format('U""'))) visitor = WrongStringTokenVisitor(default_options, file_tokens=file_tokens) visitor.run() assert_errors(visitor, [ UnicodeStringViolation, UppercaseStringModifierViolation, ])
def test_unicode_prefix( parse_tokens, assert_errors, assert_error_text, default_options, primitives_usages, primitive, mode, ): """Ensures that unicode prefixes raise a warning.""" file_tokens = parse_tokens(mode(primitives_usages.format(primitive))) visitor = WrongStringTokenVisitor(default_options, file_tokens=file_tokens) visitor.run() assert_errors(visitor, [UnicodeStringViolation]) assert_error_text(visitor, primitive)
def test_correct_prefix( parse_tokens, assert_errors, default_options, primitives_usages, primitive, modifier, mode, ): """Ensures that correct prefixes work.""" string = primitive.format(modifier) file_tokens = parse_tokens(mode(primitives_usages.format(string))) visitor = WrongStringTokenVisitor(default_options, file_tokens=file_tokens) visitor.run() assert_errors(visitor, [])
def test_correct_strings( parse_tokens, assert_errors, default_options, primitives_usages, primitive, mode, ): """Ensures that correct strings are fine.""" file_tokens = parse_tokens( mode(primitives_usages.format(primitive)), do_compile=False, ) visitor = WrongStringTokenVisitor(default_options, file_tokens=file_tokens) visitor.run() assert_errors(visitor, [])
def test_uppercase_prefix( parse_tokens, assert_errors, assert_error_text, default_options, primitives_usages, primitive, modifier, mode, ): """Ensures that uppercase modifiers are restricted.""" string = primitive.format(modifier) file_tokens = parse_tokens(mode(primitives_usages.format(string))) visitor = WrongStringTokenVisitor(default_options, file_tokens=file_tokens) visitor.run() assert_errors(visitor, [UppercaseStringModifierViolation]) assert_error_text(visitor, modifier)