<s> from __future__ import ( absolute_import , division , generators , nested_scopes , print_function , <EOL> unicode_literals , with_statement ) <EOL> import unittest <EOL> from pants . help . help_info_extracter import HelpInfoExtracter <EOL> from pants . option . config import Config <EOL> from pants . option . global_options import GlobalOptionsRegistrar <EOL> from pants . option . option_tracker import OptionTracker <EOL> from pants . option . parser import Parser <EOL> class HelpInfoExtracterTest ( unittest . TestCase ) : <EOL> def test_global_scope ( self ) : <EOL> def do_test ( args , kwargs , expected_display_args , expected_scoped_cmd_line_args ) : <EOL> expected_unscoped_cmd_line_args = expected_scoped_cmd_line_args <EOL> ohi = HelpInfoExtracter ( '<STR_LIT>' ) . get_option_help_info ( args , kwargs ) <EOL> self . assertListEqual ( expected_display_args , ohi . display_args ) <EOL> self . assertListEqual ( expected_scoped_cmd_line_args , ohi . scoped_cmd_line_args ) <EOL> self . assertListEqual ( expected_unscoped_cmd_line_args , ohi . unscoped_cmd_line_args ) <EOL> do_test ( [ '<STR_LIT>' ] , { '<STR_LIT:type>' : bool } , [ '<STR_LIT>' ] , [ '<STR_LIT>' ] ) <EOL> do_test ( [ '<STR_LIT>' ] , { '<STR_LIT:type>' : bool } , [ '<STR_LIT>' ] , [ '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> do_test ( [ '<STR_LIT>' ] , { '<STR_LIT:type>' : bool , '<STR_LIT>' : False } , <EOL> [ '<STR_LIT>' ] , [ '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> do_test ( [ '<STR_LIT>' , '<STR_LIT>' ] , { '<STR_LIT:type>' : bool } , [ '<STR_LIT>' , '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> do_test ( [ '<STR_LIT>' ] , { } , [ '<STR_LIT>' ] , [ '<STR_LIT>' ] ) <EOL> do_test ( [ '<STR_LIT>' ] , { '<STR_LIT>' : '<STR_LIT>' } , [ '<STR_LIT>' ] , [ '<STR_LIT>' ] ) <EOL> do_test ( [ '<STR_LIT>' ] , { '<STR_LIT:type>' : int } , [ '<STR_LIT>' ] , [ '<STR_LIT>' ] ) <EOL> do_test ( [ '<STR_LIT>' ] , { '<STR_LIT:type>' : list } , [ <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' <EOL> ] , [ '<STR_LIT>' ] ) <EOL> do_test ( [ '<STR_LIT>' ] , { '<STR_LIT:type>' : list , '<STR_LIT>' : int } , [ <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' <EOL> ] , [ '<STR_LIT>' ] ) <EOL> do_test ( [ '<STR_LIT>' ] , { '<STR_LIT:type>' : list , '<STR_LIT>' : dict } , <EOL> [ '<STR_LIT>' <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' <EOL> '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' ] ) <EOL> do_test ( [ '<STR_LIT>' ] , { '<STR_LIT:type>' : dict } , [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' ] ) <EOL> do_test ( [ '<STR_LIT>' , '<STR_LIT>' ] , { } , [ '<STR_LIT>' , '<STR_LIT>' ] , [ '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> def test_non_global_scope ( self ) : <EOL> def do_test ( args , kwargs , expected_display_args , expected_scoped_cmd_line_args , <EOL> expected_unscoped_cmd_line_args ) : <EOL> ohi = HelpInfoExtracter ( '<STR_LIT>' ) . get_option_help_info ( args , kwargs ) <EOL> self . assertListEqual ( expected_display_args , ohi . display_args ) <EOL> self . assertListEqual ( expected_scoped_cmd_line_args , ohi . scoped_cmd_line_args ) <EOL> self . assertListEqual ( expected_unscoped_cmd_line_args , ohi . unscoped_cmd_line_args ) <EOL> do_test ( [ '<STR_LIT>' ] , { '<STR_LIT:type>' : bool } , [ '<STR_LIT>' ] , [ '<STR_LIT>' ] , [ '<STR_LIT>' ] ) <EOL> do_test ( [ '<STR_LIT>' ] , { '<STR_LIT:type>' : bool } , [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' ] , [ '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> do_test ( [ '<STR_LIT>' ] , { '<STR_LIT:type>' : bool , '<STR_LIT>' : False } , [ '<STR_LIT>' ] , <EOL> [ '<STR_LIT>' , '<STR_LIT>' ] , [ '<STR_LIT>' , '<STR_LIT>' ] ) <EOL> def test_default ( self ) : <EOL> def do_test ( args , kwargs , expected_default ) : <EOL> parser = Parser ( env = { } , config = Config . load ( [ ] ) , <EOL> scope_info = GlobalOptionsRegistrar . get_scope_info ( ) , <EOL> parent_parser = None , option_tracker = OptionTracker ( ) ) <EOL> parser . register ( * args , ** kwargs ) <EOL> oshi = HelpInfoExtracter . get_option_scope_help_info_from_parser ( parser ) . basic <EOL> self . assertEquals ( <NUM_LIT:1> , len ( oshi ) ) <EOL> ohi = oshi [ <NUM_LIT:0> ] <EOL> self . assertEqual ( expected_default , ohi . default ) <EOL> do_test ( [ '<STR_LIT>' ] , { '<STR_LIT:type>' : bool } , '<STR_LIT:False>' ) <EOL> do_test ( [ '<STR_LIT>' ] , { '<STR_LIT:type>' : bool , '<STR_LIT:default>' : True } , '<STR_LIT:True>' ) <EOL> do_test ( [ '<STR_LIT>' ] , { '<STR_LIT:type>' : bool , '<STR_LIT>' : False } , '<STR_LIT:True>' ) <EOL> do_test ( [ '<STR_LIT>' ] , { '<STR_LIT:type>' : bool , '<STR_LIT>' : False , '<STR_LIT:default>' : False } , '<STR_LIT:False>' ) <EOL> do_test ( [ '<STR_LIT>' ] , { } , '<STR_LIT:None>' ) <EOL> do_test ( [ '<STR_LIT>' ] , { '<STR_LIT:type>' : int } , '<STR_LIT:None>' ) <EOL> do_test ( [ '<STR_LIT>' ] , { '<STR_LIT:type>' : int , '<STR_LIT:default>' : <NUM_LIT> } , '<STR_LIT>' ) <EOL> do_test ( [ '<STR_LIT>' ] , { '<STR_LIT:type>' : list } , '<STR_LIT>' ) <EOL> do_test ( [ '<STR_LIT>' ] , { '<STR_LIT:type>' : dict } , '<STR_LIT:None>' ) <EOL> def test_deprecated ( self ) : <EOL> kwargs = { '<STR_LIT>' : '<STR_LIT>' , '<STR_LIT>' : '<STR_LIT>' } <EOL> ohi = HelpInfoExtracter ( '<STR_LIT>' ) . get_option_help_info ( [ ] , kwargs ) <EOL> self . assertEquals ( '<STR_LIT>' , ohi . removal_version ) <EOL> self . assertEquals ( '<STR_LIT>' , ohi . removal_hint ) <EOL> self . assertIsNotNone ( ohi . deprecated_message ) <EOL> def test_fromfile ( self ) : <EOL> ohi = HelpInfoExtracter ( '<STR_LIT>' ) . get_option_help_info ( [ ] , { } ) <EOL> self . assertFalse ( ohi . fromfile ) <EOL> kwargs = { '<STR_LIT>' : False } <EOL> ohi = HelpInfoExtracter ( '<STR_LIT>' ) . get_option_help_info ( [ ] , kwargs ) <EOL> self . assertFalse ( ohi . fromfile ) <EOL> kwargs = { '<STR_LIT>' : True } <EOL> ohi = HelpInfoExtracter ( '<STR_LIT>' ) . get_option_help_info ( [ ] , kwargs ) <EOL> self . assertTrue ( ohi . fromfile ) <EOL> def test_grouping ( self ) : <EOL> def do_test ( kwargs , expected_basic = False , expected_recursive = False , expected_advanced = False ) : <EOL> def exp_to_len ( exp ) : <EOL> return int ( exp ) <EOL> oshi = HelpInfoExtracter ( '<STR_LIT>' ) . get_option_scope_help_info ( [ ( [ ] , kwargs ) ] ) <EOL> self . assertEquals ( exp_to_len ( expected_basic ) , len ( oshi . basic ) ) <EOL> self . assertEquals ( exp_to_len ( expected_recursive ) , len ( oshi . recursive ) ) <EOL> self . assertEquals ( exp_to_len ( expected_advanced ) , len ( oshi . advanced ) ) <EOL> do_test ( { } , expected_basic = True ) <EOL> do_test ( { '<STR_LIT>' : False } , expected_basic = True ) <EOL> do_test ( { '<STR_LIT>' : True } , expected_advanced = True ) <EOL> do_test ( { '<STR_LIT>' : True } , expected_recursive = True ) <EOL> do_test ( { '<STR_LIT>' : True , '<STR_LIT>' : True } , expected_basic = True ) <EOL> do_test ( { '<STR_LIT>' : True , '<STR_LIT>' : True } , expected_advanced = True ) <EOL> do_test ( { '<STR_LIT>' : True , '<STR_LIT>' : True , '<STR_LIT>' : True } , expected_advanced = True ) </s>
