[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Bug-wget] [GSoC PATCH 09/11] update README
From: |
Zihang Chen |
Subject: |
[Bug-wget] [GSoC PATCH 09/11] update README |
Date: |
Fri, 14 Mar 2014 21:18:25 +0800 |
diff --git a/testenv/ChangeLog b/testenv/ChangeLog
index 8d92fb6..dc6dbb0 100644
--- a/testenv/ChangeLog
+++ b/testenv/ChangeLog
@@ -1,3 +1,5 @@
+2014-03-14 Zihang Chen <address@hidden>
+ * README: Amend README according to previous commits.
2014-03-13 Zihang Chen <address@hidden>
* base_test.py:
(CommonMethods): Rename to BaseTest.
diff --git a/testenv/README b/testenv/README
index 6b15d70..56df646 100644
--- a/testenv/README
+++ b/testenv/README
@@ -10,25 +10,30 @@ Run the './configure' command to generate the Makefile and
then run 'make check'
to execute the Test Suite. Use the '-j n' option with 'make check' to execute
n tests simultaneously.
-File List:
+Structure:
================================================================================
- * HTTPServer.py: This file contains a custom, programmatically configurable
- HTTP Server for testing Wget. It runs an instance of Python's http.server
- module.
+ * server: This package contains custom programmatically configurable
servers
+ (both HTTP and FTP) for testing Wget. The HTTP server runs an instance of
+ Python's http.server module. The FTP server is to be implemented.
- * WgetTest.py: This file contains various functions and global variables
for
- each instance of the server that is initiated. It includes functions to
- start and stop the server, to initialze the test environment and to cleanup
- after a test.
+ * test: This package contains the test case classes for HTTP and FTP. The
+ test case classes includes methods for initializing and cleaning up of the
+ test environment.
+
+ * exc: This package contains custom exception classes used in this test
+ suite.
+
+ * conf: This package contains the configuration classes for servers to be
+ configured with.
+
+ * misc: This package contains several functions, classes and constants used
+ in this test suite.
* Test-Proto.py: This is a prototype Test Case file. The file defines all
the acceptable elements and their uses. Typically, one must copy this file
and edit it for writing Test Cases.
- * ColourTerm.py: A custom library for printing coloured output to the
- terminal. Currently it only supports 4 colours in a *nix environment.
-
Working:
================================================================================
@@ -93,8 +98,7 @@ effort to get accustomed to.
All Test Files MUST begin with the following Three Lines:
#!/usr/bin/python3
from sys import exit
-from WgetTest import {HTTPTest|FTPTest}
-from misc.wget_file import WgetFile
+from WgetTest import {HTTPTest|FTPTest}, WgetFile
It is recommended that a small description of the Test Case is provided next.
This would be very helpful to future contributors.
@@ -102,7 +106,7 @@ Next, is the const variable, TEST_NAME that defines the
name of the Test.
Each File in the Test must be represented as a WgetFile object. The WgetFile
Class has the following prototype:
-WgetFile (String name, String contents, String timestamp, dict rules)
+WgetFile (str name, str contents, str timestamp, dict rules)
None except name is a mandatory paramter, one may pass only those parameters
that are required by the File object.
@@ -139,10 +143,11 @@ Both, the HTTPTest and FTPTest modules have the same
prototype:
pre_hook,
test_options,
post_hook,
- servers
+ protocols
}
-name expects the string name, and is usually passed the TEST_NAME variable,
-the three hooks, expect python dictionary objects and servers is an integer.
+name should be a string, and is usually passed to the TEST_NAME variable,
+the three hooks should be Python dict objects and protocols should be a list of
+protocols, like [HTTP, HTTPS].
Valid File Rules:
================================================================================
@@ -192,6 +197,7 @@ executed. The currently supported options are:
* Urls : A list of the filenames that Wget must attempt to
download. The complete URL will be created and passed to Wget
automatically.
+ (alias URLs)
* WgetCommands : A string consisting of the various commandline switches
sent to Wget upon invokation. Any data placed between {{ }} in this string
will be replaced with the contents of self.<data> before being passed to
@@ -208,7 +214,7 @@ hooks are usually used to run checks on the data, files
downloaded, return code,
etc. The following hooks are currently supported:
* ExpectedRetcode : This is an integer value of the ReturnCode with which
- Wget is expected to exit.
+ Wget is expected to exit. (alias: ExpectedRetCode)
* ExpectedFiles : This is a list of WgetFile objects of the files that
must exist locally on disk in the Test directory.
* FilesCrawled : This requires a list of the Requests that the server is
@@ -224,11 +230,24 @@ recommended method for writing new Test Case files is to
copy Test-Proto.py and
modify it to ones needs.
In case you require any functionality that is not currently defined in List of
-Rules defined above, you should add the required code in WgetTest.py.
-In most cases, one requires a new Rule to be added for the Server to follow.
-In such a case, create a new Class in WgetTest.py with the same name as the
Rule
-and define an __init__ () function to handle the data. A method must also be
-defined in HTTPTest / FTPTest modules to handle the said Rule.
+Rules defined above, you should implement a new class in the conf package. The
+file name doesn't matters (though it's better to give it an appropriate name).
+The new rule class should be like this:
+
+=============================================================
+from conf import register
+
+
address@hidden()
+class MyNewRule:
+
+ def __init__(self, rule_arg):
+ self.rule_arg = rule_arg
+ # your rule initialization code goes here
+=============================================================
+
+Additionally, A method with the exact name of the newly created rule class must
+ also be defined in HTTPTest / FTPTest modules to handle the said Rule.
Once a new Test File is created, it must be added to the TESTS variable in
Makefile.am. This way the Test will be executed on running a 'make check'.
--
1.8.3.2
- [Bug-wget] [GSoC PATCH 00/11] Refactor Test Suite, Zihang Chen, 2014/03/14
- [Bug-wget] [GSoC PATCH 01/11] create package misc, move ColourTerm.py to misc, Zihang Chen, 2014/03/14
- [Bug-wget] [GSoC PATCH 02/11] from WgetTest.py move WgetFile to misc, Zihang Chen, 2014/03/14
- [Bug-wget] [GSoC PATCH 03/11] fix a typo in Test-Proto.py, Zihang Chen, 2014/03/14
- [Bug-wget] [GSoC PATCH 04/11] create package exc and move TestFailed to exc, Zihang Chen, 2014/03/14
- [Bug-wget] [GSoC PATCH 05/11] create package conf where rules and hooks are put, Zihang Chen, 2014/03/14
- [Bug-wget] [GSoC PATCH 06/11] move server classes to package server.protocol, Zihang Chen, 2014/03/14
- [Bug-wget] [GSoC PATCH 07/11] create package test for test case classes, Zihang Chen, 2014/03/14
- [Bug-wget] [GSoC PATCH 08/11] refactor a lot, see ChangeLog for detail, Zihang Chen, 2014/03/14
- [Bug-wget] [GSoC PATCH 09/11] update README,
Zihang Chen <=
- [Bug-wget] [GSoC PATCH 10/11] ensure line feed at EOF and one blank line between methods, Zihang Chen, 2014/03/14
- [Bug-wget] [GSoC PATCH 11/11] in conf, rename register to rule and hook, Zihang Chen, 2014/03/14