[poppler] regtest/commands

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon Mar 21 14:51:19 UTC 2022


 regtest/commands/download-files.py |   69 +++++++++++++++++++++++++++++++++++++
 1 file changed, 69 insertions(+)

New commits:
commit 69f561ab964dfed94d347164d644365173afecba
Author: Albert Astals Cid <aacid at kde.org>
Date:   Wed Mar 16 00:03:12 2022 +0100

    regtest: Add a command to download files

diff --git a/regtest/commands/download-files.py b/regtest/commands/download-files.py
new file mode 100644
index 00000000..416c4291
--- /dev/null
+++ b/regtest/commands/download-files.py
@@ -0,0 +1,69 @@
+# download-files.py
+#
+# Copyright (C) 2022 Albert Astals Cid <aacid at kde.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+from __future__ import absolute_import, division, print_function
+
+from commands import Command, register_command
+from Timer import Timer
+from Printer import get_printer
+import os
+import tempfile
+import urllib.request
+
+class DownloadFiles(Command):
+
+    name = 'download-files'
+    usage_args = '[ options ... ] file-with-files '
+    description = 'Downloads files listed in the given file. For each file the first word is the output filename and the second is the url to download from'
+
+    def __init__(self):
+        Command.__init__(self)
+        parser = self._get_args_parser()
+        parser.add_argument('--files-dir',
+                            action = 'store', dest = 'files_dir', default = os.path.join(tempfile.gettempdir(), 'files'),
+                            help = 'Directory where the files will be downloaded')
+        parser.add_argument('-f', '--force',
+                            action = 'store_true', dest = 'force', default = False,
+                            help = 'Create references again for tests that already have references')
+        parser.add_argument('file-with-files')
+
+    def run(self, options):
+        t = Timer()
+        filepath = options['file-with-files']
+
+        files_dir = options['files_dir']
+        os.makedirs(files_dir, exist_ok=True)
+
+        f = open(filepath, "r")
+        for line in f:
+            splitted_line = line.split()
+            if not len(splitted_line) == 2:
+                get_printer().printout_ln("Malformed line %s" % line)
+                return 1
+
+            target_path = os.path.join(files_dir, splitted_line[0]);
+            if os.path.exists(target_path) and not options['force']:
+                get_printer().printout_ln("Skipping %s already exists" % splitted_line[0])
+            else:
+                get_printer().printout_ln("Downloading %s to %s" % (splitted_line[1] , target_path))
+                urllib.request.urlretrieve(splitted_line[1], target_path)
+
+        get_printer().printout_ln("Files downloaded in %s" % (t.elapsed_str()))
+
+        return 0
+
+register_command('download-files', DownloadFiles)


More information about the poppler mailing list