changeset 28406:0767c2f624c6

tests: divorce blackbox test from test-dispatch.py I used test-dispatch.py to demonstrate what would happen if a log file changed from being readonly to writable, by having it replace a directory (proxy for readonly/not-writable) with a log file in between transactions of a running python process (proxy for Mercurial). This commit makes it easier for people to follow what the test is doing, by creating a real file that people can read.
author timeless <timeless@mozdev.org>
date Tue, 08 Mar 2016 20:52:57 +0000
parents 1d9d29d4813a
children 63da8bd0c65e
files tests/blackbox-readonly-dispatch.py tests/test-blackbox.t
diffstat 2 files changed, 37 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/blackbox-readonly-dispatch.py	Tue Mar 08 20:52:57 2016 +0000
@@ -0,0 +1,36 @@
+from __future__ import absolute_import, print_function
+import os
+from mercurial import (
+    dispatch,
+)
+
+def testdispatch(cmd):
+    """Simple wrapper around dispatch.dispatch()
+
+    Prints command and result value, but does not handle quoting.
+    """
+    print("running: %s" % (cmd,))
+    req = dispatch.request(cmd.split())
+    result = dispatch.dispatch(req)
+    print("result: %r" % (result,))
+
+# create file 'foo', add and commit
+f = open('foo', 'wb')
+f.write('foo\n')
+f.close()
+testdispatch("add foo")
+testdispatch("commit -m commit1 -d 2000-01-01 foo")
+
+# append to file 'foo' and commit
+f = open('foo', 'ab')
+f.write('bar\n')
+f.close()
+# remove blackbox.log directory (proxy for readonly log file)
+os.rmdir(".hg/blackbox.log")
+# replace it with the real blackbox.log file
+os.rename(".hg/blackbox.log-", ".hg/blackbox.log")
+testdispatch("commit -m commit2 -d 2000-01-02 foo")
+
+# check 88803a69b24 (fancyopts modified command table)
+testdispatch("log -r 0")
+testdispatch("log -r tip")
--- a/tests/test-blackbox.t	Tue Mar 08 20:57:40 2016 +0000
+++ b/tests/test-blackbox.t	Tue Mar 08 20:52:57 2016 +0000
@@ -157,7 +157,7 @@
   $ sed -e 's/\(.*test1.*\)/#\1/; s#\(.*commit2.*\)#os.rmdir(".hg/blackbox.log")\
   > os.rename(".hg/blackbox.log-", ".hg/blackbox.log")\
   > \1#' $TESTDIR/test-dispatch.py > ../test-dispatch.py
-  $ python ../test-dispatch.py
+  $ python $TESTDIR/blackbox-readonly-dispatch.py
   running: add foo
   result: 0
   running: commit -m commit1 -d 2000-01-01 foo