def test_analyze_exec_file(self): # Arrange create_global_api() file_path = __file__ # Act commands.analyze_file_command(file_path, None, None, 'file') # Assert self.send_analyze_mock.assert_called_once()
def test_analyze_none_exec_file_dynamic_disabled(self): # Arrange create_global_api() dir_name = Path(__file__).parent.parent.absolute() file_path = os.path.join(dir_name, 'resources/doc_sample_file.doc') # Act commands.analyze_file_command(file_path, True, None, 'file') # Assert self.send_analyze_mock.assert_not_called()
def analyze(path: str, no_unpacking: bool, no_static_extraction: bool, code_item_type: str, ignore_directory_count_limit: bool): """ Send a file or a directory for analysis in Intezer Analyze. \b PATH: Path to file or directory to send the files inside for analysis. \b Examples: Send a single file for analysis: $ intezer-analyze analyze ~/files/threat.exe.sample \b Send all files in directory for analysis: $ intezer-analyze analyze ~/files/files-to-analyze """ try: create_global_api() if not no_unpacking: no_unpacking = None if not no_static_extraction: no_static_extraction = None if os.path.isfile(path): commands.analyze_file_command(file_path=path, disable_dynamic_unpacking=no_unpacking, disable_static_unpacking=no_static_extraction, code_item_type=code_item_type) else: commands.analyze_directory_command(path=path, disable_dynamic_unpacking=no_unpacking, disable_static_unpacking=no_static_extraction, code_item_type=code_item_type, ignore_directory_count_limit=ignore_directory_count_limit) except click.Abort: raise except sdk_errors.InsufficientQuota: logger.exception('Insufficient quota') click.echo('Insufficient quota, please contact us at [email protected] ') except Exception: logger.exception('Unexpected error occurred') click.echo('Unexpected error occurred, please contact us at [email protected] ' 'and attach the log file in {}'.format(utilities.log_file_path))