commit:     8d06d85786d65f354a2d8a73c33958a4b7175200
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Thu Jul 18 15:57:51 2024 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Thu Jul 18 15:57:51 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8d06d857

dev-build/meson-format-array: add some doctests

Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 .../{meson-format-array => meson-format-array.py}   | 21 +++++++++++++++++++--
 .../meson-format-array/meson-format-array-0.ebuild  | 11 +++++++++--
 2 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/dev-build/meson-format-array/files/meson-format-array 
b/dev-build/meson-format-array/files/meson-format-array.py
similarity index 61%
rename from dev-build/meson-format-array/files/meson-format-array
rename to dev-build/meson-format-array/files/meson-format-array.py
index d2bf49ba8e59..84a490cf29eb 100644
--- a/dev-build/meson-format-array/files/meson-format-array
+++ b/dev-build/meson-format-array/files/meson-format-array.py
@@ -6,10 +6,22 @@ import itertools
 import shlex
 import sys
 
+
 def quote(s):
+    """ Surround a value with quotes, escape embedded quotes.
+    >>> quote("foo'bar")
+    "'foo\\\\'bar'"
+    """
+
     return "'" + s.replace("\\", "\\\\").replace("'", "\\'") + "'"
 
-def main(args):
+
+def format_array(args):
+    """ Format shell-compatible expressions as a meson array.
+    >>> format_array(['-O2 -pipe -DFOO="bar baz"'])
+    "['-O2', '-pipe', '-DFOO=bar baz']"
+    """
+
     # Split each argument according to shell rules
     args = (shlex.split(x) for x in args)
 
@@ -20,7 +32,12 @@ def main(args):
     args = (quote(x) for x in args)
 
     # Format the result
-    print("[" + ", ".join(args) + "]")
+    return "[" + ", ".join(args) + "]"
+
+
+def main(args):
+    print(format_array(args))
+
 
 if __name__ == "__main__":
     main(sys.argv[1:])

diff --git a/dev-build/meson-format-array/meson-format-array-0.ebuild 
b/dev-build/meson-format-array/meson-format-array-0.ebuild
index d9e12ab903f2..018d99e38bd9 100644
--- a/dev-build/meson-format-array/meson-format-array-0.ebuild
+++ b/dev-build/meson-format-array/meson-format-array-0.ebuild
@@ -4,7 +4,7 @@
 EAPI=8
 PYTHON_COMPAT=( python3_{10..13} )
 
-inherit python-r1
+inherit edo python-r1
 
 DESCRIPTION="Format shell expressions into a meson array"
 HOMEPAGE="https://wiki.gentoo.org/wiki/No_homepage";
@@ -17,6 +17,13 @@ REQUIRED_USE="${PYTHON_REQUIRED_USE}"
 RDEPEND="${PYTHON_DEPS}"
 S="${WORKDIR}"
 
+src_test() {
+       run_doctest() {
+               edo ${EPYTHON} -B -m doctest "${FILESDIR}/meson-format-array.py"
+       }
+       python_foreach_impl run_doctest
+}
+
 src_install() {
-       python_foreach_impl python_doscript "${FILESDIR}"/meson-format-array
+       python_foreach_impl python_newscript 
"${FILESDIR}"/meson-format-array.py meson-format-array
 }

Reply via email to