All of lore.kernel.org
 help / color / mirror / Atom feed
From: Alexandre Ondet <frcomdev@gmail.com>
To: buildroot@buildroot.org
Cc: buildroot@bubu1.eu, james.hilliard1@gmail.com,
	thomas.petazzoni@bootlin.com
Subject: [Buildroot] [PATCH] package/python-nmcli: fix dependencies and add runtime test
Date: Thu, 11 Jun 2026 14:16:21 -0500	[thread overview]
Message-ID: <20260611191621.441-1-frcomdev@gmail.com> (raw)
In-Reply-To: <20260611191552.414-1-frcomdev@gmail.com>

Depend on network-manager and select nmcli support so the Python wrapper can invoke the nmcli binary at runtime. Add a runtime test that boots with systemd and exercises nmcli.general.status().
---
 package/python-nmcli/Config.in                |  4 +++-
 package/python-nmcli/python-nmcli.hash        |  2 +-
 package/python-nmcli/python-nmcli.mk          |  2 +-
 .../tests/package/sample_python_nmcli.py      |  8 +++++++
 .../tests/package/test_python_nmcli.py        | 24 +++++++++++++++++++
 5 files changed, 37 insertions(+), 3 deletions(-)
 create mode 100644 support/testing/tests/package/sample_python_nmcli.py
 create mode 100644 support/testing/tests/package/test_python_nmcli.py

diff --git a/package/python-nmcli/Config.in b/package/python-nmcli/Config.in
index acdb6a1423..ad282f0584 100644
--- a/package/python-nmcli/Config.in
+++ b/package/python-nmcli/Config.in
@@ -1,6 +1,8 @@
 config BR2_PACKAGE_PYTHON_NMCLI
 	bool "python-nmcli"
+	depends on BR2_PACKAGE_NETWORK_MANAGER # runtime
+	select BR2_PACKAGE_NETWORK_MANAGER_CLI
 	help
 	  Python wrapper for nmcli (NetworkManager).
 
-	  https://github.com/ushiboy/nmcli
\ No newline at end of file
+	  https://github.com/ushiboy/nmcli
diff --git a/package/python-nmcli/python-nmcli.hash b/package/python-nmcli/python-nmcli.hash
index d11842e3e8..5bf087fde9 100644
--- a/package/python-nmcli/python-nmcli.hash
+++ b/package/python-nmcli/python-nmcli.hash
@@ -1,3 +1,3 @@
 # From https://pypi.org/pypi/nmcli/1.7.0/json
 sha256  4fb17b6c33d276a264a27b7109fa1d70987570536fa8852b51830f9f7732f982  nmcli-1.7.0.tar.gz
-sha256  9dbbc4debacc85f5f5f074614cd9cadd61da09eaa19f98f6bbb5463c34133820  LICENSE.txt
\ No newline at end of file
+sha256  9dbbc4debacc85f5f5f074614cd9cadd61da09eaa19f98f6bbb5463c34133820  LICENSE.txt
diff --git a/package/python-nmcli/python-nmcli.mk b/package/python-nmcli/python-nmcli.mk
index 449131974d..63f258238b 100644
--- a/package/python-nmcli/python-nmcli.mk
+++ b/package/python-nmcli/python-nmcli.mk
@@ -11,4 +11,4 @@ PYTHON_NMCLI_SETUP_TYPE = setuptools
 PYTHON_NMCLI_LICENSE = MIT
 PYTHON_NMCLI_LICENSE_FILES = LICENSE.txt
 
-$(eval $(python-package))
\ No newline at end of file
+$(eval $(python-package))
diff --git a/support/testing/tests/package/sample_python_nmcli.py b/support/testing/tests/package/sample_python_nmcli.py
new file mode 100644
index 0000000000..5fa8dee0c4
--- /dev/null
+++ b/support/testing/tests/package/sample_python_nmcli.py
@@ -0,0 +1,8 @@
+#!/usr/bin/env python3
+
+import nmcli
+
+general = nmcli.general.status()
+print(general)
+
+assert general.state is not None
diff --git a/support/testing/tests/package/test_python_nmcli.py b/support/testing/tests/package/test_python_nmcli.py
new file mode 100644
index 0000000000..20fffa2356
--- /dev/null
+++ b/support/testing/tests/package/test_python_nmcli.py
@@ -0,0 +1,24 @@
+from tests.package.test_python import TestPythonPackageBase
+
+
+class TestPythonPy3Nmcli(TestPythonPackageBase):
+    __test__ = True
+    # Can't use TestPythonPackageBase.config because we need headers
+    # >= 5.4 for network-manager, so we have to use the bleeding-edge
+    # toolchain.
+    config = \
+        """
+        BR2_arm=y
+        BR2_TOOLCHAIN_EXTERNAL=y
+        BR2_TOOLCHAIN_EXTERNAL_BOOTLIN=y
+        BR2_TOOLCHAIN_EXTERNAL_BOOTLIN_ARMV5_EABI_GLIBC_BLEEDING_EDGE=y
+        BR2_PACKAGE_PYTHON3=y
+        BR2_INIT_SYSTEMD=y
+        BR2_PACKAGE_NETWORK_MANAGER=y
+        BR2_PACKAGE_PYTHON_NMCLI=y
+        BR2_TARGET_ROOTFS_CPIO=y
+        # BR2_TARGET_ROOTFS_TAR is not set
+        """
+    sample_scripts = ["tests/package/sample_python_nmcli.py"]
+
+    timeout = 30
-- 
2.53.0.windows.2

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

  reply	other threads:[~2026-06-11 19:16 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-04-28 17:20 [Buildroot] [PATCH 06/13] package/python-nmcli: new package Alexandre Ondet
2026-05-30 22:00 ` Marcus Hoffmann via buildroot
2026-06-11 19:15   ` Alexandre Ondet
2026-06-11 19:16     ` Alexandre Ondet [this message]
2026-06-12 10:54     ` Marcus Hoffmann via buildroot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260611191621.441-1-frcomdev@gmail.com \
    --to=frcomdev@gmail.com \
    --cc=buildroot@bubu1.eu \
    --cc=buildroot@buildroot.org \
    --cc=james.hilliard1@gmail.com \
    --cc=thomas.petazzoni@bootlin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.