aboutsummaryrefslogtreecommitdiffstats
path: root/tests/integration/helper.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/integration/helper.py')
-rw-r--r--tests/integration/helper.py56
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()