[Buildroot] [PATCH v2 2/5] support/testing: add new test for python-pymupdf
Raphaël Mélotte
raphael.melotte at mind.be
Fri Jun 7 16:32:03 UTC 2024
To give us a chance to catch runtime issues (such as missing
dependencies) more easily, add a test that writes a sample PDF file,
read it back and verify the text that was read.
Like similar packages that lead to a big
rootfs (e.g. python-botocore), this test requires a separate ext2
rootfs to avoid filling the default amount of RAM available
entirely (which would cause missing files from the root filesystem and
in turn, test failures).
Signed-off-by: Raphaël Mélotte <raphael.melotte at mind.be>
---
DEVELOPERS | 2 ++
.../tests/package/sample_python_pymupdf.py | 17 ++++++++++++
.../tests/package/test_python_pymupdf.py | 26 +++++++++++++++++++
3 files changed, 45 insertions(+)
create mode 100644 support/testing/tests/package/sample_python_pymupdf.py
create mode 100644 support/testing/tests/package/test_python_pymupdf.py
diff --git a/DEVELOPERS b/DEVELOPERS
index 03aa7bfa74..e4c3920ce2 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -2667,9 +2667,11 @@ F: package/python-pymupdf/
F: package/python-rsa/
F: package/python-s3transfer/
F: support/testing/tests/package/sample_python_jmespath.py
+F: support/testing/tests/package/sample_python_pymupdf.py
F: support/testing/tests/package/sample_python_rsa.py
F: support/testing/tests/package/sample_python_s3transfer.py
F: support/testing/tests/package/test_python_jmespath.py
+F: support/testing/tests/package/test_python_pymupdf.py
F: support/testing/tests/package/test_python_rsa.py
F: support/testing/tests/package/test_python_s3transfer.py
diff --git a/support/testing/tests/package/sample_python_pymupdf.py b/support/testing/tests/package/sample_python_pymupdf.py
new file mode 100644
index 0000000000..574bd27965
--- /dev/null
+++ b/support/testing/tests/package/sample_python_pymupdf.py
@@ -0,0 +1,17 @@
+import fitz
+
+# Write a test PDF file
+outfile = "python-pymupdf.pdf"
+sample_text = "This is a test page for python-pymupdf."
+doc = fitz.open()
+page = doc.new_page()
+p = fitz.Point(50, 72)
+page.insert_text(p, sample_text)
+doc.save(outfile)
+
+# Read back the file
+with fitz.open(outfile) as d: # open document
+ read_text = chr(12).join([page.get_text() for page in d])
+
+print(read_text)
+assert(read_text == sample_text + "\n")
diff --git a/support/testing/tests/package/test_python_pymupdf.py b/support/testing/tests/package/test_python_pymupdf.py
new file mode 100644
index 0000000000..5e9d5a6912
--- /dev/null
+++ b/support/testing/tests/package/test_python_pymupdf.py
@@ -0,0 +1,26 @@
+import os
+from tests.package.test_python import TestPythonPackageBase
+
+
+class TestPythonPy3PyMuPDF(TestPythonPackageBase):
+ __test__ = True
+ config = TestPythonPackageBase.config + \
+ """
+ BR2_PACKAGE_PYTHON3=y
+ BR2_PACKAGE_PYTHON_PYMUPDF=y
+ BR2_PACKAGE_XORG7=y
+ BR2_USE_WCHAR=y
+ BR2_INSTALL_LIBSTDCPP=y
+ BR2_TARGET_ROOTFS_EXT2=y
+ BR2_TARGET_ROOTFS_EXT2_SIZE="250M"
+ """
+ sample_scripts = ["tests/package/sample_python_pymupdf.py"]
+ timeout = 30
+
+ def login(self):
+ ext2_file = os.path.join(self.builddir, "images", "rootfs.ext2")
+ self.emulator.boot(arch="armv5",
+ kernel="builtin",
+ options=["-drive", "file=%s,if=scsi,format=raw" % ext2_file],
+ kernel_cmdline=["rootwait", "root=/dev/sda"])
+ self.emulator.login()
--
2.37.3
More information about the buildroot
mailing list