Coverage for tests/test_main_app.py: 100%

30 statements  

« prev     ^ index     » next       coverage.py v7.1.0, created at 2023-01-30 18:57 -0500

1"""Unit test file for main_app.py.""" 

2from src.probable_fiesta.app import main as main_app 

3from src.probable_fiesta.app.builder.app import App 

4from src.probable_fiesta.command.builder import command 

5from src.probable_fiesta.logger.logging_config import set_logger 

6from src.probable_fiesta.__about__ import __version__ 

7from src.probable_fiesta.config.variables import PackageDef, VariablesDef 

8 

9from logging import DEBUG 

10from unittest import TestCase 

11 

12# Create a logger if needed for testing cases 

13LOG_TEST = set_logger("test_main_app", DEBUG) # Defaults as INFO 

14 

15class TestMainApp(TestCase): 

16 

17 def setUp(self): 

18 self.app = App() 

19 

20 # Health-check function test - get current version 

21 def test_function_get_version(self): 

22 LOG_TEST.info("Test function get_version()") 

23 # This should never fail :) 

24 expected = f"{PackageDef.NAME} v.{VariablesDef.VERSION}" 

25 self.assertEqual(main_app.get_version(), expected) 

26 

27 def test_create_command_function_version(self): 

28 c = command.Command("version test", main_app.get_version, None) 

29 self.app.command = c 

30 stdout = self.app.invoke() 

31 #LOG.debug(stdout) 

32 expected = f"{PackageDef.NAME} v.{VariablesDef.VERSION}" 

33 self.assertEqual(stdout, expected) 

34 

35 def test_argument(self): 

36 arg = "--version" 

37 expected = f"{PackageDef.NAME} v.{VariablesDef.VERSION}" 

38 self.assertEqual(main_app.main([arg]), expected) 

39 

40 def test_argument_invalid(self): 

41 arg = "--invalid" 

42 expected = f"unrecognized arguments: {arg}" 

43 self.assertEqual(main_app.main([arg]), expected)