@@ -78,3 +78,110 @@ def test_task_show(self):
7878
7979 self .assertEqual (self .columns , columns )
8080 self .assertCountEqual (self .data , data )
81+
82+
83+ class TestTaskList (TestTask ):
84+
85+ tasks = image_fakes .create_tasks ()
86+
87+ columns = (
88+ 'ID' ,
89+ 'Type' ,
90+ 'Status' ,
91+ 'Owner' ,
92+ )
93+ datalist = [
94+ (
95+ task .id ,
96+ task .type ,
97+ task .status ,
98+ task .owner_id ,
99+ )
100+ for task in tasks
101+ ]
102+
103+ def setUp (self ):
104+ super ().setUp ()
105+
106+ self .client .tasks .side_effect = [self .tasks , []]
107+
108+ # Get the command object to test
109+ self .cmd = task .ListTask (self .app , None )
110+
111+ def test_task_list_no_options (self ):
112+ arglist = []
113+ verifylist = [
114+ ('sort_key' , None ),
115+ ('sort_dir' , None ),
116+ ('limit' , None ),
117+ ('marker' , None ),
118+ ('type' , None ),
119+ ('status' , None ),
120+ ]
121+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
122+
123+ columns , data = self .cmd .take_action (parsed_args )
124+
125+ self .client .tasks .assert_called_with ()
126+
127+ self .assertEqual (self .columns , columns )
128+ self .assertCountEqual (self .datalist , data )
129+
130+ def test_task_list_sort_key_option (self ):
131+ arglist = ['--sort-key' , 'created_at' ]
132+ verifylist = [('sort_key' , 'created_at' )]
133+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
134+
135+ columns , data = self .cmd .take_action (parsed_args )
136+
137+ self .client .tasks .assert_called_with (
138+ sort_key = parsed_args .sort_key ,
139+ )
140+
141+ self .assertEqual (self .columns , columns )
142+ self .assertCountEqual (self .datalist , data )
143+
144+ def test_task_list_sort_dir_option (self ):
145+ arglist = ['--sort-dir' , 'desc' ]
146+ verifylist = [('sort_dir' , 'desc' )]
147+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
148+
149+ self .cmd .take_action (parsed_args )
150+
151+ self .client .tasks .assert_called_with (
152+ sort_dir = parsed_args .sort_dir ,
153+ )
154+
155+ def test_task_list_pagination_options (self ):
156+ arglist = ['--limit' , '1' , '--marker' , self .tasks [0 ].id ]
157+ verifylist = [('limit' , 1 ), ('marker' , self .tasks [0 ].id )]
158+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
159+
160+ self .cmd .take_action (parsed_args )
161+
162+ self .client .tasks .assert_called_with (
163+ limit = parsed_args .limit ,
164+ marker = parsed_args .marker ,
165+ )
166+
167+ def test_task_list_type_option (self ):
168+ arglist = ['--type' , self .tasks [0 ].type ]
169+ verifylist = [('type' , self .tasks [0 ].type )]
170+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
171+
172+ self .cmd .take_action (parsed_args )
173+
174+ self .client .tasks .assert_called_with (
175+ type = self .tasks [0 ].type ,
176+ )
177+
178+ def test_task_list_status_option (self ):
179+ arglist = ['--status' , self .tasks [0 ].status ]
180+ verifylist = [('status' , self .tasks [0 ].status )]
181+ parsed_args = self .check_parser (self .cmd , arglist , verifylist )
182+
183+ self .cmd .take_action (parsed_args )
184+
185+ self .client .tasks .assert_called_with (
186+ status = self .tasks [0 ].status ,
187+ )
0 commit comments