def test_running_plugin_failure_no_tests(self, read_file_mock, report_mock, find_files_mock, command_mock): project = Project('.') project.set_property('verbose', True) project.set_property('dir_source_main_python', 'python') project.set_property('dir_source_main_scripts', 'scripts') project.set_property("cram_fail_if_no_tests", True) project._plugin_env = {} logger = Mock() reactor = Mock() reactor.python_env_registry = {} reactor.python_env_registry["pybuilder"] = pyb_env = Mock() pyb_env.environ = {} execute_mock = pyb_env.execute_command = Mock() command_mock.return_value = ['cram'] find_files_mock.return_value = [] report_mock.return_value = 'report_file' read_file_mock.return_value = ['test failes for file', '# results'] execute_mock.return_value = 1 self.assertRaises(BuildFailedException, run_cram_tests, project, logger, reactor) execute_mock.assert_not_called() expected_info_calls = [ call('Running Cram command line tests'), ] self.assertEqual(expected_info_calls, logger.info.call_args_list)
def test_running_plugin_cram_from_target(self, read_file_mock, report_mock, find_files_mock, command_mock): project = Project('.') project.set_property('cram_run_test_from_target', True) project.set_property('dir_dist', 'python') project.set_property('dir_dist_scripts', 'scripts') project.set_property('verbose', False) project._plugin_env = {} logger = Mock() reactor = Mock() reactor.python_env_registry = {} reactor.python_env_registry["pybuilder"] = pyb_env = Mock() reactor.pybuilder_venv = pyb_env pyb_env.environ = {} pyb_env.executable = ["a/b"] execute_mock = pyb_env.execute_command = Mock() command_mock.return_value = ['cram'] find_files_mock.return_value = ['test1.cram', 'test2.cram'] report_mock.return_value = 'report_file' read_file_mock.return_value = ['test failes for file', '# results'] execute_mock.return_value = 0 run_cram_tests(project, logger, reactor) execute_mock.assert_called_once_with( ['a/b', 'cram', 'test1.cram', 'test2.cram'], 'report_file', error_file_name='report_file', env={ 'PYTHONPATH': np(jp(project.basedir, 'python')) + pathsep, 'PATH': np(jp(project.basedir, 'python/scripts')) + pathsep }) expected_info_calls = [ call('Running Cram command line tests'), call('Cram tests were fine'), call('results'), ] self.assertEqual(expected_info_calls, logger.info.call_args_list)