bug-wget
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 2/3] Add test for multiple regex patterns


From: Nekun
Subject: [PATCH 2/3] Add test for multiple regex patterns
Date: Sat, 1 May 2021 06:39:49 +0000

* testenv/Test-recursive-regex.py: Add --{accept,reject}-regex test
* testenv/Makefile.am: Add above to test suite
---
 testenv/Makefile.am             |  1 +
 testenv/Test-recursive-regex.py | 65 +++++++++++++++++++++++++++++++++
 2 files changed, 66 insertions(+)
 create mode 100755 testenv/Test-recursive-regex.py

diff --git a/testenv/Makefile.am b/testenv/Makefile.am
index 6e3362f6..f7516f70 100644
--- a/testenv/Makefile.am
+++ b/testenv/Makefile.am
@@ -65,6 +65,7 @@ DEFAULT_TESTS = \
   Test-recursive-basic.py                         \
   Test-recursive-include.py                       \
   Test-recursive-redirect.py                      \
+  Test-recursive-regex.py                         \
   Test-redirect.py                                \
   Test-redirect-crash.py                          \
   Test--rejected-log.py                           \
diff --git a/testenv/Test-recursive-regex.py b/testenv/Test-recursive-regex.py
new file mode 100755
index 00000000..20be7cfa
--- /dev/null
+++ b/testenv/Test-recursive-regex.py
@@ -0,0 +1,65 @@
+#!/usr/bin/env python3
+from sys import exit
+from test.http_test import HTTPTest
+from test.base_test import HTTP, HTTPS
+from misc.wget_file import WgetFile
+
+"""
+    Test of --{accept,reject}-regex options for recursive download
+"""
+############# File Definitions ###############################################
+File1 = """<html><body>
+<a href=\"/a/File2.html\">text</a>
+<a href=\"/b/File3.html\">text</a>
+<a href=\"/b/File4.html\">text</a>
+<a href=\"/c/File5.html\">text</a>
+</body></html>"""
+File2 = "With lemon or cream?"
+File3 = "Surely you're joking Mr. Feynman"
+File4 = "Important mail"
+File5 = "spam"
+
+File1_File = WgetFile ("a/File1.html", File1)
+File2_File = WgetFile ("a/File2.html", File2)
+File3_File = WgetFile ("b/File3.html", File3)
+File4_File = WgetFile ("b/File4.html", File4)
+File5_File = WgetFile ("c/File5.html", File5)
+
+WGET_OPTIONS = "--recursive --no-host-directories --accept-regex=a/.+ 
--accept-regex=b/.+ --reject-regex=b/[A-Za-z]+4.html"
+WGET_URLS = [["a/File1.html"]]
+
+Servers = [HTTP]
+
+Files = [[File1_File, File2_File, File3_File, File4_File, File5_File]]
+Existing_Files = []
+
+ExpectedReturnCode = 0
+ExpectedDownloadedFiles = [File1_File, File2_File, File3_File]
+Request_List = [["GET /a/File1.html",
+                 "GET /robots.txt",
+                 "GET /a/File2.html",
+                 "GET /b/File3.html"]]
+
+################ Pre and Post Test Hooks #####################################
+pre_test = {
+    "ServerFiles"       : Files,
+    "LocalFiles"        : Existing_Files
+}
+test_options = {
+    "WgetCommands"      : WGET_OPTIONS,
+    "Urls"              : WGET_URLS
+}
+post_test = {
+    "ExpectedFiles"     : ExpectedDownloadedFiles,
+    "ExpectedRetcode"   : ExpectedReturnCode,
+    "FilesCrawled"      : Request_List
+}
+
+err = HTTPTest (
+                pre_hook=pre_test,
+                test_params=test_options,
+                post_hook=post_test,
+                protocols=Servers
+).begin ()
+
+exit (err)
-- 
2.26.3





reply via email to

[Prev in Thread] Current Thread [Next in Thread]