Skip to content

Commit 0c26ff6

Browse files
committed
Typing in tests.
1 parent 1e9e837 commit 0c26ff6

16 files changed

Lines changed: 399 additions & 325 deletions
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,60 @@
11
accountids
2+
addclass
3+
addmethod
4+
addpair
5+
addstatic
6+
addx
7+
aeiou
8+
alist
29
arctan
310
backgroundm
11+
badsubmodulename
12+
basestring
13+
BCDE
14+
blist
15+
cccbbbaaa
416
ccount
517
CIBUILDWHEEL
18+
classmethods
19+
cmap
20+
cmul
621
comparables
722
connectee
823
Cython
924
cythonization
1025
cythonize
1126
Dact
27+
doctests
28+
doesnot
1229
eehhhh
1330
embedsignature
1431
freethreading
1532
frozensets
33+
getzero
34+
indollars
35+
inspectbroken
1636
iseven
37+
juxtfunc
38+
Khhhaaaaannnnn
1739
kwdefaults
1840
leetspeak
1941
modname
42+
mycurry
43+
myfunc
44+
newdoc
45+
newmodule
46+
newparam
47+
newqualname
48+
oldd
49+
otherfunc
2050
Rocklin
51+
rsample
52+
sequenceiterator
53+
subclassable
54+
testlines
55+
tlzthisisabadname
2156
tobytes
2257
Transformee
2358
transformees
2459
Truncator
60+
unhash

humpy_toolz/tests/ruff.toml

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
extend = "../../ruff.toml"
2+
3+
[lint]
4+
ignore = [
5+
"A004",
6+
"B007",
7+
"B018",
8+
"B904",
9+
"C410",
10+
"E721",
11+
"E731",
12+
"EM101",
13+
"F841",
14+
"PIE807",
15+
"PLC0415",
16+
"PLW0108",
17+
"RUF005",
18+
"S102",
19+
"S301",
20+
"S311",
21+
"SIM201",
22+
"SIM202",
23+
"SLF001",
24+
"TC003",
25+
"UP031",
26+
"UP034",
27+
]

humpy_toolz/tests/test_curried.py

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -5,41 +5,41 @@
55
import humpy_toolz
66
import humpy_toolz.curried
77

8-
def test_take():
8+
def test_take() -> None:
99
assert list(take(2)([1, 2, 3])) == [1, 2]
1010

11-
def test_first():
11+
def test_first() -> None:
1212
assert first is humpy_toolz.itertoolz.first
1313

14-
def test_merge():
14+
def test_merge() -> None:
1515
assert merge(factory=lambda: defaultdict(int))({1: 1}) == {1: 1}
1616
assert merge({1: 1}) == {1: 1}
1717
assert merge({1: 1}, factory=lambda: defaultdict(int)) == {1: 1}
1818

19-
def test_merge_with():
19+
def test_merge_with() -> None:
2020
assert merge_with(sum)({1: 1}, {1: 2}) == {1: 3}
2121

22-
def test_merge_with_list():
22+
def test_merge_with_list() -> None:
2323
assert merge_with(sum, [{'a': 1}, {'a': 2}]) == {'a': 3}
2424

25-
def test_sorted():
25+
def test_sorted() -> None:
2626
assert sorted(key=second)([(1, 2), (2, 1)]) == [(2, 1), (1, 2)]
2727

28-
def test_reduce():
28+
def test_reduce() -> None:
2929
assert reduce(add)((1, 2, 3)) == 6
3030

31-
def test_module_name():
31+
def test_module_name() -> None:
3232
assert humpy_toolz.curried.__name__ == 'humpy_toolz.curried'
3333

34-
def should_curry(func):
34+
def should_curry(func: object) -> bool:
3535
if not callable(func) or isinstance(func, humpy_toolz.curry):
3636
return False
3737
nargs = humpy_toolz.functoolz.num_required_args(func)
3838
if nargs is None or nargs > 1:
3939
return True
4040
return nargs == 1 and humpy_toolz.functoolz.has_keywords(func)
4141

42-
def test_curried_operator():
42+
def test_curried_operator() -> None:
4343
import operator
4444
for k, v in vars(cop).items():
4545
if not callable(v):
@@ -54,11 +54,11 @@ def test_curried_operator():
5454
pass
5555
else:
5656
continue
57-
raise AssertionError('toolz.curried.operator.%s is not curried!' % k)
57+
raise AssertionError('humpy_toolz.curried.operator.%s is not curried!' % k)
5858
assert should_curry(getattr(operator, k)) == isinstance(v, humpy_toolz.curry), k
5959
assert len(set(vars(cop)) & {'add', 'sub', 'mul'}) == 3
6060

61-
def test_curried_namespace():
61+
def test_curried_namespace() -> None:
6262
exceptions = import_module('humpy_toolz.curried.exceptions')
6363
namespace = {}
6464

humpy_toolz/tests/test_curried_doctests.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import doctest
22
import humpy_toolz
33

4-
def test_doctests():
4+
def test_doctests() -> None:
55
humpy_toolz.__test__ = {}
66
for name, func in vars(humpy_toolz).items():
77
if isinstance(func, humpy_toolz.curry):

humpy_toolz/tests/test_dicttoolz.py

Lines changed: 42 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
from collections import defaultdict as _defaultdict
2-
from collections.abc import Mapping
2+
from collections.abc import Callable, ItemsView, Iterator, KeysView, Mapping, ValuesView
33
from humpy_toolz.dicttoolz import (
44
assoc, assoc_in, dissoc, itemfilter, itemmap, keyfilter, keymap, merge, merge_with, update_in, valfilter, valmap)
55
from humpy_toolz.functoolz import identity
66
from humpy_toolz.utils import raises
7+
from typing import Any, ClassVar
78
import os
89

9-
def inc(x):
10+
def inc(x: int) -> int:
1011
return x + 1
1112

12-
def iseven(i):
13+
def iseven(i: int) -> bool:
1314
return i % 2 == 0
1415

1516
class TestDict:
@@ -19,18 +20,18 @@ class TestDict:
1920
D: callable that inputs a dict and creates or returns a MutableMapping
2021
kw: kwargs dict to specify "factory" keyword (if applicable)
2122
"""
22-
D = dict
23-
kw = {}
23+
D: ClassVar[Callable[..., Any]] = dict
24+
kw: ClassVar[dict[str, Any]] = {}
2425

25-
def test_merge(self):
26+
def test_merge(self) -> None:
2627
D, kw = (self.D, self.kw)
2728
assert merge(D({1: 1, 2: 2}), D({3: 4}), **kw) == D({1: 1, 2: 2, 3: 4})
2829

29-
def test_merge_iterable_arg(self):
30+
def test_merge_iterable_arg(self) -> None:
3031
D, kw = (self.D, self.kw)
3132
assert merge([D({1: 1, 2: 2}), D({3: 4})], **kw) == D({1: 1, 2: 2, 3: 4})
3233

33-
def test_merge_with(self):
34+
def test_merge_with(self) -> None:
3435
D, kw = (self.D, self.kw)
3536
dicts = (D({1: 1, 2: 2}), D({1: 10, 2: 20}))
3637
assert merge_with(sum, *dicts, **kw) == D({1: 11, 2: 22})
@@ -40,39 +41,39 @@ def test_merge_with(self):
4041
assert merge_with(tuple, *dicts, **kw) == D({1: (1, 10), 2: (2, 20), 3: (3,)})
4142
assert not merge_with(sum)
4243

43-
def test_merge_with_iterable_arg(self):
44+
def test_merge_with_iterable_arg(self) -> None:
4445
D, kw = (self.D, self.kw)
4546
dicts = (D({1: 1, 2: 2}), D({1: 10, 2: 20}))
4647
assert merge_with(sum, *dicts, **kw) == D({1: 11, 2: 22})
4748
assert merge_with(sum, dicts, **kw) == D({1: 11, 2: 22})
4849
assert merge_with(sum, iter(dicts), **kw) == D({1: 11, 2: 22})
4950

50-
def test_valmap(self):
51+
def test_valmap(self) -> None:
5152
D, kw = (self.D, self.kw)
5253
assert valmap(inc, D({1: 1, 2: 2}), **kw) == D({1: 2, 2: 3})
5354

54-
def test_keymap(self):
55+
def test_keymap(self) -> None:
5556
D, kw = (self.D, self.kw)
5657
assert keymap(inc, D({1: 1, 2: 2}), **kw) == D({2: 1, 3: 2})
5758

58-
def test_itemmap(self):
59+
def test_itemmap(self) -> None:
5960
D, kw = (self.D, self.kw)
6061
assert itemmap(reversed, D({1: 2, 2: 4}), **kw) == D({2: 1, 4: 2})
6162

62-
def test_valfilter(self):
63+
def test_valfilter(self) -> None:
6364
D, kw = (self.D, self.kw)
6465
assert valfilter(iseven, D({1: 2, 2: 3}), **kw) == D({1: 2})
6566

66-
def test_keyfilter(self):
67+
def test_keyfilter(self) -> None:
6768
D, kw = (self.D, self.kw)
6869
assert keyfilter(iseven, D({1: 2, 2: 3}), **kw) == D({2: 3})
6970

70-
def test_itemfilter(self):
71+
def test_itemfilter(self) -> None:
7172
D, kw = (self.D, self.kw)
7273
assert itemfilter(lambda item: iseven(item[0]), D({1: 2, 2: 3}), **kw) == D({2: 3})
7374
assert itemfilter(lambda item: iseven(item[1]), D({1: 2, 2: 3}), **kw) == D({1: 2})
7475

75-
def test_assoc(self):
76+
def test_assoc(self) -> None:
7677
D, kw = (self.D, self.kw)
7778
assert assoc(D({}), 'a', 1, **kw) == D({'a': 1})
7879
assert assoc(D({'a': 1}), 'a', 3, **kw) == D({'a': 3})
@@ -82,7 +83,7 @@ def test_assoc(self):
8283
assoc(d, 'x', 2, **kw)
8384
assert d is oldd
8485

85-
def test_dissoc(self):
86+
def test_dissoc(self) -> None:
8687
D, kw = (self.D, self.kw)
8788
assert dissoc(D({'a': 1}), 'a', **kw) == D({})
8889
assert dissoc(D({'a': 1, 'b': 2}), 'a', **kw) == D({'b': 2})
@@ -95,7 +96,7 @@ def test_dissoc(self):
9596
assert d is oldd
9697
assert d2 is not oldd
9798

98-
def test_assoc_in(self):
99+
def test_assoc_in(self) -> None:
99100
D, kw = (self.D, self.kw)
100101
assert assoc_in(D({'a': 1}), ['a'], 2, **kw) == D({'a': 2})
101102
assert assoc_in(D({'a': D({'b': 1})}), ['a', 'b'], 2, **kw) == D({'a': D({'b': 2})})
@@ -106,7 +107,7 @@ def test_assoc_in(self):
106107
assert d is oldd
107108
assert d2 is not oldd
108109

109-
def test_update_in(self):
110+
def test_update_in(self) -> None:
110111
D, kw = (self.D, self.kw)
111112
assert update_in(D({'a': 0}), ['a'], inc, **kw) == D({'a': 1})
112113
assert update_in(D({'a': 0, 'b': 1}), ['b'], str, **kw) == D({'a': 0, 'b': '1'})
@@ -122,7 +123,7 @@ def test_update_in(self):
122123
update_in(d, ['x'], inc, **kw)
123124
assert d is oldd
124125

125-
def test_factory(self):
126+
def test_factory(self) -> None:
126127
D, kw = (self.D, self.kw)
127128
assert merge(defaultdict(int, D({1: 2})), D({2: 3})) == {1: 2, 2: 3}
128129
assert merge(defaultdict(int, D({1: 2})), D({2: 3}), factory=lambda: defaultdict(int)) == defaultdict(int, D({1: 2, 2: 3}))
@@ -131,7 +132,7 @@ def test_factory(self):
131132

132133
class defaultdict(_defaultdict):
133134

134-
def __eq__(self, other):
135+
def __eq__(self, other: object) -> bool:
135136
return super().__eq__(other) and isinstance(other, _defaultdict) and (self.default_factory == other.default_factory)
136137

137138
class TestDefaultDict(TestDict):
@@ -143,50 +144,50 @@ class TestDefaultDict(TestDict):
143144
"""
144145

145146
@staticmethod
146-
def D(dict_):
147+
def D(dict_: dict[Any, Any]) -> defaultdict:
147148
return defaultdict(int, dict_)
148149
kw = {'factory': lambda: defaultdict(int)}
149150

150151
class CustomMapping:
151152
"""Define methods of the MutableMapping protocol required by dicttoolz"""
152153

153-
def __init__(self, *args, **kwargs):
154+
def __init__(self, *args: Any, **kwargs: Any) -> None:
154155
self._d = dict(*args, **kwargs)
155156

156-
def __getitem__(self, key):
157+
def __getitem__(self, key: Any) -> Any:
157158
return self._d[key]
158159

159-
def __setitem__(self, key, val):
160+
def __setitem__(self, key: Any, val: Any) -> None:
160161
self._d[key] = val
161162

162-
def __delitem__(self, key):
163+
def __delitem__(self, key: Any) -> None:
163164
del self._d[key]
164165

165-
def __iter__(self):
166+
def __iter__(self) -> Iterator[Any]:
166167
return iter(self._d)
167168

168-
def __len__(self):
169+
def __len__(self) -> int:
169170
return len(self._d)
170171

171-
def __contains__(self, key):
172+
def __contains__(self, key: object) -> bool:
172173
return key in self._d
173174

174-
def __eq__(self, other):
175+
def __eq__(self, other: object) -> bool:
175176
return isinstance(other, CustomMapping) and self._d == other._d
176177

177-
def __ne__(self, other):
178+
def __ne__(self, other: object) -> bool:
178179
return not isinstance(other, CustomMapping) or self._d != other._d
179180

180-
def keys(self):
181+
def keys(self) -> KeysView[Any]:
181182
return self._d.keys()
182183

183-
def values(self):
184+
def values(self) -> ValuesView[Any]:
184185
return self._d.values()
185186

186-
def items(self):
187+
def items(self) -> ItemsView[Any, Any]:
187188
return self._d.items()
188189

189-
def update(self, *args, **kwargs):
190+
def update(self, *args: Any, **kwargs: Any) -> None:
190191
self._d.update(*args, **kwargs)
191192

192193
class TestCustomMapping(TestDict):
@@ -199,25 +200,25 @@ class TestCustomMapping(TestDict):
199200
D = CustomMapping
200201
kw = {'factory': lambda: CustomMapping()}
201202

202-
def test_environ():
203+
def test_environ() -> None:
203204
assert keymap(identity, os.environ) == os.environ
204205
assert valmap(identity, os.environ) == os.environ
205206
assert itemmap(identity, os.environ) == os.environ
206207

207-
def test_merge_with_non_dict_mappings():
208+
def test_merge_with_non_dict_mappings() -> None:
208209

209210
class Foo(Mapping):
210211

211-
def __init__(self, d):
212+
def __init__(self, d: dict[Any, Any]) -> None:
212213
self.d = d
213214

214-
def __iter__(self):
215+
def __iter__(self) -> Iterator[Any]:
215216
return iter(self.d)
216217

217-
def __getitem__(self, key):
218+
def __getitem__(self, key: Any) -> Any:
218219
return self.d[key]
219220

220-
def __len__(self):
221+
def __len__(self) -> int:
221222
return len(self.d)
222223
d = Foo({1: 1})
223224
assert merge(d) is d or merge(d) == {1: 1}

0 commit comments

Comments
 (0)