diff options
author | Juergen Ryannel <juergen@ryannel.org> | 2020-02-04 14:16:55 +0100 |
---|---|---|
committer | Juergen Ryannel <juergen@ryannel.org> | 2020-02-04 14:16:55 +0100 |
commit | 30a865014cbe8919d8e4afa5ea4dded6a3a7aef9 (patch) | |
tree | 3c2cd07f9412abd564b909481df545e6c390c30c | |
parent | 263cd602c56d706e5e59586ff0310b44c53efaee (diff) | |
download | qtivi-qface-30a865014cbe8919d8e4afa5ea4dded6a3a7aef9.tar.gz |
updated requirements and cli file
-rwxr-xr-x | cli.py | 95 | ||||
-rw-r--r-- | requirements.txt | 2 |
2 files changed, 2 insertions, 95 deletions
@@ -11,7 +11,6 @@ import os import yaml import logging import logging.config -from livereload import Server, shell here = Path(__file__).abspath().dirname() @@ -53,100 +52,6 @@ def test_ci(): sh('python3 -m pytest --cov=qface -v -l tests/') -class RunTestChangeHandler(FileSystemEventHandler): - def __init__(self, clickContext): - super().__init__() - self.clickContext = clickContext - - def on_any_event(self, event): - if event.is_directory: - return - if Path(event.src_path).ext == '.py': - sh('python3 -m pytest') - - -@cli.command() -@click.pass_context -def test_monitor(ctx): - """run the tests and re-run on changes""" - sh('python3 -m pytest') - while True: - event_handler = RunTestChangeHandler(ctx) - observer = Observer() - observer.schedule(event_handler, './tests', recursive=True) - observer.schedule(event_handler, './qface', recursive=True) - observer.start() - try: - while True: - time.sleep(1) - except KeyboardInterrupt: - observer.stop() - observer.join() - - -class RunScriptChangeHandler(FileSystemEventHandler): - def __init__(self, script): - super().__init__() - self.script = script - self.is_running = False - - def on_modified(self, event): - if event.src_path.endswith('.cache'): - return - self.run() - - def run(self): - if self.is_running: - return - self.is_running = True - sh(self.script, cwd=Path.getcwd()) - self.is_running = False - - -@cli.command() -@click.argument('script', nargs=1, type=click.Path(exists=True)) -@click.argument('input', nargs=-1, type=click.Path(exists=True)) -@click.argument('output', nargs=1, type=click.Path(exists=True)) -def reload(script, input, output): - """ - reloads the generator script when the script files - or the input files changes - """ - script = Path(script).expand().abspath() - output = Path(output).expand().abspath() - input = input if isinstance(input, (list, tuple)) else [input] - output.makedirs_p() - _script_reload(script, input, output) - - -def _script_reload(script, input, output): - """run the named generator and monitor the input and generator folder""" - input = [Path(entry).expand().abspath() for entry in input] - output = Path(output).expand().abspath() - cmd = 'python3 {0} {1} {2}'.format(script, ' '.join(input), output) - event_handler = RunScriptChangeHandler(cmd) - event_handler.run() # run always once - observer = Observer() - path = script.dirname().expand().abspath() - click.secho('watch: {0}'.format(path), fg='blue') - observer.schedule(event_handler, path, recursive=True) - for entry in input: - entry = entry.dirname().expand().abspath() - click.secho('watch: {0}'.format(entry), fg='blue') - observer.schedule(event_handler, entry, recursive=True) - path = Path(__file__).parent / 'qface' - click.secho('watch: {0}'.format(path), fg='blue') - observer.schedule(event_handler, path, recursive=True) - observer.start() - - try: - while True: - time.sleep(1) - except KeyboardInterrupt: - observer.stop() - observer.join() - - @click.option('--editable/--no-editable', default=False, help='install editable package') @cli.command() def install(editable): diff --git a/requirements.txt b/requirements.txt index 34a8a51..309cb61 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,3 +11,5 @@ PyYAML==5.1 six==1.11.0 typing==3.6.4 watchdog==0.8.3 +pytest==5.3.5 +pytest-cov==2.8.1 |