Skip to content

Commit b884b9d

Browse files
authored
chore: Add pytests for constructing pytypes from iterable (#4138)
* Add some additional pytests * Reorder tests * Further reorder tests * remove stray lines * remove unused fixtures
1 parent bbb89da commit b884b9d

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

tests/test_pytypes.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,11 @@ TEST_SUBMODULE(pytypes, m) {
109109
m.def("get_iterator", [] { return py::iterator(); });
110110
// test_iterable
111111
m.def("get_iterable", [] { return py::iterable(); });
112+
m.def("get_frozenset_from_iterable",
113+
[](const py::iterable &iter) { return py::frozenset(iter); });
114+
m.def("get_list_from_iterable", [](const py::iterable &iter) { return py::list(iter); });
115+
m.def("get_set_from_iterable", [](const py::iterable &iter) { return py::set(iter); });
116+
m.def("get_tuple_from_iterable", [](const py::iterable &iter) { return py::tuple(iter); });
112117
// test_float
113118
m.def("get_float", [] { return py::float_(0.0f); });
114119
// test_list

tests/test_pytypes.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,22 @@ def test_iterator(doc):
2626
assert doc(m.get_iterator) == "get_iterator() -> Iterator"
2727

2828

29+
@pytest.mark.parametrize(
30+
"pytype, from_iter_func",
31+
[
32+
(frozenset, m.get_frozenset_from_iterable),
33+
(list, m.get_list_from_iterable),
34+
(set, m.get_set_from_iterable),
35+
(tuple, m.get_tuple_from_iterable),
36+
],
37+
)
38+
def test_from_iterable(pytype, from_iter_func):
39+
my_iter = iter(range(10))
40+
s = from_iter_func(my_iter)
41+
assert type(s) == pytype
42+
assert s == pytype(range(10))
43+
44+
2945
def test_iterable(doc):
3046
assert doc(m.get_iterable) == "get_iterable() -> Iterable"
3147

0 commit comments

Comments
 (0)