@@ -30,6 +30,117 @@ def setUp(self):
3030 self .network = self .app .client_manager .network
3131
3232
33+ class TestCreateSubnetPool (TestSubnetPool ):
34+
35+ # The new subnet pool to create.
36+ _subnet_pool = network_fakes .FakeSubnetPool .create_one_subnet_pool ()
37+
38+ columns = (
39+ 'address_scope_id' ,
40+ 'default_prefixlen' ,
41+ 'default_quota' ,
42+ 'id' ,
43+ 'ip_version' ,
44+ 'is_default' ,
45+ 'max_prefixlen' ,
46+ 'min_prefixlen' ,
47+ 'name' ,
48+ 'prefixes' ,
49+ 'project_id' ,
50+ 'shared' ,
51+ )
52+ data = (
53+ _subnet_pool .address_scope_id ,
54+ _subnet_pool .default_prefixlen ,
55+ _subnet_pool .default_quota ,
56+ _subnet_pool .id ,
57+ _subnet_pool .ip_version ,
58+ _subnet_pool .is_default ,
59+ _subnet_pool .max_prefixlen ,
60+ _subnet_pool .min_prefixlen ,
61+ _subnet_pool .name ,
62+ utils .format_list (_subnet_pool .prefixes ),
63+ _subnet_pool .project_id ,
64+ _subnet_pool .shared ,
65+ )
66+
67+ def setUp (self ):
68+ super (TestCreateSubnetPool , self ).setUp ()
69+
70+ self .network .create_subnet_pool = mock .Mock (
71+ return_value = self ._subnet_pool )
72+
73+ # Get the command object to test
74+ self .cmd = subnet_pool .CreateSubnetPool (self .app , self .namespace )
75+
76+ def test_create_no_options (self ):
77+ arglist = []
78+ verifylist = []
79+
80+ # Missing required args should bail here
81+ self .assertRaises (tests_utils .ParserException , self .check_parser ,
82+ self .cmd , arglist , verifylist )
83+
84+ def test_create_default_options (self ):
85+ arglist = [
86+ '--pool-prefix' , '10.0.10.0/24' ,
87+ self ._subnet_pool .name ,
88+ ]
89+ verifylist = [
90+ ('prefixes' , ['10.0.10.0/24' ]),
91+ ('name' , self ._subnet_pool .name ),
92+ ]
93+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
94+
95+ columns , data = (self .cmd .take_action (parsed_args ))
96+
97+ self .network .create_subnet_pool .assert_called_with (** {
98+ 'prefixes' : ['10.0.10.0/24' ],
99+ 'name' : self ._subnet_pool .name ,
100+ })
101+ self .assertEqual (self .columns , columns )
102+ self .assertEqual (self .data , data )
103+
104+ def test_create_prefixlen_options (self ):
105+ arglist = [
106+ '--default-prefix-length' , self ._subnet_pool .default_prefixlen ,
107+ '--max-prefix-length' , self ._subnet_pool .max_prefixlen ,
108+ '--min-prefix-length' , self ._subnet_pool .min_prefixlen ,
109+ self ._subnet_pool .name ,
110+ ]
111+ verifylist = [
112+ ('default_prefix_length' , self ._subnet_pool .default_prefixlen ),
113+ ('max_prefix_length' , self ._subnet_pool .max_prefixlen ),
114+ ('min_prefix_length' , self ._subnet_pool .min_prefixlen ),
115+ ('name' , self ._subnet_pool .name ),
116+ ]
117+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
118+
119+ columns , data = (self .cmd .take_action (parsed_args ))
120+
121+ self .network .create_subnet_pool .assert_called_with (** {
122+ 'default_prefix_length' : self ._subnet_pool .default_prefixlen ,
123+ 'max_prefix_length' : self ._subnet_pool .max_prefixlen ,
124+ 'min_prefix_length' : self ._subnet_pool .min_prefixlen ,
125+ 'name' : self ._subnet_pool .name ,
126+ })
127+ self .assertEqual (self .columns , columns )
128+ self .assertEqual (self .data , data )
129+
130+ def test_create_len_negative (self ):
131+ arglist = [
132+ self ._subnet_pool .name ,
133+ '--min-prefix-length' , '-16' ,
134+ ]
135+ verifylist = [
136+ ('subnet_pool' , self ._subnet_pool .name ),
137+ ('min_prefix_length' , '-16' ),
138+ ]
139+
140+ self .assertRaises (argparse .ArgumentTypeError , self .check_parser ,
141+ self .cmd , arglist , verifylist )
142+
143+
33144class TestDeleteSubnetPool (TestSubnetPool ):
34145
35146 # The subnet pool to delete.
0 commit comments