Simplify tests by replacing output capture with asserts where possible
The C++ part of the test code is modified to achieve this. As a result,
this kind of test:
```python
with capture:
kw_func1(5, y=10)
assert capture == "kw_func(x=5, y=10)"
```
can be replaced with a simple:
`assert kw_func1(5, y=10) == "x=5, y=10"`
diff --git a/tests/test_virtual_functions.py b/tests/test_virtual_functions.py
index f2efb6b..27b0222 100644
--- a/tests/test_virtual_functions.py
+++ b/tests/test_virtual_functions.py
@@ -173,7 +173,7 @@
assert obj.lucky_number() == -4.25
-def test_move_support(capture, msg):
+def test_move_support(capture):
from pybind11_tests import NCVirt, NonCopyable, Movable
class NCVirtExt(NCVirt):