All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
To: Buildroot List <buildroot@buildroot.org>
Cc: Herve Codina <herve.codina@bootlin.com>,
	Jeremy Connat <Jeremy.Connat@orolia.com>,
	Asaf Kahlon <asafka7@gmail.com>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>,
	Ricardo Martincoski <ricardo.martincoski@gmail.com>
Subject: [Buildroot] [PATCH] package/python-unitest-xml-reporting: new package
Date: Tue,  2 Nov 2021 23:21:26 +0100	[thread overview]
Message-ID: <20211102222127.719703-1-thomas.petazzoni@bootlin.com> (raw)

Based on initial work from Nicolas Carrier
<nicolas.carrier@orolia.com>, with the following additions:

- Updated to a newer version
- Added proper license file handling
- Added runtime test case
- Restricted to Python 3.x

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
---
 DEVELOPERS                                    |  6 +++++
 package/Config.in                             |  1 +
 .../python-unittest-xml-reporting/Config.in   |  9 ++++++++
 .../python-unittest-xml-reporting.hash        |  5 ++++
 .../python-unittest-xml-reporting.mk          | 23 +++++++++++++++++++
 .../sample_python_unittest_xml_reporting.py   |  9 ++++++++
 .../test_python_unittest_xml_reporting.py     | 23 +++++++++++++++++++
 7 files changed, 76 insertions(+)
 create mode 100644 package/python-unittest-xml-reporting/Config.in
 create mode 100644 package/python-unittest-xml-reporting/python-unittest-xml-reporting.hash
 create mode 100644 package/python-unittest-xml-reporting/python-unittest-xml-reporting.mk
 create mode 100644 support/testing/tests/package/sample_python_unittest_xml_reporting.py
 create mode 100644 support/testing/tests/package/test_python_unittest_xml_reporting.py

diff --git a/DEVELOPERS b/DEVELOPERS
index db7521b578..d6117a6b3e 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -1983,14 +1983,17 @@ F:	package/php-xdebug/
 F:	package/python-augeas/
 F:	package/python-flask-expects-json/
 F:	package/python-git/
+F:	package/python-unittest-xml-reporting/
 F:	support/testing/tests/package/sample_bmap_tools.sh
 F:	support/testing/tests/package/sample_python_augeas.py
 F:	support/testing/tests/package/sample_python_flask_expects_json.py
 F:	support/testing/tests/package/sample_python_git.py
+F:	support/testing/tests/package/sample_python_unittest_xml_reporting.py
 F:	support/testing/tests/package/test_bmap_tools.py
 F:	support/testing/tests/package/test_python_augeas.py
 F:	support/testing/tests/package/test_python_flask_expects_json.py
 F:	support/testing/tests/package/test_python_git.py
+F:	support/testing/tests/package/test_python_unittest_xml_reporting.py
 
 N:	Nicolas Cavallari <nicolas.cavallari@green-communications.fr>
 F:	package/libgit2/
@@ -2691,6 +2694,7 @@ F:	package/python-flask-expects-json/
 F:	package/python-git/
 F:	package/python-mad/
 F:	package/python-serial/
+F:	package/python-unittest-xml-reporting/
 F:	package/qextserialport/
 F:	package/riscv64-elf-toolchain/
 F:	package/rpcbind/
@@ -2706,10 +2710,12 @@ F:	support/testing/tests/package/sample_python_augeas.py
 F:	support/testing/tests/package/sample_python_flask.py
 F:	support/testing/tests/package/sample_python_flask_expects_json.py
 F:	support/testing/tests/package/sample_python_git.py
+F:	support/testing/tests/package/sample_python_unittest_xml_reporting.py
 F:	support/testing/tests/package/test_python_augeas.py
 F:	support/testing/tests/package/test_python_flask.py
 F:	support/testing/tests/package/test_python_flask_expects_json.py
 F:	support/testing/tests/package/test_python_git.py
+F:	support/testing/tests/package/test_python_unittest_xml_reporting.py
 F:	toolchain/
 
 N:	Timo Ketola <timo.ketola@exertus.fi>
diff --git a/package/Config.in b/package/Config.in
index 785ba992e3..2c62a2316e 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -1251,6 +1251,7 @@ menu "External python modules"
 	source "package/python-u-msgpack/Config.in"
 	source "package/python-ubjson/Config.in"
 	source "package/python-ujson/Config.in"
+	source "package/python-unittest-xml-reporting/Config.in"
 	source "package/python-urllib3/Config.in"
 	source "package/python-urwid/Config.in"
 	source "package/python-uvloop/Config.in"
diff --git a/package/python-unittest-xml-reporting/Config.in b/package/python-unittest-xml-reporting/Config.in
new file mode 100644
index 0000000000..b1a6244dd3
--- /dev/null
+++ b/package/python-unittest-xml-reporting/Config.in
@@ -0,0 +1,9 @@
+config BR2_PACKAGE_PYTHON_UNITTEST_XML_REPORTING
+	bool "python-unittest-xml-reporting"
+	depends on BR2_PACKAGE_PYTHON3
+	select BR2_PACKAGE_PYTHON3_PYEXPAT
+	help
+	  unittest-based test runner with Ant/JUnit like XML
+	  reporting.
+
+	  http://github.com/xmlrunner/unittest-xml-reporting/
diff --git a/package/python-unittest-xml-reporting/python-unittest-xml-reporting.hash b/package/python-unittest-xml-reporting/python-unittest-xml-reporting.hash
new file mode 100644
index 0000000000..9db3a09d38
--- /dev/null
+++ b/package/python-unittest-xml-reporting/python-unittest-xml-reporting.hash
@@ -0,0 +1,5 @@
+# md5, sha256 from https://pypi.org/pypi/unittest-xml-reporting/json
+md5  474cd89f9609828ef6039a0f00afd9db  unittest-xml-reporting-3.0.4.tar.gz
+sha256  984cebba69e889401bfe3adb9088ca376b3a1f923f0590d005126c1bffd1a695  unittest-xml-reporting-3.0.4.tar.gz
+# Locally calculated
+sha256  0596648105bee470f9cafd62753b931efe52392096439d88e2564cf7d7cf0e68  LICENSE
diff --git a/package/python-unittest-xml-reporting/python-unittest-xml-reporting.mk b/package/python-unittest-xml-reporting/python-unittest-xml-reporting.mk
new file mode 100644
index 0000000000..5744c50a7c
--- /dev/null
+++ b/package/python-unittest-xml-reporting/python-unittest-xml-reporting.mk
@@ -0,0 +1,23 @@
+################################################################################
+#
+# python-unittest-xml-reporting
+#
+################################################################################
+
+PYTHON_UNITTEST_XML_REPORTING_VERSION = 3.0.4
+PYTHON_UNITTEST_XML_REPORTING_SOURCE = unittest-xml-reporting-$(PYTHON_UNITTEST_XML_REPORTING_VERSION).tar.gz
+PYTHON_UNITTEST_XML_REPORTING_SITE = https://files.pythonhosted.org/packages/bc/09/677086169c8e302b614de7d4a97c45c4446a382f31cc010fb31177258508
+# License file missing in Pypi tarball, download separately. Issue
+# reported at
+# https://github.com/xmlrunner/unittest-xml-reporting/issues/259
+PYTHON_UNITTEST_XML_REPORTING_EXTRA_DOWNLOADS = https://raw.githubusercontent.com/xmlrunner/unittest-xml-reporting/$(PYTHON_UNITTEST_XML_REPORTING_VERSION)/LICENSE
+PYTHON_UNITTEST_XML_REPORTING_SETUP_TYPE = setuptools
+PYTHON_UNITTEST_XML_REPORTING_LICENSE = BSD-2-Clause
+PYTHON_UNITTEST_XML_REPORTING_LICENSE_FILES = LICENSE
+
+define PYTHON_UNITTEST_XML_REPORTING_ADD_LICENSE_FILE
+	$(INSTALL) -D -m 0644 $(PYTHON_UNITTEST_XML_REPORTING_DL_DIR)/LICENSE $(@D)/LICENSE
+endef
+PYTHON_UNITTEST_XML_REPORTING_POST_EXTRACT_HOOKS += PYTHON_UNITTEST_XML_REPORTING_ADD_LICENSE_FILE
+
+$(eval $(python-package))
diff --git a/support/testing/tests/package/sample_python_unittest_xml_reporting.py b/support/testing/tests/package/sample_python_unittest_xml_reporting.py
new file mode 100644
index 0000000000..8fa92aaccc
--- /dev/null
+++ b/support/testing/tests/package/sample_python_unittest_xml_reporting.py
@@ -0,0 +1,9 @@
+import unittest
+import xmlrunner
+
+class Test1(unittest.TestCase):
+    def test_something(self):
+        self.assertTrue(True)
+
+if __name__ == '__main__':
+    unittest.main(testRunner=xmlrunner.XMLTestRunner(output='test-reports'))
diff --git a/support/testing/tests/package/test_python_unittest_xml_reporting.py b/support/testing/tests/package/test_python_unittest_xml_reporting.py
new file mode 100644
index 0000000000..f08c88e3da
--- /dev/null
+++ b/support/testing/tests/package/test_python_unittest_xml_reporting.py
@@ -0,0 +1,23 @@
+from tests.package.test_python import TestPythonPackageBase
+import os
+import time
+
+
+class TestPythonPy3UnitTestXmlReporting(TestPythonPackageBase):
+    __test__ = True
+    config = TestPythonPackageBase.config + \
+        """
+        BR2_PACKAGE_PYTHON3=y
+        BR2_PACKAGE_PYTHON_UNITTEST_XML_REPORTING=y
+        """
+    sample_scripts = ["tests/package/sample_python_unittest_xml_reporting.py"]
+    timeout = 60
+
+    def test_run(self):
+        self.login()
+        self.check_sample_scripts_exist()
+        cmd = "%s %s" % (self.interpreter, os.path.basename(self.sample_scripts[0]))
+        self.assertRunOk(cmd)
+        # check if some tests results in XML were generated
+        cmd = "ls -1 test-reports/TEST-Test1-*.xml"
+        self.assertRunOk(cmd)
-- 
2.31.1

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

             reply	other threads:[~2021-11-02 22:21 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-02 22:21 Thomas Petazzoni [this message]
2021-11-05 16:06 ` [Buildroot] [PATCH] package/python-unitest-xml-reporting: new package Peter Korsgaard

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=20211102222127.719703-1-thomas.petazzoni@bootlin.com \
    --to=thomas.petazzoni@bootlin.com \
    --cc=Jeremy.Connat@orolia.com \
    --cc=asafka7@gmail.com \
    --cc=buildroot@buildroot.org \
    --cc=herve.codina@bootlin.com \
    --cc=ricardo.martincoski@gmail.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.