Best Python code snippet using autotest_python
topic_common_unittest.py
Source:topic_common_unittest.py
...31 parse_info = topic_common.item_parse_info32 test_parse_info = parse_info(attribute_name='testing',33 filename_option='flist')34 result, leftover = test_parse_info.get_values(options, [])35 self.assertEqualNoOrder(expected, result)36 os.unlink(options.flist)37 def __test_parsing_inline_good(self, options, expected):38 parse_info = topic_common.item_parse_info39 test_parse_info = parse_info(attribute_name='testing',40 inline_option='inline')41 result, leftover = test_parse_info.get_values(options, [])42 self.assertEqualNoOrder(expected, result)43 def __test_parsing_leftover_good(self, leftover, expected):44 class opt(object):45 pass46 parse_info = topic_common.item_parse_info47 test_parse_info = parse_info(attribute_name='testing',48 inline_option='inline',49 use_leftover=True)50 result, leftover = test_parse_info.get_values(opt(), leftover)51 self.assertEqualNoOrder(expected, result)52 def __test_parsing_all_good(self, options, leftover, expected):53 parse_info = topic_common.item_parse_info54 test_parse_info = parse_info(attribute_name='testing',55 inline_option='inline',56 filename_option='flist',57 use_leftover=True)58 result, leftover = test_parse_info.get_values(options, leftover)59 self.assertEqualNoOrder(expected, result)60 os.unlink(options.flist)61 def __test_parsing_all_bad(self, options, leftover):62 parse_info = topic_common.item_parse_info63 test_parse_info = parse_info(attribute_name='testing',64 inline_option='inline',65 filename_option='flist',66 use_leftover=True)67 self.assertRaises(topic_common.CliError,68 test_parse_info.get_values, options, leftover)69 def test_file_list_wrong_file(self):70 class opt(object):71 flist = './does_not_exist'72 self.__test_parsing_flist_bad(opt())73 def test_file_list_empty_file(self):74 class opt(object):75 flist_obj = cli_mock.create_file('')76 flist = flist_obj.name77 self.__test_parsing_flist_bad(opt())78 def test_file_list_ok(self):79 class opt(object):80 flist_obj = cli_mock.create_file('a\nb\nc\n')81 flist = flist_obj.name82 self.__test_parsing_flist_good(opt(), ['a', 'b', 'c'])83 def test_file_list_one_line_space(self):84 class opt(object):85 flist_obj = cli_mock.create_file('a b c\nd e\nf\n')86 flist = flist_obj.name87 self.__test_parsing_flist_good(opt(), ['a', 'b', 'c', 'd', 'e', 'f'])88 def test_file_list_one_line_comma(self):89 class opt(object):90 flist_obj = cli_mock.create_file('a,b,c\nd,e\nf\n')91 flist = flist_obj.name92 self.__test_parsing_flist_good(opt(), ['a', 'b', 'c', 'd', 'e', 'f'])93 def test_file_list_one_line_mix(self):94 class opt(object):95 flist_obj = cli_mock.create_file('a,b c\nd,e\nf\ng h,i')96 flist = flist_obj.name97 self.__test_parsing_flist_good(opt(), ['a', 'b', 'c', 'd', 'e',98 'f', 'g', 'h', 'i'])99 def test_file_list_one_line_comma_space(self):100 class opt(object):101 flist_obj = cli_mock.create_file('a, b c\nd,e\nf\ng h,i')102 flist = flist_obj.name103 self.__test_parsing_flist_good(opt(), ['a', 'b', 'c', 'd', 'e',104 'f', 'g', 'h', 'i'])105 def test_file_list_line_end_comma_space(self):106 class opt(object):107 flist_obj = cli_mock.create_file('a, b c\nd,e, \nf,\ng h,i ,')108 flist = flist_obj.name109 self.__test_parsing_flist_good(opt(), ['a', 'b', 'c', 'd', 'e',110 'f', 'g', 'h', 'i'])111 def test_file_list_no_eof(self):112 class opt(object):113 flist_obj = cli_mock.create_file('a\nb\nc')114 flist = flist_obj.name115 self.__test_parsing_flist_good(opt(), ['a', 'b', 'c'])116 def test_file_list_blank_line(self):117 class opt(object):118 flist_obj = cli_mock.create_file('\na\nb\n\nc\n')119 flist = flist_obj.name120 self.__test_parsing_flist_good(opt(), ['a', 'b', 'c'])121 def test_file_list_escaped_commas(self):122 class opt(object):123 flist_obj = cli_mock.create_file('a\nb\\,c\\,d\nef\\,g')124 flist = flist_obj.name125 self.__test_parsing_flist_good(opt(), ['a', 'b,c,d', 'ef,g'])126 def test_file_list_escaped_commas_slashes(self):127 class opt(object):128 flist_obj = cli_mock.create_file('a\nb\\\\\\,c\\,d\nef\\\\,g')129 flist = flist_obj.name130 self.__test_parsing_flist_good(opt(), ['a', 'b\\,c,d', 'ef\\', 'g'])131 def test_file_list_opt_list_one(self):132 class opt(object):133 inline = 'a'134 self.__test_parsing_inline_good(opt(), ['a'])135 def test_file_list_opt_list_space(self):136 class opt(object):137 inline = 'a b c'138 self.__test_parsing_inline_good(opt(), ['a', 'b', 'c'])139 def test_file_list_opt_list_mix_space_comma(self):140 class opt(object):141 inline = 'a b,c,d e'142 self.__test_parsing_inline_good(opt(), ['a', 'b', 'c', 'd', 'e'])143 def test_file_list_opt_list_mix_comma_space(self):144 class opt(object):145 inline = 'a b,c, d e'146 self.__test_parsing_inline_good(opt(), ['a', 'b', 'c', 'd', 'e'])147 def test_file_list_opt_list_end_comma_space(self):148 class opt(object):149 inline = 'a b, ,c,, d e, '150 self.__test_parsing_inline_good(opt(), ['a', 'b', 'c', 'd', 'e'])151 def test_file_list_opt_list_escaped_commas(self):152 class opt(object):153 inline = 'a\\,b,c, d'154 self.__test_parsing_inline_good(opt(), ['a,b', 'c', 'd'])155 def test_file_list_opt_list_escaped_commas_slashes(self):156 class opt(object):157 inline = 'a\\,b\\\\\\,c,d,e'158 self.__test_parsing_inline_good(opt(), ['a,b\\,c', 'd', 'e'])159 def test_file_list_add_on_space(self):160 self.__test_parsing_leftover_good(['a','c','b'],161 ['a', 'b', 'c'])162 def test_file_list_add_on_mix_space_comma(self):163 self.__test_parsing_leftover_good(['a', 'c','b,d'],164 ['a', 'b', 'c', 'd'])165 def test_file_list_add_on_mix_comma_space(self):166 self.__test_parsing_leftover_good(['a', 'c', 'b,', 'd'],167 ['a', 'b', 'c', 'd'])168 def test_file_list_add_on_end_comma_space(self):169 self.__test_parsing_leftover_good(['a', 'c', 'b,', 'd,', ','],170 ['a', 'b', 'c', 'd'])171 def test_file_list_add_on_escaped_commas(self):172 self.__test_parsing_leftover_good(['a', 'c', 'b,', 'd\\,e\\,f'],173 ['a', 'b', 'c', 'd,e,f'])174 def test_file_list_add_on_escaped_commas_slashes(self):175 self.__test_parsing_leftover_good(['a', 'c', 'b,', 'd\\\\\\,e,f'],176 ['a', 'b', 'c', 'd\\,e', 'f'])177 def test_file_list_all_opt(self):178 class opt(object):179 flist_obj = cli_mock.create_file('f\ng\nh\n')180 flist = flist_obj.name181 inline = 'a b,c,d e'182 self.__test_parsing_all_good(opt(), ['i', 'j'],183 ['a', 'b', 'c', 'd', 'e',184 'f', 'g', 'h', 'i', 'j'])185 def test_file_list_all_opt_empty_file(self):186 class opt(object):187 flist_obj = cli_mock.create_file('')188 flist = flist_obj.name189 inline = 'a b,c,d e'190 self.__test_parsing_all_bad(opt(), ['i', 'j'])191 def test_file_list_all_opt_in_common(self):192 class opt(object):193 flist_obj = cli_mock.create_file('f\nc\na\n')194 flist = flist_obj.name195 inline = 'a b,c,d e'196 self.__test_parsing_all_good(opt(), ['i','j,d'],197 ['a', 'b', 'c', 'd', 'e', 'f', 'i', 'j'])198 def test_file_list_all_opt_in_common_space(self):199 class opt(object):200 flist_obj = cli_mock.create_file('a b c\nd,e\nf\ng')201 flist = flist_obj.name202 inline = 'a b,c,d h'203 self.__test_parsing_all_good(opt(), ['i','j,d'],204 ['a', 'b', 'c', 'd', 'e',205 'f', 'g', 'h', 'i', 'j'])206 def test_file_list_all_opt_in_common_weird(self):207 class opt(object):208 flist_obj = cli_mock.create_file('a b c\nd,e\nf\ng, \n, ,,')209 flist = flist_obj.name210 inline = 'a b,c,d h, , ,, '211 self.__test_parsing_all_good(opt(), ['i','j,d'],212 ['a', 'b', 'c', 'd', 'e',213 'f', 'g', 'h', 'i', 'j'])214 def test_file_list_all_opt_in_common_escaped_commas(self):215 class opt(object):216 flist_obj = cli_mock.create_file('a\\,b\\,c\nd,e\nf\ng')217 flist = flist_obj.name218 inline = 'a\\,b\\,c,d h'219 self.__test_parsing_all_good(opt(), ['i','j,d'],220 ['a,b,c', 'd', 'e', 'f', 'g', 'h',221 'i', 'j'])222 def test_file_list_all_opt_in_common_escaped_commas_slashes(self):223 class opt(object):224 flist_obj = cli_mock.create_file('a\\,b\\\\\\,c\nd,e\nf,ghi, ,, j,')225 flist = flist_obj.name226 inline = 'a\\,b\\\\\\,c,d h,ijk'227 self.__test_parsing_all_good(opt(), ['i','j,d'],228 ['a,b\\,c', 'd', 'e', 'f', 'ghi', 'h',229 'i', 'j', 'ijk'])230class atest_unittest(cli_mock.cli_unittest):231 def setUp(self):232 super(atest_unittest, self).setUp()233 self.atest = topic_common.atest()234 self.atest.afe = rpc.afe_comm()235 if 'AUTOTEST_WEB' in os.environ:236 del os.environ['AUTOTEST_WEB']237 def tearDown(self):238 self.atest = None239 super(atest_unittest, self).tearDown()240 def test_invalid_arg_kill(self):241 self.atest.kill_on_failure = True242 self.god.mock_io()243 sys.exit.expect_call(1).and_raises(cli_mock.ExitException)244 self.assertRaises(cli_mock.ExitException,245 self.atest.invalid_arg, 'This is bad')246 (output, err) = self.god.unmock_io()247 self.god.check_playback()248 self.assert_(err.find('This is bad') >= 0)249 def test_invalid_arg_continue(self):250 self.god.mock_io()251 self.atest.invalid_arg('This is sort of ok')252 (output, err) = self.god.unmock_io()253 self.assert_(err.find('This is sort of ok') >= 0)254 def test_failure_continue(self):255 self.atest.failure('This is partly bad', item='item0',256 what_failed='something important')257 err = self.atest.failed['something important']258 self.assert_('This is partly bad' in err.keys())259 def test_failure_continue_multiple_different_errors(self):260 self.atest.failure('This is partly bad', item='item0',261 what_failed='something important')262 self.atest.failure('This is really bad', item='item0',263 what_failed='something really important')264 err = self.atest.failed['something important']265 self.assert_('This is partly bad' in err)266 self.assert_('This is really bad' not in err)267 err = self.atest.failed['something really important']268 self.assert_('This is partly bad' not in err)269 self.assert_('This is really bad' in err)270 def test_failure_continue_multiple_same_errors(self):271 self.atest.failure('This is partly bad', item='item0',272 what_failed='something important')273 self.atest.failure('This is really bad', item='item1',274 what_failed='something important')275 errs = self.atest.failed['something important']276 self.assert_('This is partly bad' in errs)277 self.assert_('This is really bad' in errs)278 self.assert_(set(['item0']) in errs.values())279 self.assert_(set(['item1']) in errs.values())280 def test_failure_continue_multiple_errors_mixed(self):281 self.atest.failure('This is partly bad', item='item0',282 what_failed='something important')283 self.atest.failure('This is really bad', item='item0',284 what_failed='something really important')285 self.atest.failure('This is really bad', item='item1',286 what_failed='something important')287 errs = self.atest.failed['something important']288 self.assert_('This is partly bad' in errs)289 self.assert_('This is really bad' in errs)290 self.assert_(set(['item0']) in errs.values())291 self.assert_(set(['item1']) in errs.values())292 errs = self.atest.failed['something really important']293 self.assert_('This is really bad' in errs)294 self.assert_('This is partly bad' not in errs)295 self.assert_(set(['item0']) in errs.values())296 self.assert_(set(['item1']) not in errs.values())297 def test_failure_continue_multiple_errors_mixed_same_error(self):298 self.atest.failure('This is partly bad', item='item0',299 what_failed='something important')300 self.atest.failure('This is really bad', item='item0',301 what_failed='something really important')302 self.atest.failure('This is partly bad', item='item1',303 what_failed='something important')304 errs = self.atest.failed['something important']305 self.assert_('This is partly bad' in errs)306 self.assert_('This is really bad' not in errs)307 self.assert_(set(['item0', 'item1']) in errs.values())308 errs = self.atest.failed['something really important']309 self.assert_('This is really bad' in errs)310 self.assert_('This is partly bad' not in errs)311 self.assert_(set(['item0']) in errs.values())312 self.assert_(set(['item1']) not in errs.values())313 def test_failure_exit(self):314 self.atest.kill_on_failure = True315 self.god.mock_io()316 sys.exit.expect_call(1).and_raises(cli_mock.ExitException)317 self.assertRaises(cli_mock.ExitException,318 self.atest.failure, 'This is partly bad')319 (output, err) = self.god.unmock_io()320 self.god.check_playback()321 self.assert_(err.find('This is partly bad') >= 0)322 def test_failure_exit_item(self):323 self.atest.kill_on_failure = True324 self.god.mock_io()325 sys.exit.expect_call(1).and_raises(cli_mock.ExitException)326 self.assertRaises(cli_mock.ExitException,327 self.atest.failure, 'This is partly bad',328 item='item0')329 (output, err) = self.god.unmock_io()330 self.god.check_playback()331 self.assertWords(err, ['This is partly bad'], ['item0'])332 def test_show_all_failures_common(self):333 self.atest.failure('This is partly bad', item='item0',334 what_failed='something important')335 self.atest.failure('This is partly bad', item='item1',336 what_failed='something important')337 self.god.mock_io()338 self.atest.show_all_failures()339 (output, err) = self.god.unmock_io()340 self.assertWords(err, ['something important',341 'This is partly bad', 'item0', 'item1'])342 def test_parse_add_on(self):343 flist = cli_mock.create_file('host1\nhost2\nleft2')344 sys.argv = ['atest', '--web', 'fooweb', '--parse',345 '--kill-on-failure', 'left1', 'left2', '-M', flist.name]346 self.atest.parser.add_option('-M', '--mlist', type='string')347 item_info = topic_common.item_parse_info(attribute_name='hosts',348 filename_option='mlist',349 use_leftover=True)350 (options, leftover) = self.atest.parse([item_info])351 self.assertEqualNoOrder(self.atest.hosts,352 ['left1', 'left2', 'host1', 'host2'])353 self.assertEqual({'mlist': flist.name,354 'web_server': 'fooweb',355 'parse': True,356 'parse_delim': '|',357 'kill_on_failure': True,358 'verbose': False,359 'no_confirmation': False,360 'debug': False}, options)361 self.assertEqual(leftover, [])362 flist.clean()363 def test_parse_no_add_on(self):364 flist = cli_mock.create_file('host1\nhost2\nleft2')365 sys.argv = ['atest', '--web', 'fooweb', '--parse', '-g',366 '--kill-on-failure', 'left1', 'left2', '-M', flist.name]367 self.atest.parser.add_option('-M', '--mlist', type='string')368 item_info = topic_common.item_parse_info(attribute_name='hosts',369 filename_option='mlist')370 (options, leftover) = self.atest.parse([item_info])371 self.assertEqualNoOrder(self.atest.hosts,372 ['left2', 'host1', 'host2'])373 self.assertEqual({'mlist': flist.name,374 'web_server': 'fooweb',375 'parse': True,376 'parse_delim': '|',377 'kill_on_failure': True,378 'verbose': False,379 'no_confirmation': False,380 'debug': True}, options)381 self.assertEqual(leftover, ['left1', 'left2'])382 flist.clean()383 def test_parse_add_on_first(self):384 flist = cli_mock.create_file('host1\nhost2\nleft2')385 ulist = cli_mock.create_file('user1\nuser2\nuser3\n')386 sys.argv = ['atest', '-g', '--parse', '--ulist', ulist.name,387 '-u', 'myuser,youruser',388 '--kill-on-failure', 'left1', 'left2', '-M', flist.name]389 self.atest.parser.add_option('-M', '--mlist', type='string')390 self.atest.parser.add_option('-U', '--ulist', type='string')391 self.atest.parser.add_option('-u', '--user', type='string')392 host_info = topic_common.item_parse_info(attribute_name='hosts',393 filename_option='mlist',394 use_leftover=True)395 user_info = topic_common.item_parse_info(attribute_name='users',396 inline_option='user',397 filename_option='ulist')398 (options, leftover) = self.atest.parse([host_info, user_info])399 self.assertEqualNoOrder(self.atest.hosts,400 ['left1', 'left2', 'host1', 'host2'])401 self.assertEqualNoOrder(self.atest.users,402 ['user1', 'user2', 'user3',403 'myuser', 'youruser'])404 self.assertEqual({'mlist': flist.name,405 'ulist': ulist.name,406 'user': 'myuser,youruser',407 'web_server': None,408 'parse': True,409 'parse_delim': '|',410 'kill_on_failure': True,411 'verbose': False,412 'no_confirmation': False,413 'debug': True}, options)414 self.assertEqual(leftover, [])415 flist.clean()416 ulist.clean()417 def test_parse_add_on_second(self):418 flist = cli_mock.create_file('host1\nhost2\nleft2')419 ulist = cli_mock.create_file('user1\nuser2\nuser3\n')420 sys.argv = ['atest', '-g', '--parse', '-U', ulist.name,421 '-u', 'myuser,youruser',422 '--kill-on-failure', 'left1', 'left2', '-M', flist.name]423 self.atest.parser.add_option('-M', '--mlist', type='string')424 self.atest.parser.add_option('-U', '--ulist', type='string')425 self.atest.parser.add_option('-u', '--user', type='string')426 host_info = topic_common.item_parse_info(attribute_name='hosts',427 filename_option='mlist',428 use_leftover=True)429 user_info = topic_common.item_parse_info(attribute_name='users',430 inline_option='user',431 filename_option='ulist')432 (options, leftover) = self.atest.parse([host_info, user_info])433 self.assertEqualNoOrder(self.atest.hosts,434 ['left1', 'left2', 'host1', 'host2'])435 self.assertEqualNoOrder(self.atest.users,436 ['user1', 'user2', 'user3',437 'myuser', 'youruser'])438 self.assertEqual({'mlist': flist.name,439 'ulist': ulist.name,440 'user': 'myuser,youruser',441 'web_server': None,442 'parse': True,443 'parse_delim': '|',444 'kill_on_failure': True,445 'verbose': False,446 'no_confirmation': False,447 'debug': True}, options)448 self.assertEqual(leftover, [])449 flist.clean()450 ulist.clean()451 def test_parse_all_opts(self):452 flist = cli_mock.create_file('host1\nhost2\nleft2')453 ulist = cli_mock.create_file('user1\nuser2\nuser3\n')454 sys.argv = ['atest', '-g', '--parse', '--ulist', ulist.name,455 '-u', 'myuser,youruser',456 '--kill-on-failure', '-M', flist.name, 'left1', 'left2']457 self.atest.parser.add_option('-M', '--mlist', type='string')458 self.atest.parser.add_option('-U', '--ulist', type='string')459 self.atest.parser.add_option('-u', '--user', type='string')460 host_info = topic_common.item_parse_info(attribute_name='hosts',461 filename_option='mlist',462 use_leftover=True)463 user_info = topic_common.item_parse_info(attribute_name='users',464 inline_option='user',465 filename_option='ulist')466 (options, leftover) = self.atest.parse([host_info, user_info])467 self.assertEqualNoOrder(self.atest.hosts,468 ['left1', 'left2', 'host1', 'host2'])469 self.assertEqualNoOrder(self.atest.users,470 ['user1', 'user2', 'user3',471 'myuser', 'youruser'])472 self.assertEqual({'mlist': flist.name,473 'ulist': ulist.name,474 'user': 'myuser,youruser',475 'web_server': None,476 'parse': True,477 'parse_delim': '|',478 'kill_on_failure': True,479 'verbose': False,480 'no_confirmation': False,481 'debug': True}, options)482 self.assertEqual(leftover, [])483 flist.clean()484 ulist.clean()485 def test_parse_no_add_on_2(self):486 flist = cli_mock.create_file('host1\nhost2\nleft2')487 ulist = cli_mock.create_file('user1\nuser2\nuser3\n')488 sys.argv = ['atest', '-U', ulist.name,489 '--kill-on-failure', '-M', flist.name]490 self.atest.parser.add_option('-M', '--mlist', type='string')491 self.atest.parser.add_option('-U', '--ulist', type='string')492 self.atest.parser.add_option('-u', '--user', type='string')493 host_info = topic_common.item_parse_info(attribute_name='hosts',494 filename_option='mlist',495 use_leftover=True)496 user_info = topic_common.item_parse_info(attribute_name='users',497 inline_option='user',498 filename_option='ulist')499 (options, leftover) = self.atest.parse([host_info, user_info])500 self.assertEqualNoOrder(self.atest.hosts,501 ['left2', 'host1', 'host2'])502 self.assertEqualNoOrder(self.atest.users,503 ['user1', 'user2', 'user3'])504 self.assertEqual({'mlist': flist.name,505 'ulist': ulist.name,506 'user': None,507 'web_server': None,508 'parse': False,509 'parse_delim': '|',510 'kill_on_failure': True,511 'verbose': False,512 'no_confirmation': False,513 'debug': False}, options)514 self.assertEqual(leftover, [])515 flist.clean()516 ulist.clean()517 def test_parse_no_flist_add_on(self):518 sys.argv = ['atest', '-g', '--parse', '-u', 'myuser,youruser',519 '--kill-on-failure', 'left1', 'left2']520 self.atest.parser.add_option('-M', '--mlist', type='string')521 self.atest.parser.add_option('-U', '--ulist', type='string')522 self.atest.parser.add_option('-u', '--user', type='string')523 host_info = topic_common.item_parse_info(attribute_name='hosts',524 use_leftover=True)525 user_info = topic_common.item_parse_info(attribute_name='users',526 inline_option='user')527 (options, leftover) = self.atest.parse([host_info, user_info])528 self.assertEqualNoOrder(self.atest.hosts,529 ['left1', 'left2'])530 self.assertEqualNoOrder(self.atest.users,531 ['myuser', 'youruser'])532 self.assertEqual({'mlist': None,533 'ulist': None,534 'user': 'myuser,youruser',535 'web_server': None,536 'parse': True,537 'parse_delim': '|',538 'kill_on_failure': True,539 'verbose': False,540 'no_confirmation': False,541 'debug': True}, options)542 self.assertEqual(leftover, [])543 def test_parse_no_flist_no_add_on(self):544 sys.argv = ['atest', '-u', 'myuser,youruser', '--kill-on-failure',545 '-a', 'acl1,acl2']546 self.atest.parser.add_option('-u', '--user', type='string')547 self.atest.parser.add_option('-a', '--acl', type='string')548 acl_info = topic_common.item_parse_info(attribute_name='acls',549 inline_option='acl')550 user_info = topic_common.item_parse_info(attribute_name='users',551 inline_option='user')552 (options, leftover) = self.atest.parse([user_info, acl_info])553 self.assertEqualNoOrder(self.atest.acls,554 ['acl1', 'acl2'])555 self.assertEqualNoOrder(self.atest.users,556 ['myuser', 'youruser'])557 self.assertEqual({'user': 'myuser,youruser',558 'acl': 'acl1,acl2',559 'web_server': None,560 'parse': False,561 'parse_delim': '|',562 'kill_on_failure': True,563 'verbose': False,564 'no_confirmation': False,565 'debug': False}, options)566 self.assertEqual(leftover, [])567 def test_parse_req_items_ok(self):568 sys.argv = ['atest', '-u', 'myuser,youruser']569 self.atest.parser.add_option('-u', '--user', type='string')570 user_info = topic_common.item_parse_info(attribute_name='users',571 inline_option='user')572 (options, leftover) = self.atest.parse([user_info],573 req_items='users')574 self.assertEqualNoOrder(self.atest.users,575 ['myuser', 'youruser'])576 self.assertEqual({'user': 'myuser,youruser',577 'web_server': None,578 'parse': False,579 'parse_delim': '|',580 'kill_on_failure': False,581 'verbose': False,582 'no_confirmation': False,583 'debug': False}, options)584 self.assertEqual(leftover, [])585 def test_parse_req_items_missing(self):586 sys.argv = ['atest', '-u', 'myuser,youruser', '--kill-on-failure']587 self.atest.parser.add_option('-u', '--user', type='string')588 acl_info = topic_common.item_parse_info(attribute_name='acls',589 inline_option='acl')590 user_info = topic_common.item_parse_info(attribute_name='users',591 inline_option='user')592 self.god.mock_io()593 sys.exit.expect_call(1).and_raises(cli_mock.ExitException)594 self.assertRaises(cli_mock.ExitException,595 self.atest.parse,596 [user_info, acl_info],597 'acls')598 self.assertEqualNoOrder(self.atest.users,599 ['myuser', 'youruser'])600 self.assertEqualNoOrder(self.atest.acls, [])601 self.god.check_playback()602 self.god.unmock_io()603 def test_parse_bad_option(self):604 sys.argv = ['atest', '--unknown']605 self.god.stub_function(self.atest.parser, 'error')606 self.atest.parser.error.expect_call('no such option: --unknown').and_return(None)607 self.atest.parse()608 self.god.check_playback()609 def test_parse_all_set(self):610 sys.argv = ['atest', '--web', 'fooweb', '--parse', '--debug',611 '--kill-on-failure', '--verbose', 'left1', 'left2',612 '--parse-delim', '?']613 (options, leftover) = self.atest.parse()614 self.assertEqual({'web_server': 'fooweb',...
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!