175 lines
2.7 KiB
Python
175 lines
2.7 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
from __future__ import absolute_import, division, print_function, unicode_literals
|
|
|
|
import sys
|
|
|
|
from pies.overrides import *
|
|
|
|
from frosted import messages as m
|
|
|
|
from .utils import flakes
|
|
|
|
|
|
def test_ok():
|
|
flakes('''
|
|
def foo(a):
|
|
pass
|
|
foo(5)
|
|
''')
|
|
|
|
flakes('''
|
|
def foo(a, b=2):
|
|
pass
|
|
foo(5, b=1)
|
|
''')
|
|
|
|
|
|
def test_noCheckDecorators():
|
|
flakes('''
|
|
def decorator(f):
|
|
return f
|
|
@decorator
|
|
def foo():
|
|
pass
|
|
foo(42)
|
|
''')
|
|
|
|
|
|
def test_tooManyArguments():
|
|
flakes('''
|
|
def foo():
|
|
pass
|
|
foo(5)
|
|
''', m.TooManyArguments)
|
|
flakes('''
|
|
def foo(a, b):
|
|
pass
|
|
foo(5, 6, 7)
|
|
''', m.TooManyArguments)
|
|
|
|
|
|
def test_tooManyArgumentsVarargs():
|
|
flakes('''
|
|
def foo(a, *args):
|
|
pass
|
|
foo(1, 2, 3)
|
|
''')
|
|
|
|
|
|
def test_unexpectedArgument():
|
|
flakes('''
|
|
def foo(a):
|
|
pass
|
|
foo(1, b=3)
|
|
''', m.UnexpectedArgument)
|
|
|
|
flakes('''
|
|
def foo(a, *args):
|
|
pass
|
|
foo(1, b=3)
|
|
''', m.UnexpectedArgument)
|
|
|
|
flakes('''
|
|
def foo(a, **kwargs):
|
|
pass
|
|
foo(1, b=3)
|
|
''')
|
|
|
|
|
|
def test_multipleValuesForArgument():
|
|
flakes('''
|
|
def foo(a):
|
|
pass
|
|
foo(5, a=5)
|
|
''', m.MultipleValuesForArgument)
|
|
|
|
|
|
def test_tooFewArguments():
|
|
flakes('''
|
|
def foo(a):
|
|
pass
|
|
foo()
|
|
''', m.TooFewArguments)
|
|
|
|
flakes('''
|
|
def foo(a):
|
|
pass
|
|
foo(*[])
|
|
''')
|
|
|
|
flakes('''
|
|
def foo(a):
|
|
pass
|
|
foo(**{})
|
|
''')
|
|
|
|
|
|
def test_tooFewArgumentsVarArgs():
|
|
flakes('''
|
|
def foo(a, b, *args):
|
|
pass
|
|
foo(1)
|
|
''', m.TooFewArguments)
|
|
|
|
|
|
if PY3:
|
|
def test_kwOnlyArguments():
|
|
flakes('''
|
|
def foo(a, *, b=0):
|
|
pass
|
|
foo(5, b=2)
|
|
''')
|
|
|
|
flakes('''
|
|
def foo(a, *, b=0):
|
|
pass
|
|
foo(5)
|
|
''')
|
|
|
|
flakes('''
|
|
def foo(a, *, b):
|
|
pass
|
|
foo(5, b=2)
|
|
''')
|
|
|
|
flakes('''
|
|
def foo(a, *, b):
|
|
pass
|
|
foo(5, **{})
|
|
''')
|
|
|
|
flakes('''
|
|
def foo(a, *, b):
|
|
pass
|
|
foo(1)
|
|
''', m.NeedKwOnlyArgument)
|
|
|
|
flakes('''
|
|
def foo(a, *args, b):
|
|
pass
|
|
foo(1, 2, 3, 4)
|
|
''', m.NeedKwOnlyArgument)
|
|
elif PY2:
|
|
def test_compoundArguments():
|
|
flakes('''
|
|
def foo(a, (b, c)):
|
|
pass
|
|
foo(1, [])''')
|
|
|
|
flakes('''
|
|
def foo(a, (b, c)):
|
|
pass
|
|
foo(1, 2, 3)''', m.TooManyArguments)
|
|
|
|
flakes('''
|
|
def foo(a, (b, c)):
|
|
pass
|
|
foo(1)''', m.TooFewArguments)
|
|
|
|
flakes('''
|
|
def foo(a, (b, c)):
|
|
pass
|
|
foo(1, b=2, c=3)''', m.UnexpectedArgument)
|