Steve Howell
e3a7b9b1b2
tools: Move check_pyflakes() out of run().
2016-08-18 14:15:01 -07:00
Steve Howell
3c40157195
tools: Add a run() method to tools/lint-all.
2016-08-18 14:15:01 -07:00
Christie Koehler
096b098410
Flush stdout and stderr prior to exiting child process.
...
This fixes a confusing bug that we ran into where the output from
certain child processes wouldn't appear when running `lint-all` via
`ssh` (without a tty) into the Vagrant environment.
2016-08-16 18:11:14 -07:00
Tim Abbott
c7059c9751
travis: Update success-http-headers to match current certs.
...
Travis CI seems to have changed the way the snakeoil SSL certs are
generated in their infrastructure, so we need to update our expected
"success" HTTP headers accordingly.
2016-08-12 09:35:41 -07:00
Steve Howell
a904222947
Add tools/find-add-class to tools/lint-all.
...
The find-add-class tool, when in lint mode, verifies that we can
understand all calls to addClass from our JS code.
When in non-lint mode, i.e. verbose mode, the tool prints out a
list of tuples of (fn, class) that we can use as we wish in other
tools.
2016-08-08 15:32:48 -07:00
Tim Abbott
0689485666
Add lint check for malformed type annotations missing :.
...
Also fix the 2 annotations that weren't being checked because of this.
2016-08-04 15:53:23 -07:00
Steve Howell
3b5c187f55
Add tools/check-css and tools/lib/css_parser.py.
...
`tools/lint-all` now calls the new `tools/check-css`
The css_parser library parsers CSS into a data structure
that remembers line numbers and columns of semantically
meaningful tokens and adjoining white space/tokens. It
is intended to be used for various linting tasks.
The file `tools/check-css` runs a few files through the
parser and makes sure they round trip. This has some value
right away, as files that fail to parse will cause an
exception to be thrown and thus alert developers to syntax
errors. We expect to grow this into more advanced linting
tasks eventually.
2016-08-02 16:22:46 -07:00
Tim Abbott
75b5d021fa
Remove unused puppet-common third-party module code.
2016-07-31 19:24:42 -07:00
Tim Abbott
568dd0e142
lint-all: Improve regular expression for json_error.
2016-07-28 16:19:55 -07:00
Steve Howell
713797a65c
Add lint checks for self.client.{get,patch,put,post,delete}.
2016-07-27 20:50:54 -07:00
Eklavya Sharma
bd0fa3e77b
Annotate tools/lint-all.
2016-07-24 21:04:31 +05:30
Tim Abbott
2338421c6d
lint: Add documentation lint check for JavaScript spelling.
2016-07-12 19:22:21 -07:00
Tim Abbott
f513a68ac9
lint-all: Check for missing whitespace before { in CSS.
...
Also fix the existing violations of this rule.
2016-07-10 17:29:36 -07:00
Tim Abbott
88368397aa
lint-all: Add Python check for space after if.
2016-07-10 10:58:16 -07:00
Steve Howell
e35b84d438
Have lint-all pass along -m to check-templates.
2016-07-08 16:30:49 -07:00
acrefoot
7ff89dc137
Add markdown-specific whitespace lint rule to /tools/lint-all.
...
Match one space or three+ spaces after content, or positive
number of spaces on an empty line.
2016-06-27 18:43:20 -07:00
Tim Abbott
7d3b451902
lint: Check for extremely long lines.
...
Currently, we check for lines longer than 180 characters; we can lower
this as we clean up or wrap longer strings.
2016-06-25 10:52:03 -07:00
Umair Khan
a70d5041d2
Don't allow literal strings in report_error.
2016-06-23 16:23:01 -07:00
Umair Khan
b7bb49c6f5
Don't allow literal string in report_success.
2016-06-23 16:23:01 -07:00
Tim Abbott
6b8e9c7254
Exclude static/locale from linters.
2016-06-21 17:17:34 -07:00
Tim Abbott
eb71173be3
lint: Fix warnings under confirmation/.
2016-06-20 08:19:54 -07:00
Tim Abbott
6d1d7471e6
Refactor out zproject/dev_settings.py.
2016-06-17 12:15:15 -07:00
Tim Abbott
d117ec8664
lint: Fix redundant stripping of strings.
2016-06-17 10:41:39 -07:00
Tim Abbott
267a71cf20
Run Python custom RE checks in parallel with non-python.
...
This saves about 1s (out of originally 3.3s) of time running all the
linters in my development environment.
2016-06-17 10:26:50 -07:00
John Hergenroeder
16a19226f6
Add linter check for redundant REQ whence argument.
2016-06-16 13:53:39 -07:00
Umair Khan
c1f5ac375c
Add linter checks for javascript strings and HTML placeholders.
...
Checks are added for:
- i18n.t
- placeholder
- compose_error
2016-06-13 09:05:27 -07:00
Tim Abbott
584887e588
lint: Require folding of } on same line in else if statements.
2016-06-09 14:05:34 -07:00
Tim Abbott
c35781d505
lint: Require folding of } on same line as else statements.
2016-06-09 14:02:49 -07:00
Tim Abbott
0c1b5006f7
lint: Check for space after if in javascript.
2016-06-09 13:47:12 -07:00
Tim Abbott
eba0d6339f
lint: Require space after // in JS comments.
2016-06-09 13:44:24 -07:00
Tim Abbott
a09b950097
lint-all: Check for relative URLs in JSON calls from JS.
2016-06-09 11:59:40 -07:00
Ernesto Vargas
ffb2f9e84b
lint/tests: Give nice error message for common import failures.
...
This should make users much more likely to be able to debug issues
where they ran Zulip outside the Vagrant environment or virtualenv.
[error messages tweaked by tabbott]
2016-06-06 13:39:26 -07:00
Tim Abbott
553ef81f92
Add lint rules for mypy type annotations.
2016-06-05 13:00:55 -07:00
Tim Abbott
03debdf82f
Fix malformed error message when creating invalid Realm Emoji.
...
Thanks to Greg McCoy for his help finding this bug.
2016-06-03 23:12:36 -07:00
Nathan Florea
5fe9076631
Remove some mutable default arguments.
...
These ones don't fix any bugs, because the mutable arg is never passed
outside of the callable or mutated. But it's good practice to not use
them in case those invariants are changed in the future.
2016-06-03 09:16:56 -07:00
Umair Khan
bd4e471706
Check json_error and JsonableError in linter.
...
Mainly the check is to ensure that all the strings that pass through
these two functions are captured by `makemessages`.
2016-05-31 07:40:42 -07:00
Umair Khan
4b28fcd2f3
Add option to linter to exclude lines from files.
2016-05-31 07:40:42 -07:00
Tim Abbott
41336f3782
lint-all: Check for use of '== None'.
2016-05-31 07:02:04 -07:00
Eklavya Sharma
1c04560def
Re-enable pyflakes in linter and remove python 3 pyflakes errors.
2016-05-25 19:25:13 +05:30
Eklavya Sharma
1a6257394c
Make tools/lint-all run on python 3.
...
Since pyflakes catches some extra errors in python 3, disable
pyflakes for now.
2016-05-25 19:23:13 +05:30
Eklavya Sharma
3185b7e750
Remove unneeded imports from tools/lint-all.
2016-05-25 19:12:09 +05:30
Tim Abbott
542af0d6b6
lint: Add option to print verbose timing output.
2016-05-04 14:22:52 -07:00
Tim Abbott
e2aeee0c35
lint: Add check for unnecessary whitespace between % and (.
2016-05-04 14:22:52 -07:00
Tim Abbott
72ee9f5137
lint: Check for unnecssary whitespace after ','s.
2016-05-04 14:17:27 -07:00
Tim Abbott
391a225595
lint: Check for missing space after comments.
2016-05-02 22:10:47 -07:00
Tim Abbott
302da832fa
lint: Enforce whitespace between : and value in dicts.
2016-04-27 22:23:40 -07:00
Tim Abbott
8a278cbe3a
Switch to using a Zulip version of @login_required.
...
Currently the code is the unmodified Django upstream implementation;
this commit is preparation for modifying it.
2016-04-21 14:59:39 -07:00
Tim Abbott
9c56027627
lint: Add CSS lint rule for whitespace after {.
2016-04-20 11:50:01 -07:00
Tim Abbott
a46b5d7bbe
Add lint check for missing whitespace after =.
2016-04-20 11:37:03 -07:00
Tim Abbott
a72385246e
Fix missing whitespace after '=' in python/js code.
2016-04-20 11:36:14 -07:00
Tim Abbott
a2b59b8b51
lint: Check whitespace rules for txt files.
2016-04-14 14:36:29 -07:00
Tim Abbott
39950b8f4f
lint: Check whitespace rules in markdown files too.
2016-04-14 14:30:29 -07:00
Tim Abbott
2b76f6223e
Make 'no newline at end of file' lint error more actionable.
...
There's a handy sed command to fix this, so we might as well document
it.
2016-04-14 10:55:06 -07:00
Tim Abbott
e71d8bb4b6
lint-all: Require newlines at end of JSON files.
2016-04-14 10:49:12 -07:00
Tim Abbott
9584ae1ab8
Add CSS linter for missing space after : in rules.
2016-04-08 21:04:43 -07:00
Tim Abbott
209e6ef7a1
Run trailing whitespace linter on bash files.
2016-04-08 11:52:11 -07:00
Tim Abbott
caba24b2af
Fix existing trailing whitespace in bash scripts.
2016-04-08 11:52:11 -07:00
Tim Abbott
4fa63c29ca
Run whitespace linters on html files.
2016-04-08 11:52:11 -07:00
Tim Abbott
d670e902a9
Run whitespace linters on handlebars templates.
2016-04-08 11:52:11 -07:00
Tim Abbott
c6d01ab76b
Run whitespace linters on CSS files.
2016-04-08 11:47:10 -07:00
Tim Abbott
1b84617771
Don't skip running python custom linters inside comments.
...
This fixes an issue where we weren't checking for trailing whitespace
in comments.
2016-04-08 11:47:10 -07:00
Tim Abbott
14b5e265c2
Remove unuseful suspicious code lint check.
2016-04-08 11:47:10 -07:00
Tim Abbott
efd14e7ad9
Revert "Exclude 'from typing import *' from linter."
...
This reverts commit d936bf61f9
.
We no longer need this since we've migrated to specifying the
dependencies in the typing module that we're actually using.
2016-04-07 14:12:18 -07:00
Tim Abbott
78e289f904
Exclude puppet-common tests from puppet linter.
2016-04-04 17:08:29 -07:00
Eklavya Sharma
81fdeae0ea
Remove '.'s from extensions in lister.py interface and lint-all.
...
In lint-all, change occurences of '.py', '.js', ... to 'py', 'js', ....
2016-04-01 15:27:16 -07:00
Eklavya Sharma
ad4c20a3e6
Migrate lint-all to lister.py for getting files.
...
This has the side effect of making lint-all check all shell scripts,
not just those under scripts/, tools/, and bin/.
[commit message expanded by tabbott]
2016-04-01 15:24:43 -07:00
Tim Abbott
d936bf61f9
Exclude 'from typing import *' from linter.
2016-03-30 21:50:31 -07:00
Tim Abbott
f9222de83e
Auto-load commonly used modules in manage.py shell.
...
This automatically loads settings, zerver.models.* and
zerver.lib.actions.* when you start `manage.py shell`, which should
save a bit of time basically every time someone uses it.
Fixes #275 .
2016-03-19 11:32:49 -07:00
Varshit
72033069ed
Extend lint-all to check for newlines at the end of files.
2016-03-17 23:03:56 -07:00
Tim Abbott
3a46bae542
Fix shell script list computation to exclude files not in git.
...
This fixes an issue where the next commit's no-newline-and-end-of-file
check was incorrectly firing on tools/phantomjs.
2016-03-17 23:03:56 -07:00
Eklavya Sharma
aa505b0d55
Apply Python 3 futurize transform libmodernize.fixes.fix_map
...
Refer to #256
2016-03-10 22:03:44 -08:00
Eklavya Sharma
def027a1ec
Apply Python 3 futurize transform libmodernize.fixes.fix_filter
...
Refer to #256
2016-03-10 22:03:06 -08:00
Eklavya Sharma
c59185e119
Apply Python 3 futurize transform libfuturize.fixes.fix_print_with_import
...
Refer #256
2016-03-10 22:02:17 -08:00
Tim Abbott
aad3bff193
Harden style rule for % comprehensions and fix existing errors.
2016-02-02 23:08:19 -08:00
Tim Abbott
700055c194
Apply modernize transform libmodernize.fixes.fix_file.
...
This replaces use of file() with open() which is python 3 compatible,
and also adds it to our python 3 support test suite.
2016-01-26 21:09:42 -08:00
Vladislav Manchev
df4d1b3c14
Add linting code for detecting shebang bashisms.
...
This will prevent regressions in OpenBSD compatibility, since OpenBSD
doesn't support passing arguments in the #! line.
2016-01-21 22:33:55 -08:00
Tim Abbott
0fe819eb57
lint: Tighten lint rules around whitespace around '%' comprehensions.
2015-12-05 15:29:42 -08:00
Tim Abbott
69b6b60017
lint: Clean up whitespace_rules.
...
Several of these rules only apply to one of Python and Javascript, and
this simplifies the logic and should make our linter code more readable.
In the process, we add support for per-rule/file pair exclusions to
handle the tab exception for codehilite.py.
2015-12-05 15:29:42 -08:00
Tim Abbott
a712954c59
lint: Rewrite custom checks to use a more consistent framework.
2015-12-05 15:29:42 -08:00
Tim Abbott
8a18e78a65
Add lint rules checking for our % comprehension style.
2015-12-05 15:29:42 -08:00
Tim Abbott
b81ecc4064
Add whitespace lint rules checking for missing spaces before {.
2015-11-10 10:06:47 -08:00
Tim Abbott
f1074aa491
Move frontend tests out of zerver/tests/.
...
This fixes an unfortunate bug where the backend tests in
zerver/tests.py were not being run automatically, and also makes these
a bit easier to find.
2015-10-28 10:11:47 -07:00
Steven Oud
d5435fad1d
Consistently use /usr/bin/env python2.7 in shebangs and commands.
2015-10-21 22:58:21 +00:00
Tim Abbott
232de3015a
Add lint checks for tab-based whitespace.
...
We exclude the one file we have with issues that comes from a
third-party vendor.
(imported from commit 47e097b39440aea8e4d7468892176ffce4818b5f)
2015-09-19 23:23:02 -07:00
Yoyo Zhou
c25d9679a5
Utility for unescaping HTML entities leftover from MediaWiki->rST conversion
...
(imported from commit 2f2507f299c3d09c67bfd26d6c11fab47431d935)
2015-08-18 17:31:33 -07:00
Jason Michalski
1136d399ca
Add a check for blueslip.warning to perform_extra_js_checks
...
(imported from commit 92872542c4a97c31d7864137b759abb8bf26a551)
2014-02-05 10:43:55 -05:00
Jason Michalski
de522029d5
Switch to DiscoverRunner from DjangoTestSuiteRunner
...
(imported from commit 77dd694b20509bfdc7327186e0524d686f0415f7)
2014-01-29 11:34:31 -05:00
Steve Howell
582f7eb24d
Extract test_hooks.py.
...
These classes are in test_hooks.py now. They still run as part of
the regular suite, so this is just to make it easier to navigate the
files.
JiraHookTests
BeanstalkHookTests
GithubV1HookTests
GithubV2HookTests
PivotalV3HookTests
PivotalV5HookTests
NewRelicHookTests
StashHookTests
FreshdeskHookTests
ZenDeskHookTests
(imported from commit 26a9572dd5170f9516e739d587a119bd1f87959a)
2014-01-29 10:56:00 -05:00
Tim Abbott
a8825e1c5d
Fix linting for zerver/lib/tornado_ioloop_logging.py with older pyflakes.
...
(imported from commit 998d95df05acdc610336bf6da48fafd8c129e52e)
2014-01-14 11:43:06 -05:00
Steve Howell
ea49e9d1b0
Rename check-handlebar-templates to check-templates.
...
(It's been checking Django templates too.)
(imported from commit e1a92210d07dfd68666a8c93642c4eb8d5ff081f)
2013-12-17 12:44:59 -05:00
Tim Abbott
1fb9c09f02
Don't import bugdown in models.py headings.
...
This allows us to avoid a circular import when importing models.py
from inside bugdown for the realm-filters-from-database branch.
(imported from commit 7de85b54243132ade6818b080abdc8c5e8ad84f5)
2013-12-11 14:39:09 -05:00
Luke Faraone
5ada0ab93e
Exclude git_p4 from the linter, not our code.
...
(imported from commit 221a7947f1679dde888198f6d1da2d5bdf8f6ba4)
2013-12-06 11:54:38 -05:00
Steve Howell
3e51ac2f3d
Add -m to lint-all to check modified files.
...
This uses git ls-files -m, which will show modified and added files,
but it doesn't seem to show staged files, so buyer beware.
(imported from commit 6ecc1d5ee628deae17197addf5586f1f6bcd4b9c)
2013-12-02 16:14:06 -05:00
Steve Howell
72e2fbd725
Allow specific files to be checked by lint-all.
...
(imported from commit a17800e3ab079e95033243bc82446737dc456b68)
2013-12-02 16:14:06 -05:00
Steve Howell
95320b7369
DRY up forking code in lint-all.
...
(imported from commit f4c52596c9e9cf0a1be5d4bea26f9793c67f93d5)
2013-12-02 16:14:06 -05:00
Luke Faraone
6c57a9ec26
Hide 'redefinition of unused' pyflakes errors
...
(imported from commit d5c0129c40121f8bca8f2ebedde8fcbf03d718f2)
2013-11-13 13:44:14 -05:00
Tim Abbott
442ae115a2
Remove legacy check_output implementation for pre-2.7 Pythons.
...
We still need it in integrations, because those don't require Python
2.7, but we don't need it in any of our code that runs on internal
servers.
(imported from commit 3c340567f1a372dcb4206c6af9a6e5e18005b1b8)
2013-11-10 09:28:55 -05:00
Luke Faraone
7fd9c607ea
Exclude api/setup.py from the linter's wrath.
...
(imported from commit 2e9718b6be472523b2684b6fcae4545f0a7fba49)
2013-10-31 17:26:52 -04:00
Tim Abbott
fffd4f3c59
Move zulip_tools library to root of repository.
...
(imported from commit 2fada9d2acbcf81f8e2b3de8caadbf335141dfaa)
2013-10-28 10:54:48 -04:00
Tim Abbott
080f5922e1
lint-all: Fix gotcha regexps to not misparse certain quoting cases.
...
(imported from commit fed305fce9cf6f88e05f4d7310e25928ae6add4b)
2013-10-21 14:37:36 -04:00
Steve Howell
5c4fb277c1
Add tools/check-handlebar-templates.
...
(imported from commit e9f634be4d3699eb2d4fc12f6311b42ead710427)
2013-10-09 17:16:52 -04:00
Tim Abbott
fff4244b54
Move various settings into local_settings.py.
...
(imported from commit 03c4a61383f3f8cf8207050d68d5ce870e12fcca)
2013-09-25 15:40:21 -04:00
Steve Howell
7228ce956b
Wait for puppet checks to finish in lint-all
...
(imported from commit 760c49622e5f33e12551f24128e1df54a9ae8848)
2013-09-19 10:46:29 -04:00
Steve Howell
203a71dcd0
Fail hard on pyflakes errors.
...
Also, run pyflakes in the background like the other processes.
(imported from commit b168a5f7dd6dd5ec4b75e3148aea82b3e1040f87)
2013-09-19 10:46:28 -04:00
Tim Abbott
2b8fd43edd
check-all: Run 'puppet parser validate' to validate puppet changes.
...
(imported from commit f1ab619b6e0b993f3b9b6fe081f085d2dd2072b0)
2013-08-09 13:53:17 -04:00
Steve Howell
29fd84fdbd
Rename check-all to lint-all.
...
(imported from commit 844b2c69748f6d9df8ff1189c006ccf405f787c3)
2013-08-09 13:06:02 -04:00