def test_get_latest_analysis_none_when_no_analysis_found(self): # Arrange file_hash = 'hash' with responses.RequestsMock() as mock: mock.add('GET', url='{}/files/{}'.format(self.full_url, file_hash), status=404) # Act analysis = FileAnalysis.from_latest_hash_analysis(file_hash) self.assertIsNone(analysis)
def get_latest_result_command(intezer_api: IntezerApi, args: Dict[str, str]) -> CommandResults: file_hash = args.get('file_hash') if not file_hash: raise ValueError('Missing file hash') latest_analysis = FileAnalysis.from_latest_hash_analysis( file_hash=file_hash, api=intezer_api, requester=REQUESTER) if not latest_analysis: return _get_missing_file_result(file_hash) return enrich_dbot_and_display_file_analysis_results( latest_analysis.result())
def test_get_latest_analysis_analysis_object_when_latest_analysis_found( self): # Arrange file_hash = 'hash' analysis_id = 'analysis_id' analysis_report = {'analysis_id': analysis_id} with responses.RequestsMock() as mock: mock.add('GET', url='{}/files/{}'.format(self.full_url, file_hash), status=200, json={'result': analysis_report}) # Act analysis = FileAnalysis.from_latest_hash_analysis(file_hash) self.assertIsNotNone(analysis) self.assertEqual(analysis_id, analysis.analysis_id) self.assertEqual(consts.AnalysisStatusCode.FINISH, analysis.status) self.assertDictEqual(analysis_report, analysis.result())
def test_get_latest_analysis_analysis_object_when_latest_analysis_found_with_on_premise( self): # Arrange get_global_api().on_premise_version = OnPremiseVersion.V21_11 file_hash = 'hash' analysis_id = 'analysis_id' analysis_report = {'analysis_id': analysis_id} with responses.RequestsMock() as mock: mock.add('GET', url='{}/files/{}'.format(self.full_url, file_hash), status=200, json={'result': analysis_report}) # Act analysis = FileAnalysis.from_latest_hash_analysis(file_hash) self.assertEqual(mock.calls[0].request.body, b'{}') self.assertIsNotNone(analysis) self.assertEqual(analysis_id, analysis.analysis_id) self.assertEqual(consts.AnalysisStatusCode.FINISH, analysis.status) self.assertDictEqual(analysis_report, analysis.result())
def get_latest_analysis_by_hash(file_hash: str): api.set_global_api('<api_key>') analysis = FileAnalysis.from_latest_hash_analysis(file_hash=file_hash) pprint(analysis.result())