def test_main_basic(self, mock_ez_outlet_reset): """ Given: Mock EzOutletReset. When: Calling main() with a single argument. Then: EzOutletReset constructor is called with hostname == given value and wait_time == ez_outlet_reset.DEFAULT_WAIT_TIME. and: STDOUT is silent. """ hostname = '255.254.253.252' args = ['ez_outlet_reset.py', hostname] ez_outlet_reset.main(args) mock_ez_outlet_reset.assert_called_once_with(hostname=hostname, wait_time=boofuzz.EzOutletReset.DEFAULT_WAIT_TIME) assert boofuzz.ez_outlet_reset.sys.stdout.getvalue() == ''
def test_main_reset_time_short(self, mock_ez_outlet_reset): """ Given: Mock EzOutletReset. When: Calling main() with hostname and -t arguments. Then: EzOutletReset constructor is called with hostname == given value and wait_time == given value. and: STDOUT is silent. """ hostname = '255.254.253.252' wait_time = 1 args = ['ez_outlet_reset.py', hostname, ez_outlet_reset.RESET_TIME_ARG_SHORT, str(wait_time)] ez_outlet_reset.main(args) mock_ez_outlet_reset.assert_called_once_with(hostname=hostname, wait_time=wait_time) assert boofuzz.ez_outlet_reset.sys.stdout.getvalue() == ''
def test_main_missing_target(self): """ Given: Mock EzOutletReset. When: Calling main() with no arguments. Then: SystemExit is raised with code EXIT_CODE_PARSER_ERR and: STDERR includes ".*: error: too few arguments" and: STDOUT is silent. """ args = ['ez_outlet_reset.py'] with pytest.raises(SystemExit) as exception_info: ez_outlet_reset.main(args) assert exception_info.value.message == EXIT_CODE_PARSER_ERR assert re.search(".*: error: too few arguments", boofuzz.ez_outlet_reset.sys.stderr.getvalue()) is not None assert boofuzz.ez_outlet_reset.sys.stdout.getvalue() == ''
def test_main_unknown_arg(self, ): """ Given: Mock EzOutletReset. When: Calling main() with required arguments and an extra unknown argument. Then: SystemExit is raised with code EXIT_CODE_PARSER_ERR and: STDERR <= ".*: error: unrecognized arguments: {0}".format(bad_arg) and: STDOUT is silent. """ bad_arg = '--blab' args = ['ez_outlet_reset.py', '1.2.3.4', bad_arg] with pytest.raises(SystemExit) as exception_info: ez_outlet_reset.main(args) assert exception_info.value.message == EXIT_CODE_PARSER_ERR assert re.search(".*: error: unrecognized arguments: {0}".format(bad_arg), boofuzz.ez_outlet_reset.sys.stderr.getvalue()) is not None assert boofuzz.ez_outlet_reset.sys.stdout.getvalue() == ''
def test_main_reset_time_negative(self): """ Given: Mock EzOutletReset. When: Calling main() with hostname and negative reset time argument. Then: SystemExit is raised with code EXIT_CODE_PARSER_ERR and: STDERR <= ez_outlet_reset.ERROR_STRING.format(ez_outlet_reset.PROGRAM_NAME, ez_outlet_reset.RESET_TIME_NEGATIVE_ERROR_MESSAGE) and: STDOUT is silent. """ args = ['ez_outlet_reset.py', '1.2.3.4', ez_outlet_reset.RESET_TIME_ARG_LONG, str(-1)] with pytest.raises(SystemExit) as exception_info: ez_outlet_reset.main(args) assert exception_info.value.message == EXIT_CODE_PARSER_ERR assert re.search(ez_outlet_reset.ERROR_STRING.format(ez_outlet_reset.PROGRAM_NAME, ez_outlet_reset.RESET_TIME_NEGATIVE_ERROR_MESSAGE), boofuzz.ez_outlet_reset.sys.stderr.getvalue()) is not None assert boofuzz.ez_outlet_reset.sys.stdout.getvalue() == ''