<s> import os <EOL> from unittest2 import TestCase <EOL> import mock <EOL> from st2actions . runners . windows_runner import BaseWindowsRunner <EOL> from st2actions . runners . windows_script_runner import WindowsScriptRunner <EOL> BASE_DIR = os . path . dirname ( os . path . abspath ( __file__ ) ) <EOL> FIXTURES_DIR = os . path . abspath ( os . path . join ( BASE_DIR , '<STR_LIT>' ) ) <EOL> class WindowsRunnerTestCase ( TestCase ) : <EOL> def test_get_winexe_command_args ( self ) : <EOL> arguments = [ <EOL> { <EOL> '<STR_LIT:host>' : '<STR_LIT:localhost>' , <EOL> '<STR_LIT:username>' : '<STR_LIT>' , <EOL> '<STR_LIT:password>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' <EOL> } , <EOL> { <EOL> '<STR_LIT:host>' : '<STR_LIT:127.0.0.1>' , <EOL> '<STR_LIT:username>' : '<STR_LIT>' , <EOL> '<STR_LIT:password>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' <EOL> } , <EOL> { <EOL> '<STR_LIT:host>' : '<STR_LIT:localhost>' , <EOL> '<STR_LIT:username>' : '<STR_LIT>' , <EOL> '<STR_LIT:password>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' <EOL> } <EOL> ] <EOL> expected_values = [ <EOL> [ <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT:0>' , <EOL> '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' <EOL> ] , <EOL> [ <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT:0>' , <EOL> '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' <EOL> ] , <EOL> [ <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT:0>' , <EOL> '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' <EOL> ] <EOL> ] <EOL> runner = self . _get_base_runner ( ) <EOL> for arguments , expected_value in zip ( arguments , expected_values ) : <EOL> actual_value = runner . _get_winexe_command_args ( ** arguments ) <EOL> self . assertEqual ( actual_value , expected_value ) <EOL> def test_get_smbclient_command_args ( self ) : <EOL> arguments = [ <EOL> { <EOL> '<STR_LIT:host>' : '<STR_LIT:localhost>' , <EOL> '<STR_LIT:username>' : '<STR_LIT>' , <EOL> '<STR_LIT:password>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' <EOL> } , <EOL> { <EOL> '<STR_LIT:host>' : '<STR_LIT:localhost>' , <EOL> '<STR_LIT:username>' : '<STR_LIT>' , <EOL> '<STR_LIT:password>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' <EOL> } , <EOL> { <EOL> '<STR_LIT:host>' : '<STR_LIT:localhost>' , <EOL> '<STR_LIT:username>' : '<STR_LIT>' , <EOL> '<STR_LIT:password>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' <EOL> } <EOL> ] <EOL> expected_values = [ <EOL> [ <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT:-c>' , '<STR_LIT>' <EOL> ] , <EOL> [ <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT:-c>' , '<STR_LIT>' <EOL> ] , <EOL> [ <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' , <EOL> '<STR_LIT:-c>' , '<STR_LIT>' <EOL> ] , <EOL> ] <EOL> runner = self . _get_base_runner ( ) <EOL> for arguments , expected_value in zip ( arguments , expected_values ) : <EOL> actual_value = runner . _get_smbclient_command_args ( ** arguments ) <EOL> self . assertEqual ( actual_value , expected_value ) <EOL> def test_get_script_args ( self ) : <EOL> arguments = [ <EOL> { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : '<STR_LIT>' <EOL> } <EOL> } , <EOL> { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : { <EOL> '<STR_LIT>' : '<STR_LIT>' , <EOL> '<STR_LIT>' : True , <EOL> '<STR_LIT>' : False , <EOL> '<STR_LIT>' : [ '<STR_LIT:foo>' , '<STR_LIT:bar>' , '<STR_LIT>' ] <EOL> } <EOL> } <EOL> ] <EOL> expected_values = [ <EOL> '<STR_LIT>' , <EOL> '<STR_LIT>' <EOL> ] <EOL> runner = self . _get_script_runner ( ) <EOL> for arguments , expected_value in zip ( arguments , expected_values ) : <EOL> actual_value = runner . _get_script_arguments ( ** arguments ) <EOL> self . assertEqual ( actual_value , expected_value ) <EOL> def test_parse_share_information ( self ) : <EOL> runner = self . _get_script_runner ( ) <EOL> fixture_path = os . path . join ( FIXTURES_DIR , '<STR_LIT>' ) <EOL> with open ( fixture_path , '<STR_LIT:r>' ) as fp : <EOL> stdout = fp . read ( ) <EOL> result = runner . _parse_share_information ( stdout = stdout ) <EOL> expected_keys = [ '<STR_LIT>' , '<STR_LIT:path>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , '<STR_LIT>' , <EOL> '<STR_LIT>' ] <EOL> for key in expected_keys : <EOL> self . assertTrue ( key in result ) <EOL> self . assertEqual ( result [ '<STR_LIT>' ] , '<STR_LIT>' ) <EOL> self . assertEqual ( result [ '<STR_LIT:path>' ] , '<STR_LIT>' ) <EOL> self . assertEqual ( result [ '<STR_LIT>' ] , None ) <EOL> @ mock . patch ( '<STR_LIT>' ) <EOL> def test_get_share_absolute_path ( self , mock_run_command ) : <EOL> runner = self . _get_script_runner ( ) <EOL> fixture_path = os . path . join ( FIXTURES_DIR , '<STR_LIT>' ) <EOL> with open ( fixture_path , '<STR_LIT:r>' ) as fp : <EOL> stdout = fp . read ( ) <EOL> mock_run_command . return_value = ( <NUM_LIT:2> , '<STR_LIT>' , '<STR_LIT>' , False ) <EOL> self . assertRaises ( Exception , runner . _get_share_absolute_path , share = '<STR_LIT>' ) <EOL> mock_run_command . return_value = ( <NUM_LIT:0> , '<STR_LIT>' , '<STR_LIT>' , False ) <EOL> self . assertRaises ( Exception , runner . _get_share_absolute_path , share = '<STR_LIT>' ) <EOL> mock_run_command . return_value = ( <NUM_LIT:0> , stdout , '<STR_LIT>' , False ) <EOL> share_path = runner . _get_share_absolute_path ( share = '<STR_LIT>' ) <EOL> self . assertEqual ( share_path , '<STR_LIT>' ) <EOL> def test_shell_command_parameter_escaping ( self ) : <EOL> pass <EOL> def _get_base_runner ( self ) : <EOL> class Runner ( BaseWindowsRunner ) : <EOL> def pre_run ( self ) : <EOL> pass <EOL> def run ( self ) : <EOL> pass <EOL> runner = Runner ( '<STR_LIT:id>' ) <EOL> return runner <EOL> def _get_script_runner ( self ) : <EOL> runner = WindowsScriptRunner ( '<STR_LIT:id>' ) <EOL> runner . _host = None <EOL> runner . _username = None <EOL> runner . _password = None <EOL> runner . _timeout = None <EOL> return runner </s>
