diff options
Diffstat (limited to 'tests/integration/helper.py')
| -rw-r--r-- | tests/integration/helper.py | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/tests/integration/helper.py b/tests/integration/helper.py new file mode 100644 index 0000000..c120721 --- /dev/null +++ b/tests/integration/helper.py @@ -0,0 +1,56 @@ +import io +import os +import shutil + +from ..helper import cd + +__all__ = ["add_post_without_text", "append_config", "cd", "create_simple_post", "patch_config"] + + +def add_post_without_text(directory): + """Add a post without text.""" + # File for Issue #374 (empty post text) + create_simple_post(directory, "empty.txt", "foobar") + + +def create_simple_post(directory, filename, title_slug, text='', date='2013-03-06 19:08:15'): + """Create a simple post in a given directory.""" + path = os.path.join(directory, filename) + text_processed = '\n' + text if text else '' + with io.open(path, "w+", encoding="utf8") as outf: + outf.write( + """ +.. title: {0} +.. slug: {0} +.. date: {1} +{2}""".format(title_slug, date, text_processed) + ) + + +def copy_example_post(destination_dir): + """Copy a modified version of the example post into the site.""" + test_dir = os.path.abspath(os.path.dirname(__file__)) + source_file = os.path.join(test_dir, "..", "data", "1-nolinks.rst") + destination = os.path.join(destination_dir, "1.rst") + shutil.copy(source_file, destination) + + +def append_config(config_dir, appendix): + """Append text to the config file.""" + config_path = os.path.join(config_dir, "conf.py") + with io.open(config_path, "a", encoding="utf8") as outf: + outf.write(appendix) + + +def patch_config(config_dir, *replacements): + """Patch the config file with new values (find and replace).""" + config_path = os.path.join(config_dir, "conf.py") + with io.open(config_path, "r", encoding="utf-8") as inf: + data = inf.read() + + for old, new in replacements: + data = data.replace(old, new) + + with io.open(config_path, "w+", encoding="utf8") as outf: + outf.write(data) + outf.flush() |
