<s> import unittest <EOL> from robot . output import LOGGER <EOL> from robot . parsing . model import TestCaseFile <EOL> from robot . parsing . populators import FromFilePopulator , DataRow , FromDirectoryPopulator <EOL> from robot . utils import StringIO , is_string <EOL> from robot . utils . asserts import assert_equal , assert_true , assert_false <EOL> LOGGER . unregister_console_logger ( ) <EOL> class _MockLogger ( object ) : <EOL> def __init__ ( self ) : <EOL> self . _output = StringIO ( ) <EOL> def message ( self , msg ) : <EOL> self . _output . write ( msg . message ) <EOL> def value ( self ) : <EOL> return self . _output . getvalue ( ) <EOL> class FromDirectoryPopulatorTest ( unittest . TestCase ) : <EOL> def test_included_suites_with_dot ( self ) : <EOL> create_included_suites = FromDirectoryPopulator ( ) . _create_included_suites <EOL> for inp , exp in [ ( [ ] , [ ] ) , <EOL> ( [ '<STR_LIT:foo>' ] , [ '<STR_LIT:foo>' ] ) , <EOL> ( [ '<STR_LIT>' ] , [ '<STR_LIT>' , '<STR_LIT>' ] ) , <EOL> ( [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:z>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:3>' , '<STR_LIT>' , '<STR_LIT:y>' , '<STR_LIT:z>' ] ) ] : <EOL> assert_equal ( list ( create_included_suites ( inp ) ) , exp ) <EOL> class _PopulatorTest ( unittest . TestCase ) : <EOL> def setUp ( self ) : <EOL> self . _datafile = TestCaseFile ( ) <EOL> self . _datafile . directory = '<STR_LIT>' <EOL> self . _populator = FromFilePopulator ( self . _datafile ) <EOL> self . _logger = _MockLogger ( ) <EOL> LOGGER . disable_message_cache ( ) <EOL> LOGGER . register_logger ( self . _logger ) <EOL> def tearDown ( self ) : <EOL> LOGGER . unregister_logger ( self . _logger ) <EOL> def _assert_no_parsing_errors ( self ) : <EOL> assert_true ( self . _logger . value ( ) == '<STR_LIT>' , self . _logger . value ( ) ) <EOL> def _start_table ( self , name ) : <EOL> if is_string ( name ) : <EOL> name = [ name ] <EOL> return self . _populator . start_table ( name ) <EOL> def _create_table ( self , name , rows , eof = True ) : <EOL> self . _start_table ( name ) <EOL> for r in rows : <EOL> self . _populator . add ( r ) <EOL> if eof : <EOL> self . _populator . eof ( ) <EOL> def _assert_setting ( self , name , exp_value , exp_comment = None ) : <EOL> setting = self . _setting_with ( name ) <EOL> assert_equal ( setting . value , exp_value ) <EOL> self . _assert_comment ( setting , exp_comment ) <EOL> def _assert_fixture ( self , fixture_name , exp_name , exp_args , exp_comment = None ) : <EOL> fixture = self . _setting_with ( fixture_name ) <EOL> self . _assert_name_and_args ( fixture , exp_name , exp_args ) <EOL> self . _assert_comment ( fixture , exp_comment ) <EOL> def _assert_import ( self , index , exp_name , exp_args , exp_comment = None ) : <EOL> imp = self . _datafile . setting_table . imports [ index ] <EOL> self . _assert_name_and_args ( imp , exp_name , exp_args ) <EOL> self . _assert_comment ( imp , exp_comment ) <EOL> def _assert_name_and_args ( self , item , exp_name , exp_args ) : <EOL> assert_equal ( item . name , exp_name ) <EOL> assert_equal ( item . args , exp_args ) <EOL> def _assert_meta ( self , index , exp_name , exp_value , exp_comment = None ) : <EOL> meta = self . _setting_with ( '<STR_LIT>' ) [ index ] <EOL> assert_equal ( meta . name , exp_name ) <EOL> assert_equal ( meta . value , exp_value ) <EOL> self . _assert_comment ( meta , exp_comment ) <EOL> def _assert_tags ( self , tag_name , exp_value ) : <EOL> tag = self . _setting_with ( tag_name ) <EOL> assert_equal ( tag . value , exp_value ) <EOL> def _assert_variable ( self , index , exp_name , exp_value , exp_comment = [ ] ) : <EOL> var = self . _datafile . variable_table . variables [ index ] <EOL> assert_equal ( var . name , exp_name ) <EOL> assert_equal ( var . value , exp_value ) <EOL> self . _assert_comment ( var , exp_comment ) <EOL> def _assert_comment ( self , item , exp_comment ) : <EOL> if exp_comment : <EOL> assert_equal ( item . comment . as_list ( ) , exp_comment ) <EOL> def _setting_with ( self , name ) : <EOL> return getattr ( self . _datafile . setting_table , name ) <EOL> def _nth_test ( self , index ) : <EOL> return self . _datafile . testcase_table . tests [ index - <NUM_LIT:1> ] <EOL> def _first_test ( self ) : <EOL> return self . _nth_test ( <NUM_LIT:1> ) <EOL> def _nth_uk ( self , index ) : <EOL> return self . _datafile . keyword_table . keywords [ index - <NUM_LIT:1> ] <EOL> def _number_of_steps_should_be ( self , test , expected_steps ) : <EOL> assert_equal ( len ( test . steps ) , expected_steps ) <EOL> class TablePopulatorTest ( _PopulatorTest ) : <EOL> def test_starting_valid_table ( self ) : <EOL> for name in [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] : <EOL> assert_true ( self . _start_table ( name ) ) <EOL> def test_table_headers ( self ) : <EOL> header_list = [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> self . _create_table ( header_list , [ ] ) <EOL> setting_table = self . _datafile . setting_table <EOL> assert_equal ( setting_table . header , header_list ) <EOL> assert_equal ( setting_table . name , header_list [ <NUM_LIT:0> ] ) <EOL> def test_starting_invalid_table ( self ) : <EOL> assert_false ( self . _start_table ( '<STR_LIT>' ) ) <EOL> def test_adding_empty_row_should_not_fail ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ ] ] ) <EOL> def test_curdir_handling ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ] ) <EOL> assert_equal ( self . _first_test ( ) . steps [ <NUM_LIT:0> ] . args , <EOL> [ self . _datafile . directory ] ) <EOL> def test_turn_off_curdir_handling ( self ) : <EOL> from robot . parsing import populators <EOL> populators . PROCESS_CURDIR = False <EOL> self . setUp ( ) <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ] ) <EOL> assert_equal ( self . _first_test ( ) . steps [ <NUM_LIT:0> ] . args , [ '<STR_LIT>' ] ) <EOL> populators . PROCESS_CURDIR = True <EOL> def test_whitespace_is_ignored ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT:U+0020>' , '<STR_LIT>' , '<STR_LIT:foo>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT:U+0020>' ] , <EOL> [ '<STR_LIT:\t>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ] ) <EOL> test = self . _first_test ( ) <EOL> assert_equal ( test . name , '<STR_LIT>' ) <EOL> self . _number_of_steps_should_be ( test , <NUM_LIT:1> ) <EOL> assert_equal ( test . tags . value , [ '<STR_LIT:foo>' ] ) <EOL> def test_escaping_empty_cells ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' , '<STR_LIT:\\>' ] ] , ) <EOL> self . _assert_setting ( '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT:test>' , <EOL> '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:foo>' , '<STR_LIT:\\>' ] ] , ) <EOL> assert_equal ( self . _first_test ( ) . steps [ <NUM_LIT:0> ] . args , [ '<STR_LIT>' , '<STR_LIT:foo>' , '<STR_LIT>' ] ) <EOL> def test_populator_happy_path_workflow ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' , '<STR_LIT>' ] ] , eof = False ) <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' , '<STR_LIT:value>' ] ] , eof = False ) <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ] , eof = False ) <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ] , eof = False ) <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ] , eof = False ) <EOL> self . _populator . eof ( ) <EOL> self . _assert_import ( <NUM_LIT:0> , '<STR_LIT>' , [ ] ) <EOL> assert_equal ( len ( self . _datafile . variable_table . variables ) , <NUM_LIT:1> ) <EOL> assert_equal ( len ( self . _datafile . testcase_table . tests ) , <NUM_LIT:1> ) <EOL> assert_equal ( len ( self . _nth_uk ( <NUM_LIT:1> ) . steps ) , <NUM_LIT:1> ) <EOL> class SettingTablePopulatingTest ( _PopulatorTest ) : <EOL> def test_testcasefile_settings ( self ) : <EOL> self . _try_testcasefile_settings_with_postfix ( '<STR_LIT>' ) <EOL> def test_testcasefile_settings_with_colon ( self ) : <EOL> self . _try_testcasefile_settings_with_postfix ( '<STR_LIT::>' ) <EOL> def test_testcasefile_settings_with_colon_and_spaces ( self ) : <EOL> self . _try_testcasefile_settings_with_postfix ( '<STR_LIT>' ) <EOL> def _try_testcasefile_settings_with_postfix ( self , postfix ) : <EOL> doc = '<STR_LIT>' <EOL> template = '<STR_LIT>' <EOL> more_doc = '<STR_LIT>' <EOL> force_tags = '<STR_LIT>' <EOL> more_tags = '<STR_LIT>' <EOL> even_more_tags = '<STR_LIT>' <EOL> default_tags = '<STR_LIT:default>' <EOL> name , args = '<STR_LIT>' , ( '<STR_LIT>' , '<STR_LIT>' ) <EOL> table = [ ( '<STR_LIT>' , doc ) , <EOL> ( '<STR_LIT>' , more_doc ) , <EOL> ( '<STR_LIT>' , name ) , <EOL> ( '<STR_LIT>' , ) + args , <EOL> ( '<STR_LIT>' , name ) + args , <EOL> ( '<STR_LIT>' , force_tags ) , <EOL> ( '<STR_LIT>' , more_tags ) , <EOL> ( '<STR_LIT>' , default_tags ) , <EOL> ( '<STR_LIT>' , more_tags , even_more_tags ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , '<STR_LIT>' ) , <EOL> ( '<STR_LIT>' , more_doc ) , <EOL> ( '<STR_LIT>' , template ) ] <EOL> table = list ( self . _postfix_settings ( table , postfix ) ) <EOL> self . _create_table ( '<STR_LIT>' , table ) <EOL> self . _assert_setting ( '<STR_LIT>' , doc + '<STR_LIT>' + more_doc ) <EOL> self . _assert_fixture ( '<STR_LIT>' , name , list ( args ) ) <EOL> self . _assert_fixture ( '<STR_LIT>' , name , list ( args ) ) <EOL> self . _assert_tags ( '<STR_LIT>' , [ default_tags , more_tags , even_more_tags ] ) <EOL> self . _assert_tags ( '<STR_LIT>' , [ force_tags , more_tags ] ) <EOL> timeout = self . _setting_with ( '<STR_LIT>' ) <EOL> assert_equal ( timeout . value , '<STR_LIT>' ) <EOL> assert_equal ( timeout . message , '<STR_LIT>' + more_doc ) <EOL> self . _assert_setting ( '<STR_LIT>' , template ) <EOL> def _postfix_settings ( self , table , postfix ) : <EOL> for row in table : <EOL> first = row [ <NUM_LIT:0> ] + postfix if row [ <NUM_LIT:0> ] != '<STR_LIT>' else row [ <NUM_LIT:0> ] <EOL> yield ( first , ) + row [ <NUM_LIT:1> : ] <EOL> def test_imports ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' ] ] ) <EOL> assert_equal ( len ( self . _datafile . setting_table . imports ) , <NUM_LIT:4> ) <EOL> self . _assert_import ( <NUM_LIT:0> , '<STR_LIT>' , [ ] ) <EOL> self . _assert_import ( <NUM_LIT:1> , '<STR_LIT>' , [ '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> self . _assert_import ( <NUM_LIT:2> , '<STR_LIT>' , [ ] ) <EOL> self . _assert_import ( <NUM_LIT:3> , '<STR_LIT>' , [ ] ) <EOL> def test_free_suite_metadata ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ] ) <EOL> self . _assert_meta ( <NUM_LIT:0> , '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . _assert_meta ( <NUM_LIT:1> , '<STR_LIT>' , '<STR_LIT>' ) <EOL> def test_line_continuation ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] <EOL> ] ) <EOL> self . _assert_setting ( '<STR_LIT>' , '<STR_LIT>' ) <EOL> self . _assert_setting ( '<STR_LIT>' , [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> def test_invalid_settings ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' , '<STR_LIT>' ] ] ) <EOL> assert_equal ( self . _logger . value ( ) , "<STR_LIT>" <EOL> "<STR_LIT>" ) <EOL> def test_continuing_in_the_begining_of_the_table ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' ] ] ) <EOL> assert_equal ( self . _logger . value ( ) , "<STR_LIT>" <EOL> "<STR_LIT>" ) <EOL> class DocumentationCatenationTest ( _PopulatorTest ) : <EOL> def test_multiple_cells_are_catenated_with_space ( self ) : <EOL> self . _assert_doc ( [ [ '<STR_LIT>' , '<STR_LIT>' ] ] , <EOL> '<STR_LIT>' ) <EOL> def test_multiple_rows_are_catenated_with_newline ( self ) : <EOL> self . _assert_doc ( [ [ '<STR_LIT>' ] , [ '<STR_LIT>' , '<STR_LIT>' ] ] , <EOL> '<STR_LIT>' ) <EOL> def test_newline_is_not_added_if_it_already_exists ( self ) : <EOL> self . _assert_doc ( [ [ '<STR_LIT>' ] , [ '<STR_LIT>' ] ] , <EOL> '<STR_LIT>' ) <EOL> def test_newline_is_not_added_if_it_already_exists2 ( self ) : <EOL> self . _assert_doc ( [ [ '<STR_LIT>' ] , [ '<STR_LIT>' ] , [ '<STR_LIT>' ] ] , <EOL> '<STR_LIT>' ) <EOL> def test_backslash_escapes_newline_adding ( self ) : <EOL> self . _assert_doc ( [ [ '<STR_LIT>' ] , [ '<STR_LIT>' ] ] , <EOL> '<STR_LIT>' ) <EOL> def test_backslash_escapes_newline_adding2 ( self ) : <EOL> self . _assert_doc ( [ [ '<STR_LIT>' ] , [ '<STR_LIT>' , '<STR_LIT>' ] ] , <EOL> '<STR_LIT>' ) <EOL> def _assert_doc ( self , doc_lines , expected ) : <EOL> doc_lines = [ [ '<STR_LIT>' ] + line for line in doc_lines ] <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' ] ] + doc_lines ) <EOL> self . _assert_setting ( '<STR_LIT>' , expected ) <EOL> class MetadataCatenationTest ( _PopulatorTest ) : <EOL> def test_value_on_many_cells_is_catenated_with_spaces ( self ) : <EOL> self . _assert_metadata_value ( [ [ '<STR_LIT:value>' , '<STR_LIT>' , '<STR_LIT>' ] ] , <EOL> '<STR_LIT>' ) <EOL> def test_value_on_many_lines_is_catenated_with_newlines ( self ) : <EOL> self . _assert_metadata_value ( [ [ '<STR_LIT:value>' ] , [ '<STR_LIT>' ] , [ '<STR_LIT>' ] ] , <EOL> '<STR_LIT>' ) <EOL> def _assert_metadata_value ( self , doc_lines , expected ) : <EOL> value_lines = [ [ '<STR_LIT>' ] + line for line in doc_lines ] <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' , '<STR_LIT>' ] ] + value_lines ) <EOL> self . _assert_meta ( <NUM_LIT:0> , '<STR_LIT>' , expected ) <EOL> class VariableTablePopulatingTest ( _PopulatorTest ) : <EOL> def test_populating_variables ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' , '<STR_LIT:value>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ] ) <EOL> assert_equal ( len ( self . _datafile . variable_table . variables ) , <NUM_LIT:3> ) <EOL> self . _assert_variable ( <NUM_LIT:0> , '<STR_LIT>' , [ '<STR_LIT:value>' ] ) <EOL> self . _assert_variable ( <NUM_LIT:1> , '<STR_LIT>' , [ '<STR_LIT>' ] ) <EOL> self . _assert_variable ( <NUM_LIT:2> , '<STR_LIT>' , [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> def test_line_continuation ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ] ) <EOL> self . _assert_variable ( <NUM_LIT:0> , '<STR_LIT>' , [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> def test_continuing_in_the_begining_of_the_table ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' , '<STR_LIT>' ] ] ) <EOL> self . _assert_variable ( <NUM_LIT:0> , '<STR_LIT>' , [ '<STR_LIT>' ] ) <EOL> class TestCaseTablePopulatingTest ( _PopulatorTest ) : <EOL> def test_test_case_populating ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ] ) <EOL> assert_equal ( len ( self . _datafile . testcase_table . tests ) , <NUM_LIT:2> ) <EOL> test = self . _first_test ( ) <EOL> assert_equal ( len ( test . steps ) , <NUM_LIT:1> ) <EOL> assert_equal ( test . steps [ <NUM_LIT:0> ] . name , '<STR_LIT>' ) <EOL> assert_equal ( len ( self . _first_test ( ) . steps ) , <NUM_LIT:1> ) <EOL> def test_case_name_and_first_step_on_same_row ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' , '<STR_LIT>' ] ] ) <EOL> assert_equal ( len ( self . _first_test ( ) . steps ) , <NUM_LIT:1> ) <EOL> def test_continuing_in_the_begining_of_the_table ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' , '<STR_LIT:foo>' ] ] ) <EOL> assert_equal ( self . _first_test ( ) . name , '<STR_LIT>' ) <EOL> def test_line_continuation ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:foo>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:bar>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ] ) <EOL> self . _number_of_steps_should_be ( ( self . _first_test ( ) ) , <NUM_LIT:1> ) <EOL> self . _number_of_steps_should_be ( self . _nth_test ( <NUM_LIT:2> ) , <NUM_LIT:2> ) <EOL> assert_equal ( self . _nth_test ( <NUM_LIT:2> ) . steps [ <NUM_LIT:0> ] . name , '<STR_LIT>' ) <EOL> assert_equal ( self . _nth_test ( <NUM_LIT:2> ) . steps [ <NUM_LIT:0> ] . args , [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> def test_unnamed_testcase ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' , '<STR_LIT:foo>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , "<STR_LIT>" ] ] ) <EOL> test = self . _first_test ( ) <EOL> assert_equal ( test . name , '<STR_LIT>' ) <EOL> assert_equal ( test . doc . value , "<STR_LIT>" ) <EOL> assert_equal ( test . steps [ <NUM_LIT:0> ] . comment . as_list ( ) , [ '<STR_LIT>' ] ) <EOL> def test_unnamed_test_and_line_continuation ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:foo>' , '<STR_LIT>' ] ] ) <EOL> assert_equal ( self . _first_test ( ) . name , '<STR_LIT>' ) <EOL> assert_equal ( self . _first_test ( ) . steps [ <NUM_LIT:0> ] . name , '<STR_LIT:foo>' ) <EOL> assert_equal ( self . _first_test ( ) . steps [ <NUM_LIT:0> ] . comment . as_list ( ) , [ '<STR_LIT>' ] ) <EOL> def test_test_settings ( self ) : <EOL> self . _try_test_settings ( [ [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ] ) <EOL> def test_test_settings_with_colons ( self ) : <EOL> self . _try_test_settings ( [ [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ] ) <EOL> def _try_test_settings ( self , table ) : <EOL> self . _create_table ( '<STR_LIT>' , table ) <EOL> test = self . _first_test ( ) <EOL> assert_equal ( len ( test . steps ) , <NUM_LIT:1> ) <EOL> assert_equal ( test . doc . value , '<STR_LIT>' ) <EOL> assert_equal ( test . tags . value , [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> def test_invalid_test_settings ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' ] ] ) <EOL> assert_equal ( self . _logger . value ( ) , "<STR_LIT>" <EOL> "<STR_LIT>" <EOL> "<STR_LIT>" <EOL> "<STR_LIT>" ) <EOL> def test_test_template_overrides_setting ( self ) : <EOL> setting_test_template = '<STR_LIT>' <EOL> test_test_template = '<STR_LIT>' <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' , setting_test_template ] ] , <EOL> eof = False ) <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' , '<STR_LIT>' , test_test_template ] ] ) <EOL> test = self . _first_test ( ) <EOL> assert_equal ( test . template . value , test_test_template ) <EOL> class UserKeywordTablePopulatingTest ( _PopulatorTest ) : <EOL> def test_user_keyword_populating ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:bar>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ] ) <EOL> uk = self . _nth_uk ( <NUM_LIT:0> ) <EOL> assert_equal ( len ( uk . steps ) , <NUM_LIT:2> ) <EOL> assert_equal ( uk . args . value , [ '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> assert_equal ( uk . return_ . value , [ '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> def test_continuing_in_the_begining_of_the_table ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' , '<STR_LIT:foo>' ] ] ) <EOL> assert_equal ( self . _nth_uk ( <NUM_LIT:1> ) . name , '<STR_LIT>' ) <EOL> def test_invalid_keyword_settings ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' ] ] ) <EOL> assert_equal ( self . _logger . value ( ) , "<STR_LIT>" <EOL> "<STR_LIT>" <EOL> "<STR_LIT>" <EOL> "<STR_LIT>" ) <EOL> class ForLoopPopulatingTest ( _PopulatorTest ) : <EOL> def test_single_loop ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ] ) <EOL> assert_equal ( len ( self . _first_test ( ) . steps ) , <NUM_LIT:1> ) <EOL> for_loop = self . _first_test ( ) . steps [ <NUM_LIT:0> ] <EOL> assert_equal ( len ( for_loop . steps ) , <NUM_LIT:1> ) <EOL> assert_equal ( for_loop . flavor , '<STR_LIT>' ) <EOL> assert_equal ( for_loop . vars , [ '<STR_LIT>' ] ) <EOL> assert_equal ( for_loop . items , [ '<STR_LIT>' ] ) <EOL> def test_in_range_for_loop ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ] ) <EOL> assert_equal ( len ( self . _first_test ( ) . steps ) , <NUM_LIT:3> ) <EOL> for_loop = self . _first_test ( ) . steps [ <NUM_LIT:1> ] <EOL> assert_equal ( len ( for_loop . steps ) , <NUM_LIT:2> ) <EOL> assert_equal ( for_loop . flavor , '<STR_LIT>' ) <EOL> assert_equal ( for_loop . vars , [ '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> def test_line_continuation ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ] ) <EOL> assert_equal ( len ( self . _first_test ( ) . steps ) , <NUM_LIT:3> ) <EOL> for_loop = self . _first_test ( ) . steps [ <NUM_LIT:1> ] <EOL> assert_equal ( len ( for_loop . steps ) , <NUM_LIT:1> ) <EOL> assert_equal ( for_loop . flavor , '<STR_LIT>' ) <EOL> assert_equal ( for_loop . vars , [ '<STR_LIT>' ] ) <EOL> assert_equal ( for_loop . items , [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> def test_with_empty_body ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:foo>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ] ) <EOL> test = self . _first_test ( ) <EOL> assert_equal ( len ( test . steps ) , <NUM_LIT:2> ) <EOL> assert_equal ( test . steps [ <NUM_LIT:0> ] . steps , [ ] ) <EOL> class TestPopulatingComments ( _PopulatorTest ) : <EOL> def test_setting_table ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' ] , <EOL> ] ) <EOL> self . _assert_no_parsing_errors ( ) <EOL> self . _assert_setting ( '<STR_LIT>' , [ '<STR_LIT>' , '<STR_LIT>' ] , [ '<STR_LIT>' ] ) <EOL> self . _assert_import ( <NUM_LIT:0> , '<STR_LIT>' , [ ] , [ '<STR_LIT>' ] ) <EOL> self . _assert_import ( <NUM_LIT:1> , '<STR_LIT>' , [ ] , [ '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> self . _assert_setting ( '<STR_LIT>' , [ '<STR_LIT>' ] , [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> self . _assert_import ( <NUM_LIT:2> , '<STR_LIT>' , [ '<STR_LIT>' ] , [ '<STR_LIT>' ] ) <EOL> self . _assert_meta ( <NUM_LIT:0> , '<STR_LIT>' , '<STR_LIT>' , [ '<STR_LIT>' ] ) <EOL> def test_variable_table ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT:A>' , '<STR_LIT:B>' , '<STR_LIT:C>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT:1>' , '<STR_LIT:2>' , '<STR_LIT:3>' ] , <EOL> [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' ] ] ) <EOL> self . _assert_no_parsing_errors ( ) <EOL> self . _assert_variable ( <NUM_LIT:0> , '<STR_LIT>' , [ ] , [ '<STR_LIT>' ] ) <EOL> self . _assert_variable ( <NUM_LIT:1> , '<STR_LIT>' , [ '<STR_LIT>' ] , [ '<STR_LIT>' ] ) <EOL> self . _assert_variable ( <NUM_LIT:2> , '<STR_LIT>' , [ '<STR_LIT>' ] , [ '<STR_LIT>' ] ) <EOL> self . _assert_variable ( <NUM_LIT:3> , '<STR_LIT>' , [ ] , [ '<STR_LIT>' , '<STR_LIT:A>' , '<STR_LIT:B>' , '<STR_LIT:C>' ] ) <EOL> self . _assert_variable ( <NUM_LIT:4> , '<STR_LIT>' , [ '<STR_LIT:1>' , '<STR_LIT:2>' , '<STR_LIT:3>' ] ) <EOL> self . _assert_variable ( <NUM_LIT:5> , '<STR_LIT>' , [ ] , [ '<STR_LIT>' ] ) <EOL> self . _assert_variable ( <NUM_LIT:6> , '<STR_LIT>' , [ ] , [ '<STR_LIT>' ] ) <EOL> self . _assert_variable ( <NUM_LIT:7> , '<STR_LIT>' , [ ] , [ '<STR_LIT>' ] ) <EOL> self . _assert_variable ( <NUM_LIT:8> , '<STR_LIT>' , [ '<STR_LIT>' , '<STR_LIT>' ] , [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> self . _assert_variable ( <NUM_LIT:9> , '<STR_LIT>' , [ ] , [ '<STR_LIT>' ] ) <EOL> def test_test_case_table ( self ) : <EOL> self . _create_table ( '<STR_LIT>' , [ [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT:#>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:1>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT:2>' , '<STR_LIT:3>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' ] <EOL> ] ) <EOL> self . _assert_comment ( self . _first_test ( ) . steps [ <NUM_LIT:0> ] , [ '<STR_LIT>' ] ) <EOL> self . _assert_comment ( self . _first_test ( ) . steps [ <NUM_LIT:1> ] , [ '<STR_LIT>' ] ) <EOL> self . _assert_comment ( self . _first_test ( ) . steps [ <NUM_LIT:2> ] , [ '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> self . _assert_comment ( self . _nth_test ( <NUM_LIT:2> ) . steps [ <NUM_LIT:0> ] , [ '<STR_LIT>' ] ) <EOL> self . _assert_comment ( self . _nth_test ( <NUM_LIT:2> ) . steps [ <NUM_LIT:1> ] , [ '<STR_LIT:#>' , '<STR_LIT>' ] ) <EOL> assert_equal ( self . _nth_test ( <NUM_LIT:2> ) . steps [ <NUM_LIT:1> ] . args , [ '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> self . _assert_comment ( self . _nth_test ( <NUM_LIT:3> ) . steps [ <NUM_LIT:0> ] , [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> self . _assert_comment ( self . _nth_test ( <NUM_LIT:3> ) . steps [ <NUM_LIT:0> ] . steps [ <NUM_LIT:0> ] , [ '<STR_LIT>' ] ) <EOL> self . _assert_comment ( self . _nth_test ( <NUM_LIT:3> ) . steps [ <NUM_LIT:0> ] . steps [ <NUM_LIT:1> ] , [ '<STR_LIT>' ] ) <EOL> self . _assert_comment ( self . _nth_test ( <NUM_LIT:3> ) . steps [ <NUM_LIT:0> ] . steps [ <NUM_LIT:2> ] , [ '<STR_LIT>' ] ) <EOL> self . _assert_comment ( self . _nth_test ( <NUM_LIT:3> ) . steps [ <NUM_LIT:1> ] , [ '<STR_LIT:#>' , '<STR_LIT>' ] ) <EOL> self . _number_of_steps_should_be ( self . _nth_test ( <NUM_LIT:3> ) , <NUM_LIT:3> ) <EOL> def _assert_comment ( self , step , expected_comment ) : <EOL> assert_equal ( step . comment . as_list ( ) , expected_comment ) <EOL> class DataRowTest ( unittest . TestCase ) : <EOL> def test_commented_row ( self ) : <EOL> assert_true ( DataRow ( [ '<STR_LIT>' ] ) . is_commented ( ) ) <EOL> def test_escaping_empty_cells ( self ) : <EOL> assert_equal ( DataRow ( [ '<STR_LIT:foo>' , '<STR_LIT:\\>' , '<STR_LIT>' ] ) . all , [ '<STR_LIT:foo>' , '<STR_LIT>' ] ) <EOL> if __name__ == '<STR_LIT:__main__>' : <EOL> unittest . main ( ) </s>
