diff --git a/tests/test-dispatch.py b/tests/blackbox-readonly-dispatch.py
copy from tests/test-dispatch.py
copy to tests/blackbox-readonly-dispatch.py
--- a/tests/test-dispatch.py
+++ b/tests/blackbox-readonly-dispatch.py
@@ -14,9 +14,6 @@ def testdispatch(cmd):
     result = dispatch.dispatch(req)
     print("result: %r" % (result,))
 
-testdispatch("init test1")
-os.chdir('test1')
-
 # create file 'foo', add and commit
 f = open('foo', 'wb')
 f.write('foo\n')
@@ -28,6 +25,10 @@ testdispatch("commit -m commit1 -d 2000-
 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)
diff --git a/tests/test-blackbox.t b/tests/test-blackbox.t
--- a/tests/test-blackbox.t
+++ b/tests/test-blackbox.t
@@ -157,7 +157,7 @@ log rotation
   $ 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