File: apptest_instmethobject.py

package info (click to toggle)
pypy3 7.3.19%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 212,236 kB
  • sloc: python: 2,098,316; ansic: 540,565; sh: 21,462; asm: 14,419; cpp: 4,451; makefile: 4,209; objc: 761; xml: 530; exp: 499; javascript: 314; pascal: 244; lisp: 45; csh: 12; awk: 4
file content (38 lines) | stat: -rw-r--r-- 1,089 bytes parent folder | download | duplicates (5)
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

# NB. instmethobject.py has been removed,
# but the following tests still make sense

def test_callBound():
    boundMethod = [1,2,3].__len__
    assert boundMethod() == 3
    raises(TypeError, boundMethod, 333)

def test_callUnbound():
    unboundMethod = list.__len__
    assert unboundMethod([1,2,3]) == 3
    raises(TypeError, unboundMethod)
    raises(TypeError, unboundMethod, 333)
    raises(TypeError, unboundMethod, [1,2,3], 333)

def test_err_format():
    class C(object):
        def m(self): pass
    try:
        C.m(1)
    except TypeError as e:
        assert str(e) == 'unbound method m() must be called with C instance as first argument (got int instance instead)'

def test_getBound():
    def f(l,x): return l[x+1]
    bound = f.__get__('abcdef')
    assert bound(1) == 'c'
    raises(TypeError, bound)
    raises(TypeError, bound, 2, 3)

def test_getUnbound():
    def f(l,x): return l[x+1]
    unbound = f.__get__(None, str)
    assert unbound('abcdef', 2) == 'd'
    raises(TypeError, unbound)
    raises(TypeError, unbound, 4)
    raises(TypeError, unbound, 4, 5)