clean up tests
This commit is contained in:
parent
44a17e5dfe
commit
8f6d5d41cd
1 changed files with 76 additions and 47 deletions
|
|
@ -1,77 +1,106 @@
|
|||
#!/usr/bin/python
|
||||
|
||||
"""Test argspec functions"""
|
||||
|
||||
import koji.util
|
||||
import unittest
|
||||
import koji.util
|
||||
|
||||
class ArgspecCase(unittest.TestCase):
|
||||
"""Main test case container"""
|
||||
class TestApplyArgspec(unittest.TestCase):
|
||||
|
||||
def test_apply_argspec(self):
|
||||
"""Test the parse_NVR method"""
|
||||
|
||||
# Start simple
|
||||
# Start simple: def func(n)
|
||||
argspec = (['n'], None, None, None)
|
||||
self.assertRaises(koji.ParameterError, koji.util.apply_argspec,
|
||||
argspec, (), None )
|
||||
self.assertRaises(koji.ParameterError, koji.util.apply_argspec,
|
||||
argspec, (1,2), None )
|
||||
ret = koji.util.apply_argspec(argspec, (1,), None)
|
||||
self.assertEqual(ret, {'n':1})
|
||||
ret = koji.util.apply_argspec(argspec, (), {'n':1})
|
||||
self.assertEqual(ret, {'n':1})
|
||||
self.assertRaises(koji.ParameterError, koji.util.apply_argspec,
|
||||
argspec, (1,), {'n':1} )
|
||||
self.assertRaises(koji.ParameterError, koji.util.apply_argspec,
|
||||
argspec, (1,), {'m':1} )
|
||||
self.assertRaises(koji.ParameterError, koji.util.apply_argspec,
|
||||
argspec, (), {'m':1} )
|
||||
badargs = [
|
||||
# [args, kwargs]
|
||||
[(), None],
|
||||
[(1, 2), None],
|
||||
[(1,), {'n': 1}],
|
||||
[(1,), {'m': 1}],
|
||||
[(), {'m': 1}],
|
||||
]
|
||||
for args, kwargs in badargs:
|
||||
with self.assertRaises(koji.ParameterError):
|
||||
koji.util.apply_argspec(argspec, args, kwargs)
|
||||
|
||||
# using *args
|
||||
ret = koji.util.apply_argspec(argspec, (1,), None)
|
||||
self.assertEqual(ret, {'n': 1})
|
||||
|
||||
ret = koji.util.apply_argspec(argspec, (), {'n': 1})
|
||||
self.assertEqual(ret, {'n': 1})
|
||||
|
||||
# Using *args; def func(a, b, *args)
|
||||
argspec = (['a', 'b'], 'args', None, None)
|
||||
self.assertRaises(koji.ParameterError, koji.util.apply_argspec,
|
||||
argspec, (), None )
|
||||
self.assertRaises(koji.ParameterError, koji.util.apply_argspec,
|
||||
argspec, (1,), None )
|
||||
badargs = [
|
||||
[(), None],
|
||||
[(1,), None],
|
||||
[(1,2), {'a': 5}],
|
||||
[(1,2), {'x': 5}],
|
||||
[(1,), {'b': 2, 'c': 3}],
|
||||
]
|
||||
for args, kwargs in badargs:
|
||||
with self.assertRaises(koji.ParameterError):
|
||||
koji.util.apply_argspec(argspec, args, kwargs)
|
||||
|
||||
ret = koji.util.apply_argspec(argspec, (1,2), None)
|
||||
self.assertEqual(ret, {'a':1, 'b':2, 'args': ()})
|
||||
|
||||
ret = koji.util.apply_argspec(argspec, (1,2,3), None)
|
||||
self.assertEqual(ret, {'a':1, 'b':2, 'args': (3,)})
|
||||
self.assertRaises(koji.ParameterError, koji.util.apply_argspec,
|
||||
argspec, (1,2), {'a':5} )
|
||||
self.assertRaises(koji.ParameterError, koji.util.apply_argspec,
|
||||
argspec, (1,2), {'x':5} )
|
||||
|
||||
ret = koji.util.apply_argspec(argspec, (1,), {'b':2})
|
||||
self.assertEqual(ret, {'a':1, 'b':2, 'args': ()})
|
||||
self.assertRaises(koji.ParameterError, koji.util.apply_argspec,
|
||||
argspec, (1,), {'b':2, 'c':3} )
|
||||
|
||||
# using **kwargs
|
||||
# Using **kwargs: def func(a, b, **kwargs)
|
||||
argspec = (['a', 'b'], None, 'kwargs', None)
|
||||
self.assertRaises(koji.ParameterError, koji.util.apply_argspec,
|
||||
argspec, (), None )
|
||||
self.assertRaises(koji.ParameterError, koji.util.apply_argspec,
|
||||
argspec, (), {} )
|
||||
badargs = [
|
||||
[(), None],
|
||||
[(), {}],
|
||||
[(1, 2), {'a': 2}],
|
||||
[(1, 2), {'b': 2}],
|
||||
[(1,), {'a': 1, 'b': 2}],
|
||||
]
|
||||
for args, kwargs in badargs:
|
||||
with self.assertRaises(koji.ParameterError):
|
||||
koji.util.apply_argspec(argspec, (), None)
|
||||
|
||||
ret = koji.util.apply_argspec(argspec, (), {'a':1, 'b':2})
|
||||
self.assertEqual(ret, {'a':1, 'b':2, 'kwargs':{}})
|
||||
|
||||
ret = koji.util.apply_argspec(argspec, (), {'a':1, 'b':2, 'c':3})
|
||||
self.assertEqual(ret, {'a':1, 'b':2, 'kwargs':{'c':3}})
|
||||
|
||||
ret = koji.util.apply_argspec(argspec, (1,2), {'c':3})
|
||||
self.assertEqual(ret, {'a':1, 'b':2, 'kwargs':{'c':3}})
|
||||
|
||||
ret = koji.util.apply_argspec(argspec, (1,), {'b': 2, 'c':3})
|
||||
self.assertEqual(ret, {'a':1, 'b':2, 'kwargs':{'c':3}})
|
||||
self.assertRaises(koji.ParameterError, koji.util.apply_argspec,
|
||||
argspec, (1,2), {'b':2} )
|
||||
|
||||
# with defaults
|
||||
# With defaults: def func(a=1, b=2)
|
||||
argspec = (['a', 'b'], None, None, [1,2])
|
||||
badargs = [
|
||||
[(1,2,3), None],
|
||||
[(1,2), {'a': 5}],
|
||||
[(1,2), {'b': 5}],
|
||||
[(1,2), {'x': 5}],
|
||||
[(), {'x': 5}],
|
||||
[(1,), {'b': 2, 'c': 3}],
|
||||
]
|
||||
for args, kwargs in badargs:
|
||||
with self.assertRaises(koji.ParameterError):
|
||||
koji.util.apply_argspec(argspec, args, kwargs)
|
||||
|
||||
ret = koji.util.apply_argspec(argspec, (), {})
|
||||
self.assertEqual(ret, {'a':1, 'b':2})
|
||||
|
||||
# Partial defaults: def func(a, b=2)
|
||||
argspec = (['a', 'b'], None, None, [2])
|
||||
badargs = [
|
||||
[(1,2,3), None],
|
||||
[(1,2), {'a': 5}],
|
||||
[(1,2), {'b': 5}],
|
||||
[(1,2), {'x': 5}],
|
||||
[(), {'x': 5}],
|
||||
[(1,), {'b': 2, 'c': 3}],
|
||||
]
|
||||
for args, kwargs in badargs:
|
||||
with self.assertRaises(koji.ParameterError):
|
||||
koji.util.apply_argspec(argspec, args, kwargs)
|
||||
|
||||
ret = koji.util.apply_argspec(argspec, (1,), {})
|
||||
self.assertEqual(ret, {'a':1, 'b':2})
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue