From 00172a14437072e6102e5c9de8f4506fb4b5064e Mon Sep 17 00:00:00 2001 From: scossu Date: Wed, 11 Sep 2024 17:37:27 -0400 Subject: [PATCH] Add test sample commands to CLI. --- README.md | 4 ++-- sscli | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f8c3a7a..8949925 100644 --- a/README.md +++ b/README.md @@ -92,8 +92,8 @@ the drop-down automatically. The value must be one of the keys found in ## Command-line interface Various Scriptshifter commands can be accessed via the shell command `sscli`. -Note: at the moment only `sscli admin init-db` is available. More commands -will be made avaliable on an as-needed basis. +At the moment only a few essential admin and testing tools are available. More +commands can be made avaliable on an as-needed basis. Help menu: diff --git a/sscli b/sscli index e5309ef..4e66200 100755 --- a/sscli +++ b/sscli @@ -5,8 +5,12 @@ __doc__ = """ Scriptshifter command line interface. """ import click +from glob import glob +from os import path + from scriptshifter import DB_PATH from scriptshifter.tables import init_db as _init_db +from tests import test_sample @click.group() @@ -29,6 +33,34 @@ def init_db(): click.echo(f"Initialized Scriptshifter DB in {DB_PATH}") +@cli.group(name="test") +def test_grp(): + """ Test operations. """ + pass + + +@test_grp.command() +def list_samples(): + """ List string sample sets that can be tested. """ + path_ptn = path.join( + path.dirname(path.realpath(__file__)), + "tests", "data", "script_samples", "*.csv") + samples = [path.splitext(path.basename(fn))[0] for fn in glob(path_ptn)] + + click.echo("\n".join(samples)) + + +@test_grp.command() +@click.argument("lang") +def samples(lang): + """ + Test sample strings for language LANG. + + LANG must match one of the names obtained with `test list-samples` command. + """ + return test_sample(lang) + + @cli.group(name="trans") def trans_grp(): """ Transliteration and transcription operations. """