bug-wget
[Top][All Lists]
Advanced

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

Re: [Bug-wget] Patch: Ports test for restrict-filename to python


From: Darshit Shah
Subject: Re: [Bug-wget] Patch: Ports test for restrict-filename to python
Date: Mon, 16 Mar 2015 00:17:09 +0530
User-agent: Mutt/1.5.23 (2014-03-12)

Hi Elita,

I'm putting my comments inline

Subject: [PATCH]  Ports test from old test suite to Python *
Test-restrict-lowercase.py: Tests --restrict-filename=lowercase feature *
Test-restrict-ascii.py: Tests --restrict-filename=ascii feature *
Test-restrict-uppercase.py: Tests --restrict-filename=uppercase feature
*Test-nonexisting-quiet.py: Tests Wget's quiet feature * Test-start-pos.py:
Tests Wget's --start-pos feature * Test-start-pos--continue.py Tests Wget's
--start-pos with -c feature * Makefile.am: Adds newly added testfiles to test
suite

That's one *long* commit message! Could you please take a look at the other commit messages we've written and write yours accordingly?

--- /dev/null
+++ b/testenv/Test-nonexisting-quiet.py
@@ -0,0 +1,48 @@
+#!/usr/bin/env python3
+from sys import exit
+from test.http_test import HTTPTest
+from misc.wget_file import WgetFile
+
+"""
+    Test for Wget nonexisting quiet. --quiet turns off Wget's output.
+"""
+TEST_NAME = "Test nonexisting quiet"
+################################ File Definitions 
#############################################################################
+dummyfile = "This is a dummy file"
+
+A_File = WgetFile("dummy.html", dummyfile)
+
+WGET_OPTIONS = "--quiet"
+WGET_URLS = [["nonexistent"]]
+
+Files = [[A_File]]
+
+ExpectedReturnCode = 8
+ExpectedDownloadedFiles = []
+
+################### Pre and Post Test Hooks ###############################
+pre_test = {
+    "ServerFiles" : Files,
+}
+test_options = {
+    "WgetCommands" :WGET_OPTIONS,
+    "Urls"         :WGET_URLS
+}
+post_test = {
+    "ExpectedFiles"    : ExpectedDownloadedFiles,
+    "ExpectedRetcode"  : ExpectedReturnCode
+}
+
+err = HTTPTest (
+               name=TEST_NAME,
+               pre_hook=pre_test,
+               test_params=test_options,
+               post_hook=post_test
+).begin ()
+
+exit(err)
+
+
+
+
+

I'm not sure what is the point of this test. A test for non-existent files I can understand, but the we;re not really testing the -q option here. How would you test for the quiet option?


Also, trailing newline characters at the end of the file.
diff --git a/testenv/Test-restrict-ascii.py b/testenv/Test-restrict-ascii.py
new file mode 100644
index 0000000..c974f68
--- /dev/null
+++ b/testenv/Test-restrict-ascii.py
@@ -0,0 +1,67 @@
+#!/usr/bin/env python3
+from sys import exit
+from test.http_test import HTTPTest
+from misc.wget_file import WgetFile
+
+"""
+    This program tests that --restrict-file-names=ascii can be used to
+    ensure that all high-valued bytes are escaped. The sample filename was
+    chosen because in former versions of Wget, one could either choose not
+    to escape any portion of the UTF-8 filename via
+    --restrict-file-names=nocontrol (which would only be helpful if one
+    was _on_ a UTF-8 system), or else Wget would escape _portions_ of
+    characters, leaving irrelevant "latin1"-looking characters combined
+    with percent-encoded "control" characters, instead of encoding all the
+    bytes of an entire non-ASCII UTF-8 character.
+"""
+
+TEST_NAME = "Restrict filename:ascii"
+
+# "gnosis" in UTF-8 greek
+gnosis = "%CE%B3%CE%BD%CF%89%CF%83%CE%B9%CF%82" +#################################### File Definitions #########################
+
+mainpage = """
+<html>
+<head>
+  <title>Some Page Title</title>
+</head>
+<body>
+  <p>
+    Some text...
+  </p>
+</body>
+</html>
+"""
+A_File = WgetFile(gnosis + ".html", mainpage)
+
+WGET_OPTIONS = "--restrict-file-names=ascii"
+WGET_URLS = [[gnosis + ".html"]]
+
If we're _always_ using `gnosis + ".html"`, why not add that string to the variable directly?
+Files = [[A_File]]
+
+ExpectedReturnCode = 0
+ExpectedDownloadedFiles = [A_File]
+
+######################### Pre and Post Test hooks ############################
+pre_test = {
+    "ServerFiles" :Files,
+}
Just nitpicking here, but the alignment is off. It's off in other places too, but I'll mention it only here. I realize that this test suite doesn't follow PEP8 at all, and I would like to fix that at some point. But till then it's best to stick to existing formatting style.

+test_options = {
+    "WgetCommands"    :WGET_OPTIONS,
+    "Urls"            :WGET_URLS
+}
+post_test = {
+    "ExpectedFiles"   : ExpectedDownloadedFiles,
+    "ExpectedRetcode" : ExpectedReturnCode
+}
+
+err = HTTPTest (
+               name=TEST_NAME,
+               pre_hook=pre_test,
+               test_params=test_options,
+               post_hook=post_test
+).begin ()
+
+exit(err)
+
<- snip ->

diff --git a/testenv/Test-start-pos--continue.py b/testenv/Test-start-pos--continue.py
new file mode 100644
index 0000000..dfc1a38
--- /dev/null
+++ b/testenv/Test-start-pos--continue.py
@@ -0,0 +1,55 @@
+#!/usr/bin/env python3
+from sys import exit
+from test.http_test import HTTPTest
+from misc.wget_file import WgetFile
+
+"""
+    Tests if Wget correctly starts downloading bytes from the given start 
position (--start-pos=OFFSET) in the file.
+"""
+TEST_NAME = "Test start-pos"
+################################ File Definitions 
#############################################################################
+File1 = "12345678910"
+File2 = "This is an existing file"
+File3 = "2345678910"
+
+File1_rules = {
+        "SendHeader" :     {
+        "Response"      : 206
+ } +}
What is this header needed for?
+
+A_File = WgetFile("somefile.txt", File1, rules=File1_rules)
+B_File = WgetFile("somefile.txt", File2)
+C_File = WgetFile("somefile.txt.1", File3)
+
+WGET_OPTIONS = "--start-pos=1 --continue --debug"
--debug options are always added to Wget. You don't need to specify it again.

Could you also add a comment at the top of the file explaining how this test also tests that --continue and --start-pos don't work together?

+"""
+    Tests if Wget correctly starts downloading bytes from the given start 
position (--start-pos=OFFSET) in the file.
+"""
+TEST_NAME = "Test start-pos"
+################################ File Definitions 
#############################################################################
+File1 = "12345678910"
+File2 = "2345678910"
+
+File1_rules = {
+        "SendHeader" :     {
+        "Response"      : 206
+ } +}
+
+A_File = WgetFile("File1", File1, rules=File1_rules)
+B_File = WgetFile("File1", File2)
+
+WGET_OPTIONS = "--start-pos=1"
+WGET_URLS = [["File1"]]
+
+Files = [[A_File]]
+
+ExpectedReturnCode = 0
+ExpectedDownloadedFiles = [B_File]
+
I think this test is only a subset of the previous one and hence a bit redundant. What do you think?


Sorry if I come across as being a little too mean, but I'm a bit picky when it comes to well formatted commits. Zihang can tell more about that. :)


--
Thanking You,
Darshit Shah

Attachment: pgp5S91q6BGwM.pgp
Description: PGP signature


reply via email to

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