From 76f57062e6f561ed8587d20a2384adede9943f66 Mon Sep 17 00:00:00 2001 From: Charles Milette Date: Sun, 7 Jan 2018 12:02:19 -0500 Subject: [PATCH] Add unit tests for terminal adapters --- tests/test_scripter.py | 32 -------------------------------- tests/test_terminal.py | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 32 deletions(-) delete mode 100644 tests/test_scripter.py create mode 100644 tests/test_terminal.py diff --git a/tests/test_scripter.py b/tests/test_scripter.py deleted file mode 100644 index f18f2bd..0000000 --- a/tests/test_scripter.py +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env python3 - -# To run use python3 -m pytest --capture=sys - -import os - -from pokemonterminal.adapter import available_terminals, base -from tests.test_utils import SCRIPT_DIR - - -def test_available_terminals(): - assert available_terminals, 'No available_terminals found.' - terminal_names = [terminal.__name__ for terminal in available_terminals] - non_terminals = ['NullAdapter', '__init__'] - assert all(terminal not in terminal_names for terminal in non_terminals) - terminals_dir = os.path.join(SCRIPT_DIR, 'adapter', 'implementations') - assert os.path.isdir(terminals_dir), 'Not found: ' + terminals_dir - for filename in os.listdir(terminals_dir): - terminal, ext = os.path.splitext(filename) - if ext.lower() == '.py': - assert terminal in (terminal_names + non_terminals), terminal - - -def test_adapter_methods(): - for terminal in available_terminals + [base.TerminalAdapterInterface]: - assert callable(terminal.clear) - assert callable(terminal.is_available) - assert callable(terminal.set_image_file_path) - - -if __name__ == '__main__': - test_available_terminals() diff --git a/tests/test_terminal.py b/tests/test_terminal.py new file mode 100644 index 0000000..95fb98f --- /dev/null +++ b/tests/test_terminal.py @@ -0,0 +1,16 @@ +from pokemonterminal.terminal import _get_adapter_classes +import os.path as __p +import inspect as __inspct + + +def test_terminal_adapter_classes(): + all_adapter = _get_adapter_classes() + files = {__inspct.getfile(x) for x in all_adapter} + print('all adapter classes:\n', files) + assert len(all_adapter) >= len(files), \ + "Some of the files in the adapter module don't define an adapter" + module_name = {x.__name__: __p.splitext(__p.basename( + __inspct.getfile(x)))[0] for x in all_adapter} + print("'class: module' map\n", module_name) + assert all(y.lower() in x.lower() for x, y in module_name.items()), \ + "Some of the adapters are defined in unrelated named modules"