The following series refactors pyverbs' objects creation process and cleans up some redundant tests: The first patch removes its close_weakrefs() out of the base objects, as it doesn't use 'self' and is called during teardown, when the object might not be fully valid. The second patch switches pyverbs to use Python's init method rather thab Cython's cinit method, during which the Python object is not yet valid. Calling rdma-core's objects creation methods can be done in init just as well. The last patch removes some unneeded tests and adapts QP creation tests to consider TSO existance when setting QP caps. Noa Osherovich (3): pyverbs: Move close_weakrefs() out of the base object pyverbs: Refactor objects creation process tests: Some cleanup pyverbs/addr.pyx | 23 ++++---- pyverbs/base.pxd | 2 + pyverbs/base.pyx | 50 ++++++++++-------- pyverbs/cmid.pyx | 14 +++-- pyverbs/cq.pyx | 33 +++++++----- pyverbs/device.pyx | 44 +++++++++------- pyverbs/mr.pyx | 40 +++++++------- pyverbs/pd.pyx | 43 ++++++++------- pyverbs/providers/mlx5/mlx5dv.pyx | 49 ++++++++++------- pyverbs/qp.pyx | 87 ++++++++++++++++--------------- pyverbs/srq.pyx | 20 ++++--- pyverbs/wr.pyx | 14 +++-- pyverbs/xrcd.pyx | 9 ++-- tests/test_mr.py | 14 ----- tests/test_pd.py | 12 ----- tests/test_qp.py | 2 - tests/utils.py | 3 ++ 17 files changed, 242 insertions(+), 217 deletions(-) -- 2.21.0