File: test_class_sh_property_non_owning.py

package info (click to toggle)
pybind11 3.0.1-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,448 kB
  • sloc: cpp: 27,239; python: 13,512; ansic: 4,244; makefile: 204; sh: 36
file content (30 lines) | stat: -rw-r--r-- 963 bytes parent folder | download
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
from __future__ import annotations

import pytest

from pybind11_tests import class_sh_property_non_owning as m


@pytest.mark.parametrize("persistent_holder", [True, False])
@pytest.mark.parametrize(
    ("core_fld", "expected"),
    [
        ("core_fld_value_ro", (13, 24)),
        ("core_fld_value_rw", (13, 24)),
        ("core_fld_shared_ptr_ro", (14, 25)),
        ("core_fld_shared_ptr_rw", (14, 25)),
        ("core_fld_raw_ptr_ro", (14, 25)),
        ("core_fld_raw_ptr_rw", (14, 25)),
        ("core_fld_unique_ptr_rw", (15, 26)),
    ],
)
def test_core_fld_common(core_fld, expected, persistent_holder):
    if persistent_holder:
        h = m.DataFieldsHolder(2)
        for i, exp in enumerate(expected):
            c = getattr(h.vec_at(i), core_fld)
            assert c.int_value == exp
    else:
        for i, exp in enumerate(expected):
            c = getattr(m.DataFieldsHolder(2).vec_at(i), core_fld)
            assert c.int_value == exp