blueprint new-cli Bug #1001053 Implement new commands interface, ready for v2.0. adopt cliff arch. new client binary is quantumv2. After it is stable, we will remove quantum binary. Httplibs2 is used. usage: https://docs.google.com/document/d/1e_4UtnhFfgtnsB8EVB31BZKldaVzl_BlsGnGBrKmcDk/edit Patch 2: add license header Patch 3: add v1.0 support, fix show net details Patch 4: quantumclient network api v2.0 Patch 5: subnet and port commands for api v2.0, add fields selector Patch 6: add test cases Patch 7: fix interactive mode, modify according to comments and https://review.openstack.org/#/c/8366/, add two tasks to BP: noauth and openstack common Patch 8: fix log problem Patch 9: modify according to the comments by dan on patch 5 Patch 10: just trigger jenkins Patch 11: pep 1.3 fix Patch 12: cliff and prettytable to more than 0.6.0 Patch 13: change setup.py to include more packages Patch 14: pep check on jenkins Patch 15: add license text to empty __init__.py files Patch 16: fix v1.1 test cases after server changes Change-Id: Ibbbdd834371c6a023b31e4797718fc0fe9786d89
		
			
				
	
	
		
			60 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
# Copyright 2012 OpenStack LLC.
 | 
						|
# All Rights Reserved
 | 
						|
#
 | 
						|
#    Licensed under the Apache License, Version 2.0 (the "License"); you may
 | 
						|
#    not use this file except in compliance with the License. You may obtain
 | 
						|
#    a copy of the License at
 | 
						|
#
 | 
						|
#         http://www.apache.org/licenses/LICENSE-2.0
 | 
						|
#
 | 
						|
#    Unless required by applicable law or agreed to in writing, software
 | 
						|
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 | 
						|
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 | 
						|
#    License for the specific language governing permissions and limitations
 | 
						|
#    under the License.
 | 
						|
#
 | 
						|
# vim: tabstop=4 shiftwidth=4 softtabstop=4
 | 
						|
 | 
						|
import unittest
 | 
						|
 | 
						|
from quantumclient.common import exceptions
 | 
						|
from quantumclient.quantum import v2_0 as quantumV20
 | 
						|
 | 
						|
 | 
						|
class CLITestArgs(unittest.TestCase):
 | 
						|
 | 
						|
    def test_empty(self):
 | 
						|
        _mydict = quantumV20.parse_args_to_dict([])
 | 
						|
        self.assertEqual({}, _mydict)
 | 
						|
 | 
						|
    def test_default_bool(self):
 | 
						|
        _specs = ['--my_bool', '--arg1', 'value1']
 | 
						|
        _mydict = quantumV20.parse_args_to_dict(_specs)
 | 
						|
        self.assertTrue(_mydict['my_bool'])
 | 
						|
 | 
						|
    def test_bool_true(self):
 | 
						|
        _specs = ['--my-bool', 'type=bool', 'true',  '--arg1', 'value1']
 | 
						|
        _mydict = quantumV20.parse_args_to_dict(_specs)
 | 
						|
        self.assertTrue(_mydict['my-bool'])
 | 
						|
 | 
						|
    def test_bool_false(self):
 | 
						|
        _specs = ['--my_bool', 'type=bool', 'false',  '--arg1', 'value1']
 | 
						|
        _mydict = quantumV20.parse_args_to_dict(_specs)
 | 
						|
        self.assertFalse(_mydict['my_bool'])
 | 
						|
 | 
						|
    def test_nargs(self):
 | 
						|
        _specs = ['--tag', 'x', 'y', '--arg1', 'value1']
 | 
						|
        _mydict = quantumV20.parse_args_to_dict(_specs)
 | 
						|
        self.assertTrue('x' in _mydict['tag'])
 | 
						|
        self.assertTrue('y' in _mydict['tag'])
 | 
						|
 | 
						|
    def test_badarg(self):
 | 
						|
        _specs = ['--tag=t', 'x', 'y', '--arg1', 'value1']
 | 
						|
        self.assertRaises(exceptions.CommandError,
 | 
						|
                          quantumV20.parse_args_to_dict, _specs)
 | 
						|
 | 
						|
    def test_arg(self):
 | 
						|
        _specs = ['--tag=t', '--arg1', 'value1']
 | 
						|
        self.assertEqual('value1',
 | 
						|
                         quantumV20.parse_args_to_dict(_specs)['arg1'])
 |