|
@@ 1675-1694 (lines=20) @@
|
| 1672 |
|
self.throws(custom_bad, |
| 1673 |
|
OBJECTDOESNOTSUPPORT, |
| 1674 |
|
sugg_imp, |
| 1675 |
|
from_version(version), 'cython') |
| 1676 |
|
self.runs(custom_good) |
| 1677 |
|
|
| 1678 |
|
def test_not_callable(self): |
| 1679 |
|
"""Sometimes, one uses parenthesis instead of brackets.""" |
| 1680 |
|
typo, getitem = '(0)', '[0]' |
| 1681 |
|
for ex, sugg in { |
| 1682 |
|
'[0]': "'list[value]'", |
| 1683 |
|
'{0: 0}': "'dict[value]'", |
| 1684 |
|
'"a"': "'str[value]'", |
| 1685 |
|
}.items(): |
| 1686 |
|
self.throws(ex + typo, NOTCALLABLE, sugg) |
| 1687 |
|
self.runs(ex + getitem) |
| 1688 |
|
for ex in ['1', 'set()']: |
| 1689 |
|
self.throws(ex + typo, NOTCALLABLE) |
| 1690 |
|
|
| 1691 |
|
def test_not_callable_custom(self): |
| 1692 |
|
"""One must define __call__ to call custom objects.""" |
| 1693 |
|
v3 = (3, 0) |
| 1694 |
|
code = 'o = {0}()\no()' |
| 1695 |
|
bad, good = format_str(code, 'CustomClass', 'CallClass') |
| 1696 |
|
sugg = 'implement "__call__" on CustomClass' |
| 1697 |
|
self.throws(bad, INSTHASNOMETH, [], up_to_version(v3), 'cython') |
|
@@ 920-939 (lines=20) @@
|
| 917 |
|
["'{0}' (but it is supposed to be private)".format(sugg), |
| 918 |
|
"'{0}'".format(sugg2)]) |
| 919 |
|
self.runs(bad_sugg) |
| 920 |
|
self.runs(good_sugg) |
| 921 |
|
|
| 922 |
|
def test_get_on_nondict_cont(self): |
| 923 |
|
"""Method get does not exist on all containers.""" |
| 924 |
|
code = '{0}().get(0, None)' |
| 925 |
|
dictcode, tuplecode, listcode, setcode = \ |
| 926 |
|
format_str(code, 'dict', 'tuple', 'list', 'set') |
| 927 |
|
self.runs(dictcode) |
| 928 |
|
self.throws(setcode, ATTRIBUTEERROR) |
| 929 |
|
for bad_code in tuplecode, listcode: |
| 930 |
|
self.throws(bad_code, ATTRIBUTEERROR, |
| 931 |
|
"'obj[key]' with a len() check or " |
| 932 |
|
"try: except: KeyError or IndexError") |
| 933 |
|
|
| 934 |
|
def test_removed_has_key(self): |
| 935 |
|
"""Method has_key is removed from dict.""" |
| 936 |
|
code = 'dict().has_key(1)' |
| 937 |
|
new_code = '1 in dict()' |
| 938 |
|
version = (3, 0) |
| 939 |
|
self.runs(code, up_to_version(version)) |
| 940 |
|
self.throws( |
| 941 |
|
code, |
| 942 |
|
ATTRIBUTEERROR, |