Browse Source

[2583] add LETTUCE_KEEP_OUTPUT options/env var

Jelte Jansen 12 years ago
parent
commit
4660c86fe6
2 changed files with 11 additions and 2 deletions
  1. 5 0
      tests/lettuce/README
  2. 6 2
      tests/lettuce/features/terrain/terrain.py

+ 5 - 0
tests/lettuce/README

@@ -70,6 +70,11 @@ These files *will* be overwritten or deleted if the same scenarios are run
 again, so if you want to inspect them after a failed test, either do so
 immediately or move the files.
 
+If you want to keep these output files even for successful runs, you can
+specify the environment variable LETTUCE_KEEP_OUTPUT=1. The files will
+still be overwritten by subsequent runs, but they will not automatically be
+deleted.
+
 Adding and extending tests
 --------------------------
 

+ 6 - 2
tests/lettuce/features/terrain/terrain.py

@@ -26,12 +26,16 @@
 
 from lettuce import *
 import subprocess
-import os.path
+import os
 import shutil
 import re
 import sys
 import time
 
+# lettuce cannot directly pass commands to the terrain, so we need to
+# use environment variables to influence behaviour
+KEEP_OUTPUT = 'LETTUCE_KEEP_OUTPUT'
+
 # In order to make sure we start all tests with a 'clean' environment,
 # We perform a number of initialization steps, like restoring configuration
 # files, and removing generated data files.
@@ -107,7 +111,7 @@ class RunningProcess:
         self.process = None
         self.step = step
         self.process_name = process_name
-        self.remove_files_on_exit = True
+        self.remove_files_on_exit = (os.environ.get(KEEP_OUTPUT) != '1')
         self._check_output_dir()
         self._create_filenames()
         self._start_process(args)