Explorar o código

Add test sample commands to CLI.

scossu hai 8 meses
pai
achega
00172a1443
Modificáronse 2 ficheiros con 34 adicións e 2 borrados
  1. 2 2
      README.md
  2. 32 0
      sscli

+ 2 - 2
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:
 

+ 32 - 0
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. """