[tests/config] Add tests for helptexts

Ensure that each theme is listed in the helptext and that there is a
helptext entry for every module.
This commit is contained in:
Tobi-wan Kenobi 2016-12-17 08:42:23 +01:00
parent 4f7666533c
commit 9a350ddc2a
2 changed files with 26 additions and 1 deletions

View file

@ -4,6 +4,7 @@ This module provides configuration information (loaded modules,
module parameters, etc.) to all other components module parameters, etc.) to all other components
""" """
import sys
import argparse import argparse
import textwrap import textwrap
import importlib import importlib
@ -26,7 +27,7 @@ class print_usage(argparse.Action):
self.print_themes() self.print_themes()
else: else:
parser.print_help() parser.print_help()
parser.exit() sys.exit(0)
def print_themes(self): def print_themes(self):
print(textwrap.fill(", ".join(bumblebee.theme.themes()), print(textwrap.fill(", ".join(bumblebee.theme.themes()),

View file

@ -1,7 +1,15 @@
# pylint: disable=C0103,C0111 # pylint: disable=C0103,C0111
import unittest import unittest
import mock
try:
from StringIO import StringIO
except ImportError:
from io import StringIO
from bumblebee.config import Config from bumblebee.config import Config
from bumblebee.theme import themes
from bumblebee.engine import all_modules
class TestConfig(unittest.TestCase): class TestConfig(unittest.TestCase):
def setUp(self): def setUp(self):
@ -25,4 +33,20 @@ class TestConfig(unittest.TestCase):
"name": x.split(":")[1], "name": x.split(":")[1],
} for x in self.someAliasModules]) } for x in self.someAliasModules])
@mock.patch("sys.stdout", new_callable=StringIO)
@mock.patch("sys.exit")
def test_list_themes(self, exit, stdout):
cfg = Config(["-l", "themes"])
result = stdout.getvalue()
for theme in themes():
self.assertTrue(theme in result)
@mock.patch("sys.stdout", new_callable=StringIO)
@mock.patch("sys.exit")
def test_list_modules(self, exit, stdout):
cfg = Config(["-l", "modules"])
result = stdout.getvalue()
for module in all_modules():
self.assertTrue(module["name"] in result)
# vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4 # vim: tabstop=8 expandtab shiftwidth=4 softtabstop=4