jrnl/features/environment.py
2013-07-22 20:08:53 +02:00

34 lines
1.2 KiB
Python

from behave import *
import shutil
import os
from jrnl import jrnl
try:
from io import StringIO
except ImportError:
from cStringIO import StringIO
def before_scenario(context, scenario):
"""Before each scenario, backup all config and journal test data."""
context.messages = StringIO()
jrnl.util.STDERR = context.messages
jrnl.util.TEST = True
for folder in ("configs", "journals"):
original = os.path.join("features", folder)
backup = os.path.join("features", folder+"_backup")
if not os.path.exists(backup):
os.mkdir(backup)
for filename in os.listdir(original):
shutil.copy2(os.path.join(original, filename), backup)
def after_scenario(context, scenario):
"""After each scenario, restore all test data and remove backups."""
context.messages.close()
context.messages = None
for folder in ("configs", "journals"):
original = os.path.join("features", folder)
backup = os.path.join("features", folder+"_backup")
for filename in os.listdir(original):
os.remove(os.path.join(original, filename))
for filename in os.listdir(backup):
shutil.copy2(os.path.join(backup, filename), original)
shutil.rmtree(backup)