mirror of https://github.com/chriskiehl/Gooey.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
54 lines
1.8 KiB
54 lines
1.8 KiB
import unittest
|
|
|
|
from gooey.gui.components.options import options
|
|
|
|
class TestPrefixFilter(unittest.TestCase):
|
|
|
|
def test_doc_schenanigans(self):
|
|
"""Sanity check that my docstring wrappers all behave as expected"""
|
|
@options._include_layout_docs
|
|
def no_self_docstring():
|
|
pass
|
|
|
|
@options._include_layout_docs
|
|
def yes_self_docstring():
|
|
"""sup"""
|
|
pass
|
|
|
|
# gets attached to functions even if they don't have a docstring
|
|
self.assertIn(options.LayoutOptions.__doc__, no_self_docstring.__doc__)
|
|
# gets attached to the *end* of existing doc strings
|
|
self.assertTrue(yes_self_docstring.__doc__.startswith('sup'))
|
|
self.assertIn(options.LayoutOptions.__doc__, yes_self_docstring.__doc__)
|
|
|
|
|
|
def test_clean_method(self):
|
|
"""
|
|
_clean should drop any keys with None values
|
|
and flatten the layout_option kwargs to the root level
|
|
"""
|
|
result = options._clean({'a': None, 'b': 123, 'c': 0})
|
|
self.assertEqual(result, {'b': 123, 'c': 0})
|
|
|
|
result = options._clean({'root_level': 123, 'layout_options': {
|
|
'nested': 'hello',
|
|
'another': 1234
|
|
}})
|
|
self.assertEqual(result, {'root_level': 123, 'nested': 'hello', 'another': 1234})
|
|
|
|
def test_only_provided_arguments_included(self):
|
|
"""
|
|
More sanity checking that the internal use of locals()
|
|
does the Right Thing
|
|
"""
|
|
option = options.LayoutOptions(label_color='#ffffff')
|
|
self.assertIn('label_color', option)
|
|
|
|
option = options.LayoutOptions()
|
|
self.assertNotIn('label_color', option)
|
|
|
|
option = options.TextField(label_color='#ffffff')
|
|
self.assertIn('label_color', option)
|
|
|
|
option = options.TextField()
|
|
self.assertNotIn('label_color', option)
|