diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/mailman/app/docs/hooks.txt | 4 | ||||
| -rw-r--r-- | src/mailman/testing/layers.py | 15 |
2 files changed, 17 insertions, 2 deletions
diff --git a/src/mailman/app/docs/hooks.txt b/src/mailman/app/docs/hooks.txt index e5b3f1ae1..efd5530f5 100644 --- a/src/mailman/app/docs/hooks.txt +++ b/src/mailman/app/docs/hooks.txt @@ -48,11 +48,11 @@ we can't run those initialization steps in process, so call a command line script that will produce no output to force the hooks to run. >>> import subprocess + >>> from mailman.testing.layers import ConfigLayer >>> def call(): ... proc = subprocess.Popen( ... 'bin/mailman lists --domain ignore -q'.split(), - ... # testrunner runs from ./parts/test/working-directory - ... cwd='../../..', + ... cwd=ConfigLayer.root_directory, ... env=dict(MAILMAN_CONFIG_FILE=config_path, ... PYTHONPATH=config_directory), ... stdout=subprocess.PIPE, stderr=subprocess.PIPE) diff --git a/src/mailman/testing/layers.py b/src/mailman/testing/layers.py index 34dc46807..8f16d5940 100644 --- a/src/mailman/testing/layers.py +++ b/src/mailman/testing/layers.py @@ -217,6 +217,21 @@ class ConfigLayer(MockAndMonkeyLayer): if len(os.environ.get('MM_VERBOSE_TESTLOG', '').strip()) > 0: cls.stderr = True + # The top of our source tree, for tests that care (e.g. hooks.txt). + root_directory = None + + @classmethod + def set_root_directory(cls, directory): + """Set the directory at the root of our source tree. + + zc.recipe.testrunner runs from parts/test/working-directory, but + that's actually changed over the life of the package. Some tests + care, e.g. because they need to find our built-out bin directory. + Fortunately, buildout can give us this information. See the + `buildout.cfg` file for where this method is called. + """ + cls.root_directory = directory + class SMTPLayer(ConfigLayer): |
