mirror of
https://github.com/mirror/wget.git
synced 2025-01-06 02:10:28 +08:00
926e42d467
* testenv/test/base_test.py (__init__): Use test file name for name, remove 'name' parameter * testenv/test/http_test.py (__init__): Remove 'name' parameter * testenv/*.py: Remove TEST_NAME Using a fixed string (TEST_NAME) to build the working directory for testing caused random failures (or successes) when tests share the same TEST_NAME value. Not easy to find without digging into the python test suite code. We now use the test file name, which is unique within the test environment.
139 lines
4.0 KiB
Python
139 lines
4.0 KiB
Python
#!/usr/bin/env python3
|
|
from sys import exit
|
|
from test.http_test import HTTPTest
|
|
from misc.wget_file import WgetFile
|
|
|
|
"""
|
|
Simple test for HTTP Conditional-GET Requests using the -N command
|
|
"""
|
|
############# File Definitions ###############################################
|
|
# Keep same length !
|
|
Cont1 = """THIS IS 1 FILE"""
|
|
Cont2 = """THIS IS 2 FILE"""
|
|
Cont3 = """THIS IS 3 FILE"""
|
|
Cont4 = """THIS IS 4 FILE"""
|
|
|
|
# Local Wget files
|
|
|
|
# These have same timestamp as remote files
|
|
UpToDate_Local_File1 = WgetFile ("UpToDateFile1", Cont1, timestamp="1995-01-01 00:00:00")
|
|
UpToDate_Local_File2 = WgetFile ("UpToDateFile2", Cont1, timestamp="1995-01-01 00:00:00")
|
|
UpToDate_Local_File3 = WgetFile ("UpToDateFile3", Cont1, timestamp="1995-01-01 00:00:00")
|
|
|
|
# This is newer than remote (expected same behaviour as for above files)
|
|
Newer_Local_File = WgetFile ("NewerFile", Cont1, timestamp="1995-02-02 02:02:02")
|
|
|
|
# This is older than remote - should be clobbered
|
|
Outdated_Local_File = WgetFile ("UpdatedFile", Cont2, timestamp="1990-01-01 00:00:00")
|
|
|
|
UpToDate_Rules1 = {
|
|
"SendHeader" : {
|
|
# RFC1123 format
|
|
"Last-Modified" : "Sun, 01 Jan 1995 00:00:00 GMT",
|
|
},
|
|
"Response": 304,
|
|
"ExpectHeader" : {
|
|
"If-Modified-Since" : "Sun, 01 Jan 1995 00:00:00 GMT"
|
|
},
|
|
}
|
|
|
|
UpToDate_Rules2 = {
|
|
"SendHeader" : {
|
|
# RFC850 format
|
|
"Last-Modified" : "Sunday, 01-Jan-95 00:00:00 GMT",
|
|
},
|
|
"Response": 304,
|
|
"ExpectHeader" : {
|
|
"If-Modified-Since" : "Sun, 01 Jan 1995 00:00:00 GMT"
|
|
},
|
|
}
|
|
|
|
UpToDate_Rules3 = {
|
|
"SendHeader" : {
|
|
# Asctime format
|
|
"Last-Modified" : "Sun Jan 01 00:00:00 1995",
|
|
},
|
|
"Response": 304,
|
|
"ExpectHeader" : {
|
|
"If-Modified-Since" : "Sun, 01 Jan 1995 00:00:00 GMT"
|
|
},
|
|
}
|
|
|
|
Newer_Rules = {
|
|
"SendHeader" : {
|
|
# Asctime format
|
|
"Last-Modified" : "Sun Jan 01 00:00:00 1995",
|
|
},
|
|
"Response": 304,
|
|
"ExpectHeader" : {
|
|
"If-Modified-Since" : "Thu, 02 Feb 1995 02:02:02 GMT"
|
|
},
|
|
}
|
|
|
|
Outdated_Rules = {
|
|
"SendHeader" : {
|
|
# RFC850 format
|
|
"Last-Modified" : "Thursday, 01-Jan-15 00:00:00 GMT",
|
|
},
|
|
"ExpectHeader" : {
|
|
"If-Modified-Since" : "Mon, 01 Jan 1990 00:00:00 GMT",
|
|
},
|
|
}
|
|
|
|
UpToDate_Server_File1 = WgetFile ("UpToDateFile1", Cont3, rules=UpToDate_Rules1)
|
|
UpToDate_Server_File2 = WgetFile ("UpToDateFile2", Cont3, rules=UpToDate_Rules2)
|
|
UpToDate_Server_File3 = WgetFile ("UpToDateFile3", Cont3, rules=UpToDate_Rules3)
|
|
Newer_Server_File = WgetFile ("NewerFile", Cont3, rules=Newer_Rules)
|
|
Updated_Server_File = WgetFile ("UpdatedFile", Cont4, rules=Outdated_Rules)
|
|
|
|
WGET_OPTIONS = "-N"
|
|
WGET_URLS = [["UpToDateFile1", "UpToDateFile2", "UpToDateFile3", "NewerFile",
|
|
"UpdatedFile", ]]
|
|
|
|
Files = [[UpToDate_Server_File1, UpToDate_Server_File2, UpToDate_Server_File3,
|
|
Newer_Server_File, Updated_Server_File, ]]
|
|
|
|
Existing_Files = [UpToDate_Local_File1, UpToDate_Local_File2,
|
|
UpToDate_Local_File3, Newer_Local_File, Outdated_Local_File]
|
|
|
|
ExpectedReturnCode = 0
|
|
|
|
# The uptodate file should not be downloaded
|
|
ExpectedDownloadedFiles = [UpToDate_Local_File1, UpToDate_Local_File2,
|
|
UpToDate_Local_File3, Newer_Local_File,
|
|
Updated_Server_File]
|
|
|
|
# Kind of hack to ensure proper request types
|
|
Request_List = [
|
|
[
|
|
"GET /UpToDateFile1",
|
|
"GET /UpToDateFile2",
|
|
"GET /UpToDateFile3",
|
|
"GET /NewerFile",
|
|
"GET /UpdatedFile",
|
|
]
|
|
]
|
|
|
|
################ 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
|
|
).begin ()
|
|
|
|
exit (err)
|