[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