mirror of
https://github.com/zulip/zulip.git
synced 2025-11-03 05:23:35 +00:00
linter: Add tests for first 10 python custom rules.
This commit is contained in:
@@ -190,9 +190,13 @@ def build_custom_checkers(by_lang):
|
||||
]) + whitespace_rules
|
||||
python_rules = cast(RuleList, [
|
||||
{'pattern': '^(?!#)@login_required',
|
||||
'description': '@login_required is unsupported; use @zulip_login_required'},
|
||||
'description': '@login_required is unsupported; use @zulip_login_required',
|
||||
'good_lines': ['@zulip_login_required', '# foo @login_required'],
|
||||
'bad_lines': ['@login_required', ' @login_required']},
|
||||
{'pattern': '".*"%\(.*\)?$',
|
||||
'description': 'Missing space around "%"'},
|
||||
'description': 'Missing space around "%"',
|
||||
'good_lines': ['"%s" % ("foo")', '"%s" % (foo)'],
|
||||
'bad_lines': ['"%s"%("foo")', '"%s"%(foo)']},
|
||||
{'pattern': "'.*'%\(.*\)?$",
|
||||
'exclude': set(['analytics/lib/counts.py',
|
||||
'analytics/tests/test_counts.py',
|
||||
@@ -205,23 +209,39 @@ def build_custom_checkers(by_lang):
|
||||
('static/templates/settings/bot-settings.handlebars',
|
||||
"'https://hostname.example.com/bots/followup'"),
|
||||
]),
|
||||
'description': 'Missing space around "%"'},
|
||||
'description': 'Missing space around "%"',
|
||||
'good_lines': ["'%s' % ('foo')", "'%s' % (foo)"],
|
||||
'bad_lines': ["'%s'%('foo')", "'%s'%(foo)"]},
|
||||
# This rule is constructed with + to avoid triggering on itself
|
||||
{'pattern': " =" + '[^ =>~"]',
|
||||
'description': 'Missing whitespace after "="'},
|
||||
'description': 'Missing whitespace after "="',
|
||||
'good_lines': ['a = b', '5 == 6'],
|
||||
'bad_lines': ['a =b', 'asdf =42']},
|
||||
{'pattern': '":\w[^"]*$',
|
||||
'description': 'Missing whitespace after ":"'},
|
||||
'description': 'Missing whitespace after ":"',
|
||||
'good_lines': ['"foo": bar', '"some:string:with:colons"'],
|
||||
'bad_lines': ['"foo":bar', '"foo":1']},
|
||||
{'pattern': "':\w[^']*$",
|
||||
'description': 'Missing whitespace after ":"'},
|
||||
'description': 'Missing whitespace after ":"',
|
||||
'good_lines': ["'foo': bar", "'some:string:with:colons'"],
|
||||
'bad_lines': ["'foo':bar", "'foo':1"]},
|
||||
{'pattern': "^\s+#\w",
|
||||
'strip': '\n',
|
||||
'description': 'Missing whitespace after "#"'},
|
||||
'description': 'Missing whitespace after "#"',
|
||||
'good_lines': ['a = b # some operation', '1+2 # 3 is the result'],
|
||||
'bad_lines': [' #some operation', ' #not valid!!!']},
|
||||
{'pattern': "assertEquals[(]",
|
||||
'description': 'Use assertEqual, not assertEquals (which is deprecated).'},
|
||||
'description': 'Use assertEqual, not assertEquals (which is deprecated).',
|
||||
'good_lines': ['assertEqual(1, 2)'],
|
||||
'bad_lines': ['assertEquals(1, 2)']},
|
||||
{'pattern': "== None",
|
||||
'description': 'Use `is None` to check whether something is None'},
|
||||
'description': 'Use `is None` to check whether something is None',
|
||||
'good_lines': ['if foo is None'],
|
||||
'bad_lines': ['foo == None']},
|
||||
{'pattern': "type:[(]",
|
||||
'description': 'Missing whitespace after ":" in type annotation'},
|
||||
'description': 'Missing whitespace after ":" in type annotation',
|
||||
'good_lines': ['# type: (Any, Any)', 'colon:separated:string:containing:type:as:keyword'],
|
||||
'bad_lines': ['# type:(Any, Any)']},
|
||||
{'pattern': "type: ignore$",
|
||||
'exclude': set(['tools/tests',
|
||||
'zerver/lib/test_runner.py',
|
||||
|
||||
Reference in New Issue
Block a user