diff options
author | Lars Wirzenius <liw@liw.fi> | 2019-06-22 20:18:06 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2019-06-22 20:28:00 +0300 |
commit | 03a1a4fc96a4d919c1dedead159dedae7c8bac6e (patch) | |
tree | 2923e6a50b51127ad7286be1aa346968ff80f3d6 /fable.py | |
parent | fae7a206cb0204bed44ae3c54c5a5a05091df994 (diff) | |
download | fable-poc-03a1a4fc96a4d919c1dedead159dedae7c8bac6e.tar.gz |
Change: move fable.py to fable/__init__.py
Diffstat (limited to 'fable.py')
-rw-r--r-- | fable.py | 134 |
1 files changed, 0 insertions, 134 deletions
diff --git a/fable.py b/fable.py deleted file mode 100644 index bee5ce4..0000000 --- a/fable.py +++ /dev/null @@ -1,134 +0,0 @@ -# Note that the API of this module is guaranteed to change. - -import argparse -import logging -import os -import sys -import shutil -import tempfile - - -class Context: - - def __init__(self): - self._vars = {} - - def get(self, key, default=None): - return self._vars.get(key, default) - - def __getitem__(self, key): - return self._vars[key] - - def __setitem__(self, key, value): - self._vars[key] = value - - -class Settingses: - - def __init__(self): - self._scenarios = [] - - def add_scenario(self, name): - self._scenarios.append(name) - - def is_wanted_scenario(self, name): - return (not self._scenarios or - any(name.casefold() == w.casefold() for w in self._scenarios)) - - -class Datadir: - - def __init__(self): - self._dirname = None - self._ours = False - - def get(self): - if self._dirname is None: - self._dirname = tempfile.mkdtemp() - logging.info('Created temporary directory %s', self._dirname) - self._ours = True - return self._dirname - - def set(self, dirname): - if dirname is not None: - self._dirname = os.path.abspath(dirname) - if not os.path.exists(self._dirname): - os.mkdir(self._dirname) - self._ours = False - - def cleanup(self): - if self._ours: - logging.debug('Removing %s', self._dirname) - shutil.rmtree(self._dirname) - - -class Run: - - def __init__(self): - self._name = None - self._context = None - self._srcdir = None - self._settingses = Settingses() - self._datadir = None - self._tempdir = None - self._parse_options() - - def _parse_options(self): - p = argparse.ArgumentParser() - p.add_argument('--log', default='/dev/null') - p.add_argument('--tempdir') - p.add_argument( - '--scenario', '-s', action='append', dest='scenarios', default=[]) - args = p.parse_args() - self._setup_logging(args.log) - self._tempdir = args.tempdir - for s in args.scenarios: - self._settingses.add_scenario(s) - - def _setup_logging(self, filename): - format = '%(asctime)s %(levelname)s %(message)s' - logging.basicConfig( - filename=filename, format=format, level=logging.DEBUG) - logging.info('test program starts =============') - - def get_context(self): - return self._context - - def start(self, name): - if not self._settingses.is_wanted_scenario(name): - logging.info('Skipping unwanted scenario %s', name) - return False - - logging.info('Start scenario %s', name) - self._context = Context() - self._name = name - self._srcdir = os.getcwd() - self._datadir = Datadir() - self._datadir.set(self._tempdir) - dirname = tempfile.mkdtemp(dir=self._datadir.get()) - os.chdir(dirname) - return True - - def end(self): - logging.info('OK %s', self._name) - sys.stdout.write('OK: {}\n'.format(self._name)) - os.chdir(self._srcdir) - self._datadir.cleanup() - - -def assertTrue(a): - if not a: - raise Exception( - 'expected {!r} to be true, but was disappointed'.format(a, b)) - - -def assertEqual(a, b): - if a != b: - raise Exception( - 'expected {!r} == {!r}, but was disappointed'.format(a, b)) - - -def assertNotEqual(a, b): - if a == b: - raise Exception( - 'expected {!r} != {!r}, but was disappointed'.format(a, b)) |