Merge pull request 'Basic implementation of `pytest`' (#11) from add-tests into main

Reviewed-on: #11
main
Nicholas Hope 2022-08-13 12:53:29 -04:00
commit 6c13802d17
5 changed files with 57 additions and 0 deletions

1
.gitignore vendored
View File

@ -9,6 +9,7 @@ cfg/*
__pycache__/
*.py[cod]
*$py.class
.venv
# C extensions
*.so

View File

@ -2,3 +2,5 @@ pyyaml
argparse
pylint
build
pytest
cli_test_helpers

View File

@ -1,4 +1,5 @@
import os
import sys
from os.path import exists
from tempfile import NamedTemporaryFile

38
tests/test_cli.py Normal file
View File

@ -0,0 +1,38 @@
"""
Tests that we can import and execute the most basic valid test file.
Uses: tests/validYAML.yaml
"""
import pytest
import tfscript.cli
from cli_test_helpers import ArgvContext, shell
class TestCLI:
def test_debug_opt(self):
"""Is debug argument available?"""
with ArgvContext('tfscript', '-d', 'tests/validYAML.yaml'):
parser = tfscript.cli.parseCLI()
args = parser.parse_args()
assert args.debug == True
def test_dry_run_opt(self):
"""Is dry-run argument available?"""
with ArgvContext('tfscript', '-n', 'tests/validYAML.yaml'):
parser = tfscript.cli.parseCLI()
args = parser.parse_args()
assert args.dry_run == True
def test_directory_opt(self):
"""Use . because it's sure to exist on all platforms."""
with ArgvContext('tfscript', '--directory', '.', 'tests/validYAML.yaml'):
parser = tfscript.cli.parseCLI()
args = parser.parse_args()
assert args.directory == '.'
def test_cli(self):
"""
Does CLI stop execution w/o a filename positional argument?
"""
with pytest.raises(SystemExit):
tfscript.cli.main()
pytest.fail("Should abort without positional filename argument")

15
tests/test_valid_yaml.py Normal file
View File

@ -0,0 +1,15 @@
"""
Tests that we can import and execute the most basic valid test file.
Uses: tests/validYAML.yaml
"""
import pytest
import tfscript.cli
from cli_test_helpers import ArgvContext, shell
class TestValidYaml:
def test_parseValidFile(self, tmp_path):
"""Parse the basic test file."""
with ArgvContext('tfscript', '--directory', str(tmp_path),
'-d', 'tests/validYAML.yaml'):
tfscript.cli.main()