Esempio n. 1
0
    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)
Esempio n. 2
0
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())
Esempio n. 3
0
    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())
Esempio n. 4
0
    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())