aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDylan Baker <dylan@pnwbakers.com>2022-07-25 13:46:31 -0700
committerEli Schwartz <eschwartz93@gmail.com>2022-08-18 21:57:36 -0400
commitf10967e3f40e1caaddab599c5f76923acf39a2f5 (patch)
tree6cbb08aa976e612c0139fa05feeda24e2256bd14
parent25a3eff797acd08f08d41f09447df0a8e8a21e4d (diff)
downloadmeson-f10967e3f40e1caaddab599c5f76923acf39a2f5.zip
meson-f10967e3f40e1caaddab599c5f76923acf39a2f5.tar.gz
meson-f10967e3f40e1caaddab599c5f76923acf39a2f5.tar.bz2
unittests: Add additional tests for KwargInfo::since values
The first test is checking the added support for keys as either `dict` or `list`. The second checks that a default value which would otherwise trigger a value_since check doesn't, and that passing the default value explicitly does.
-rw-r--r--unittests/internaltests.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/unittests/internaltests.py b/unittests/internaltests.py
index 8e52fa6..b87aae4 100644
--- a/unittests/internaltests.py
+++ b/unittests/internaltests.py
@@ -1387,6 +1387,10 @@ class InternalTests(unittest.TestCase):
validator=in_set_validator({'clean', 'build', 'rebuild', 'deprecated', 'since'}),
deprecated_values={'deprecated': '1.0'},
since_values={'since': '1.1'}),
+ KwargInfo('dict', (ContainerTypeInfo(list, str), ContainerTypeInfo(dict, str)), default={},
+ since_values={list: '1.9'}),
+ KwargInfo('new_dict', (ContainerTypeInfo(list, str), ContainerTypeInfo(dict, str)), default={},
+ since_values={dict: '1.1'}),
)
def _(obj, node, args: T.Tuple, kwargs: T.Dict[str, str]) -> None:
pass
@@ -1427,6 +1431,18 @@ class InternalTests(unittest.TestCase):
_(None, mock.Mock(subproject=''), [], {'mode': 'since'})
self.assertRegex(out.getvalue(), r"""WARNING:.Project targets '1.0'.*introduced in '1.1': "testfunc" keyword argument "mode" value "since".*""")
+ with self.subTest('new container'), mock.patch('sys.stdout', io.StringIO()) as out:
+ _(None, mock.Mock(subproject=''), [], {'dict': ['a=b']})
+ self.assertRegex(out.getvalue(), r"""WARNING:.Project targets '1.0'.*introduced in '1.9': "testfunc" keyword argument "dict" of type list.*""")
+
+ with self.subTest('new container set to default'), mock.patch('sys.stdout', io.StringIO()) as out:
+ _(None, mock.Mock(subproject=''), [], {'new_dict': {}})
+ self.assertRegex(out.getvalue(), r"""WARNING:.Project targets '1.0'.*introduced in '1.1': "testfunc" keyword argument "new_dict" of type dict.*""")
+
+ with self.subTest('new container default'), mock.patch('sys.stdout', io.StringIO()) as out:
+ _(None, mock.Mock(subproject=''), [], {})
+ self.assertNotRegex(out.getvalue(), r"""WARNING:.Project targets '1.0'.*introduced in '1.1': "testfunc" keyword argument "new_dict" of type dict.*""")
+
def test_typed_kwarg_evolve(self) -> None:
k = KwargInfo('foo', str, required=True, default='foo')
v = k.evolve(default='bar')