File: test75.py

package info (click to toggle)
pychecker 0.8.19-10
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 2,484 kB
  • ctags: 2,114
  • sloc: python: 9,968; sh: 98; makefile: 13
file content (87 lines) | stat: -rw-r--r-- 1,939 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
'test slots & property, this will only work in Python 2.2'

class A:
    'warn about using slots in classic classes'
    __slots__ = ('a',)

try:
    class B(object):
        'no warning'
        __slots__ = ('a',)

    class C(object):
        'warn about using empty slots'
        __slots__ = ()

    class D(object):
        "don't warn about using empty slots"
        __pychecker__ = '--no-emptyslots'
        __slots__ = ()

    class E:
        'this should generate a warning for using properties w/classic classes'
        def getx(self):
            print 'get x'
            return 5
        x = property(getx)

    class F(object):
        'this should not generate a warning for using properties'
        def getx(self):
            print 'get x'
            return 5
        x = property(getx)

    class Solution(list):
        'this should not generate a warning or crash'
        def __init__(self):
            pass

    class MethodArgNames:
        'check warnings for static/class methods for first arg name'
        def __init__(self, *args): pass

        # should warn
        def nn(self, *args): pass
        nn = classmethod(nn)

        # should warn
        def mm(self, *args): pass
        mm = staticmethod(mm)

        # should not warn
        def oo(cls, *args): pass
        oo = classmethod(oo)

        # should not warn
        def pp(*args): pass
        pp = staticmethod(pp)

        # should not warn
        def qq(): pass
        qq = staticmethod(qq)

        # should not warn
        def rr(klass, *args): pass
        rr = classmethod(rr)

    class Bug4(object):
        '''doc'''
        def static(arg1, arg2):
            return arg1+arg2
        static = staticmethod(static)

        def buggy(self):
            return self.static(1,2)

    class Slots(dict):
        'doc'
        pass

    class Foo(object):
        'doc'
        __slots__ = Slots()

except NameError:
    pass