##// END OF EJS Templates
hg: establish a cache for localrepository instances...
hg: establish a cache for localrepository instances hgweb contained code for determining whether a cached localrepository instance was up to date. This code was way too low-level to be in hgweb. This functionality has been moved to a new "cachedlocalrepo" class in hg.py. The code has been changed slightly to facilitate use inside a class. hgweb has been refactored to use the new API. As part of this refactor, hgweb.repo no longer exists! We're very close to using a distinct repo instance per thread. The new cache records state when it is created. This intelligence prevents an extra localrepository from being created on the first hgweb request. This is why some redundant output from test-extension.t has gone away.

File last commit:

r25199:e78447e6 default
r26219:ae33fff1 default
Show More
test-check-code.t
234 lines | 5.3 KiB | text/troff | Tads3Lexer
/ tests / test-check-code.t
Brodie Rao
tests: unify test-check-code
r12632 $ cat > correct.py <<EOF
> def toto(arg1, arg2):
> del arg2
> return (5 + 6, 9)
> EOF
$ cat > wrong.py <<EOF
> def toto( arg1, arg2):
> del(arg2)
> return ( 5+6, 9)
> EOF
$ cat > quote.py <<EOF
> # let's use quote in comments
> (''' ( 4x5 )
> but """\\''' and finally''',
> """let's fool checkpatch""", '1+2',
> '"""', 42+1, """and
> ( 4-1 ) """, "( 1+1 )\" and ")
> a, '\\\\\\\\', "\\\\\\" x-2", "c-1"
> EOF
Thomas Arendsen Hein
check-code: fix class style checking (with tests)...
r14763 $ cat > classstyle.py <<EOF
> class newstyle_class(object):
> pass
>
> class oldstyle_class:
> pass
>
> class empty():
> pass
>
> no_class = 1:
> pass
> EOF
Brodie Rao
tests: unify test-check-code
r12632 $ check_code="$TESTDIR"/../contrib/check-code.py
Pierre-Yves David
check-code: entirely drop the 'non-py24.py' file from the test...
r25199 $ "$check_code" ./wrong.py ./correct.py ./quote.py ./classstyle.py
Brodie Rao
tests: unify test-check-code
r12632 ./wrong.py:1:
> def toto( arg1, arg2):
gratuitous whitespace in () or []
./wrong.py:2:
> del(arg2)
Thomas Arendsen Hein
coding style: fix yield used as a function
r13077 Python keyword is not a function
Brodie Rao
tests: unify test-check-code
r12632 ./wrong.py:3:
> return ( 5+6, 9)
Matt Mackall
check-code: support multiline matches like try/except/finally...
r15281 gratuitous whitespace in () or []
Brodie Rao
tests: unify test-check-code
r12632 missing whitespace in expression
./quote.py:5:
> '"""', 42+1, """and
missing whitespace in expression
Thomas Arendsen Hein
check-code: fix class style checking (with tests)...
r14763 ./classstyle.py:4:
> class oldstyle_class:
old-style class, use class foo(object)
./classstyle.py:7:
> class empty():
Pierre-Yves David
check-code: fix the error message about 'class foo():'...
r25140 class foo() creates old style object, use class foo(object)
Brodie Rao
tests: unify test-check-code
r12632 [1]
Augie Fackler
check-code: disallow defunct <> operator...
r18183 $ cat > python3-compat.py << EOF
> foo <> bar
> reduce(lambda a, b: a + b, [1, 2, 3, 4])
Augie Fackler
check-code: disallow use of dict(key=value) construction...
r20688 > dict(key=value)
Augie Fackler
check-code: disallow defunct <> operator...
r18183 > EOF
$ "$check_code" python3-compat.py
python3-compat.py:1:
> foo <> bar
<> operator is not available in Python 3+, use !=
python3-compat.py:2:
> reduce(lambda a, b: a + b, [1, 2, 3, 4])
reduce is not available in Python 3+
Augie Fackler
check-code: disallow use of dict(key=value) construction...
r20688 python3-compat.py:3:
> dict(key=value)
dict() is different in Py2 and 3 and is slower than {}
Augie Fackler
check-code: disallow defunct <> operator...
r18183 [1]
Adrian Buehlmann
check-code: catch Python 'is' comparing number or string literals...
r13026
$ cat > is-op.py <<EOF
> # is-operator comparing number or string literal
> x = None
> y = x is 'foo'
> y = x is "foo"
> y = x is 5346
> y = x is -6
> y = x is not 'foo'
> y = x is not "foo"
> y = x is not 5346
> y = x is not -6
> EOF
$ "$check_code" ./is-op.py
./is-op.py:3:
> y = x is 'foo'
object comparison with literal
./is-op.py:4:
> y = x is "foo"
object comparison with literal
./is-op.py:5:
> y = x is 5346
object comparison with literal
./is-op.py:6:
> y = x is -6
object comparison with literal
./is-op.py:7:
> y = x is not 'foo'
object comparison with literal
./is-op.py:8:
> y = x is not "foo"
object comparison with literal
./is-op.py:9:
> y = x is not 5346
object comparison with literal
./is-op.py:10:
> y = x is not -6
object comparison with literal
[1]
Simon Heimberg
check-code: do not prepend "warning" to a failure message...
r18762 $ cat > for-nolineno.py <<EOF
Mads Kiilerich
check-code: add --nolineno option for hiding line numbers...
r15502 > except:
> EOF
Simon Heimberg
check-code: do not prepend "warning" to a failure message...
r18762 $ "$check_code" for-nolineno.py --nolineno
for-nolineno.py:0:
Mads Kiilerich
check-code: add --nolineno option for hiding line numbers...
r15502 > except:
Simon Heimberg
check-code: do not prepend "warning" to a failure message...
r18762 naked except clause
Mads Kiilerich
check-code: add --nolineno option for hiding line numbers...
r15502 [1]
Augie Fackler
check-code: disallow two-argument form of raise...
r18180
Simon Heimberg
check-code: automatically preppend "warning: " to all warning messages...
r19422 $ cat > warning.t <<EOF
> $ function warnonly {
> > }
Simon Heimberg
check-code: prepend warning prefix only once, but for each warning...
r20005 > $ diff -N aaa
> $ function onwarn {}
Simon Heimberg
check-code: automatically preppend "warning: " to all warning messages...
r19422 > EOF
$ "$check_code" warning.t
$ "$check_code" --warn warning.t
warning.t:1:
> $ function warnonly {
warning: don't use 'function', use old style
Simon Heimberg
check-code: prepend warning prefix only once, but for each warning...
r20005 warning.t:3:
> $ diff -N aaa
warning: don't use 'diff -N'
warning.t:4:
> $ function onwarn {}
warning: don't use 'function', use old style
Simon Heimberg
check-code: automatically preppend "warning: " to all warning messages...
r19422 [1]
Augie Fackler
check-code: disallow two-argument form of raise...
r18180 $ cat > raise-format.py <<EOF
> raise SomeException, message
> # this next line is okay
> raise SomeException(arg1, arg2)
> EOF
Simon Heimberg
check-code: do not abort on an unreadable file, only report this
r19494 $ "$check_code" not-existing.py raise-format.py
Skipping*not-existing.py* (glob)
Augie Fackler
check-code: disallow two-argument form of raise...
r18180 raise-format.py:1:
> raise SomeException, message
don't use old-style two-argument raise, use Exception(message)
[1]
Simon Heimberg
check-code: do not abort on an unreadable file, only report this
r19494
Simon Heimberg
check-code: check comment for '.. note::' without two newlines...
r19998 $ cat > rst.py <<EOF
> """problematic rst text
>
> .. note::
> wrong
> """
>
> '''
>
> .. note::
>
> valid
>
> new text
>
> .. note::
>
> also valid
> '''
>
> """mixed
>
> .. note::
>
> good
>
> .. note::
> plus bad
> """
> EOF
$ $check_code -w rst.py
rst.py:3:
> .. note::
warning: add two newlines after '.. note::'
rst.py:26:
> .. note::
warning: add two newlines after '.. note::'
[1]
FUJIWARA Katsunori
check-code: detect "% inside _()" when there are leading whitespaces...
r21097 $ cat > ./map-inside-gettext.py <<EOF
> print _("map inside gettext %s" % v)
>
> print _("concatenating " " by " " space %s" % v)
> print _("concatenating " + " by " + " '+' %s" % v)
>
Mads Kiilerich
spelling: fixes from proofreading of spell checker issues
r23139 > print _("mapping operation in different line %s"
FUJIWARA Katsunori
check-code: detect "% inside _()" when there are leading whitespaces...
r21097 > % v)
>
> print _(
> "leading spaces inside of '(' %s" % v)
> EOF
$ "$check_code" ./map-inside-gettext.py
./map-inside-gettext.py:1:
> print _("map inside gettext %s" % v)
don't use % inside _()
./map-inside-gettext.py:3:
> print _("concatenating " " by " " space %s" % v)
don't use % inside _()
./map-inside-gettext.py:4:
> print _("concatenating " + " by " + " '+' %s" % v)
don't use % inside _()
./map-inside-gettext.py:6:
Mads Kiilerich
spelling: fixes from proofreading of spell checker issues
r23139 > print _("mapping operation in different line %s"
FUJIWARA Katsunori
check-code: detect "% inside _()" when there are leading whitespaces...
r21097 don't use % inside _()
./map-inside-gettext.py:9:
> print _(
don't use % inside _()
[1]
Steven Brown
check-code: check for consistent usage of the websub filter in hgweb templates...
r21487
web templates
$ mkdir -p mercurial/templates
$ cat > mercurial/templates/example.tmpl <<EOF
> {desc}
> {desc|escape}
> {desc|firstline}
> {desc|websub}
> EOF
$ "$check_code" --warnings mercurial/templates/example.tmpl
mercurial/templates/example.tmpl:2:
> {desc|escape}
warning: follow desc keyword with either firstline or websub
[1]