فهرست منبع

support/testing: add new test for python-pymupdf

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@mind.be>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
(cherry picked from commit 115e9493b8e3b50cd56b93c47d669319d02698a7)
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Raphaël Mélotte 1 سال پیش
والد
کامیت
65b37af817
3فایلهای تغییر یافته به همراه42 افزوده شده و 0 حذف شده
  1. 2 0
      DEVELOPERS
  2. 17 0
      support/testing/tests/package/sample_python_pymupdf.py
  3. 23 0
      support/testing/tests/package/test_python_pymupdf.py

+ 2 - 0
DEVELOPERS

@@ -2621,9 +2621,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
 

+ 17 - 0
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")

+ 23 - 0
support/testing/tests/package/test_python_pymupdf.py

@@ -0,0 +1,23 @@
+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_TARGET_ROOTFS_EXT2=y
+        BR2_TARGET_ROOTFS_EXT2_SIZE="120M"
+        """
+    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()