示例#1
0
def test_param_defs_cmdline():
    pd = ParameterDefinitions((p1, p2))
    # there's a required parameter, and here we don't pass it
    assert_raises(CallerError, pd.make_cmdline, ('cmd',))
    # now we do
    assert_equal(pd.make_cmdline(('cmd',), ('a1',)), ('cmd', 'a1'))
    assert_equal(pd.make_cmdline(('cmd',), ('a1','a2')), ('cmd', 'a1', 'a2'))
    # with some options
    pd = ParameterDefinitions((p1, p2),(o1, o2, f1))
    assert_equal(pd.make_cmdline(('cmd',), ('a1',)), ('cmd', 'a1'))
    assert_equal(pd.make_cmdline(('cmd',), ('a1','a2')), ('cmd', 'a1', 'a2'))
    assert_equal(
        pd.make_cmdline(('cmd',), ('arg1',), {'o1':'3'}),
        ('cmd', '--option1=3', 'arg1'))
    assert_equal(
        pd.make_cmdline(('cmd',), ('arg1',), {'o2': True}),
        ('cmd', '--option2=True', 'arg1'))
    assert_equal(
        pd.make_cmdline(('cmd',), ('arg1',), {'o3': True}),
        ('cmd', '--option3', 'arg1'))
示例#2
0
def test_param_defs_chkvals():
    pd = ParameterDefinitions((p1, p2), (o1, o2))
    pvals, ovals = pd.checked_values(('1','2'))
    assert_equal(pvals, ('1', '2'))
    assert_equal(ovals, {})
    pvals, ovals = pd.checked_values(('1','2'),{'option1':'Yo'})
    assert_equal(pvals, ('1', '2'))
    assert_equal(ovals, {'option1':'Yo'})
    # aliases in options recognized, and names made canonical
    pvals, ovals = pd.checked_values((),{'o1':'Yo'})
    assert_equal(pvals, ())
    assert_equal(ovals, {'option1':'Yo'})
    # we check the keys in the mapping for unexpectedness
    assert_raises(CallerError, pd.checked_values, (),{'crazy':'Yo'})
    # named parameters shift into positionals after checking
    pvals, ovals = pd.checked_values(('1',),{'param2':'Yo'})
    assert_equal(pvals, ('1', 'Yo'))
    assert_equal(ovals, {})
    # the named parameter overwrites corresponding positional parameter
    pvals, ovals = pd.checked_values(('1',),{'param1':'Yo'})
    assert_equal(pvals, ('Yo',))
    assert_equal(ovals, {})
    # if the named positional parameter is more than one off the end of
    # the unnamed positional parameters, there's an error
    assert_raises(CallerError, pd.checked_values, (), {'param2':'Yo'})
    assert_equal(pvals, ('Yo',))
    assert_equal(ovals, {})
    # but we'll append happily to the end of the list
    pvals, ovals = pd.checked_values((),{'param1':'Yo'})
    assert_equal(pvals, ('Yo',))
    assert_equal(ovals, {})
    # too many positionals will cause trouble
    assert_raises(CallerError, pd.checked_values, ('1','2','3'))
    # but not if we turn on last_repeat
    pd = ParameterDefinitions((p1, p2), (o1, o2), pos_last_repeat=True)
    pvals, ovals = pd.checked_values(('1','2','3'))
    assert_equal(pvals, ('1', '2', '3'))
    assert_equal(ovals, {})