You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ponymail.apache.org by se...@apache.org on 2020/08/28 14:20:03 UTC

[incubator-ponymail-unit-tests] branch master updated: Add support for MOCK_GMTIME

This is an automated email from the ASF dual-hosted git repository.

sebb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-ponymail-unit-tests.git


The following commit(s) were added to refs/heads/master by this push:
     new aecffce  Add support for MOCK_GMTIME
aecffce is described below

commit aecffce97714289fcbbd42fddc22cf8c88fd9e00
Author: Sebb <se...@apache.org>
AuthorDate: Fri Aug 28 15:19:43 2020 +0100

    Add support for MOCK_GMTIME
    
    Also document PYTHONHASHSEED=0
---
 README.md                | 6 ++++++
 tests/test-generators.py | 7 +++++++
 2 files changed, 13 insertions(+)

diff --git a/README.md b/README.md
index f5d1569..97c738a 100644
--- a/README.md
+++ b/README.md
@@ -18,3 +18,9 @@ CLI args for `runall.py`:
 - `--fof`: Fail if one test fails, exiting the suite
 - `--load [filename]`: Only load a specific yaml test specification, don't run all tests
 
+Environment variables:
+- `PYTHONHASHSEED=0`: this ensures that Sets etc return their entries in a deterministic order
+- `MOCK_GMTIME=0`: override time.gmtime() to use the value '0' if none is provided
+  
+The above variables are useful for some tests to ensure reproducability.
+However using them may mask bugs in the code, so they should only be used where necessary.
\ No newline at end of file
diff --git a/tests/test-generators.py b/tests/test-generators.py
index 0037f4c..bc1e4d3 100755
--- a/tests/test-generators.py
+++ b/tests/test-generators.py
@@ -148,6 +148,13 @@ def main():
         tools_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), '..', '..', "tools")
     sys.path.append(tools_dir)
 
+    if os.environ.get('MOCK_GMTIME'):
+        import time
+        save_gmtime = time.gmtime
+        def _time_gmtime(secs=None):
+            return save_gmtime(secs or 0)
+        time.gmtime = _time_gmtime
+    
     if args.generate:
         if not args.mboxfile:
             sys.stderr.write("Generating a test spec requires an mbox filepath passed with --mbox!\n")