From 7b3bf7b29c49848dd29d778f4041dd90cd5556cc Mon Sep 17 00:00:00 2001 From: "Fiona Klute (WIWA)" Date: Mon, 11 Aug 2025 18:02:10 +0200 Subject: [PATCH] support/testing: python-pyroute2: new runtime test Signed-off-by: Fiona Klute (WIWA) [Julien: - reword commit log title - replace python '%' formatting with '+' concatenation - remove IP address assertion in test controller as it is already in sample script ] Signed-off-by: Julien Olivain --- DEVELOPERS | 2 ++ .../tests/package/sample_python_pyroute2.py | 16 +++++++++++++ .../tests/package/test_python_pyroute2.py | 24 +++++++++++++++++++ 3 files changed, 42 insertions(+) create mode 100644 support/testing/tests/package/sample_python_pyroute2.py create mode 100644 support/testing/tests/package/test_python_pyroute2.py diff --git a/DEVELOPERS b/DEVELOPERS index a28f3e8d57..cdcde0585f 100644 --- a/DEVELOPERS +++ b/DEVELOPERS @@ -1123,8 +1123,10 @@ F: package/python-aiomqtt/ F: package/python-pyasynchat/ F: package/python-pyasyncore/ F: support/testing/tests/package/sample_python_networkmanager_goi.py +F: support/testing/tests/package/sample_python_pyroute2.py F: support/testing/tests/package/test_nftables.py F: support/testing/tests/package/test_python_networkmanager_goi.py +F: support/testing/tests/package/test_python_pyroute2.py N: Flávio Tapajós F: configs/asus_tinker-s_rk3288_defconfig diff --git a/support/testing/tests/package/sample_python_pyroute2.py b/support/testing/tests/package/sample_python_pyroute2.py new file mode 100644 index 0000000000..50d0d486bf --- /dev/null +++ b/support/testing/tests/package/sample_python_pyroute2.py @@ -0,0 +1,16 @@ +from pyroute2 import IPRoute + + +def test_ipr(): + with IPRoute() as ipr: + lo = ipr.link('get', ifname='lo')[0] + a = [ + dict(a['attrs'])['IFA_ADDRESS'] + for a in ipr.get_addr(index=lo['index']) + ] + print(repr(a)) + assert '127.0.0.1' in a + + +if __name__ == '__main__': + test_ipr() diff --git a/support/testing/tests/package/test_python_pyroute2.py b/support/testing/tests/package/test_python_pyroute2.py new file mode 100644 index 0000000000..2f54a2bd26 --- /dev/null +++ b/support/testing/tests/package/test_python_pyroute2.py @@ -0,0 +1,24 @@ +from tests.package.test_python import TestPythonPackageBase +import os + + +class TestPythonPyroute2(TestPythonPackageBase): + __test__ = True + config = TestPythonPackageBase.config + \ + """ + BR2_PACKAGE_PYTHON3=y + BR2_PACKAGE_PYTHON_PYROUTE2=y + """ + sample_scripts = ["tests/package/sample_python_pyroute2.py"] + + def test_run(self): + self.login() + self.check_sample_scripts_exist() + # helpful for debugging, if the test fails the run log will + # show if the interface was ready + output, exit_code = self.emulator.run('ip addr show', timeout=15) + self.assertEqual(exit_code, 0) + + cmd = self.interpreter + " " + os.path.basename(self.sample_scripts[0]) + _, exit_code = self.emulator.run(cmd, timeout=15) + self.assertEqual(exit_code, 0)