Ejemplo n.º 1
0
    def test_execute__no_results(self, mock_upload, mock_scan):
        mock_scan.return_value = []

        scanner = NmapperService()

        # mocking out _get_target_ips
        scanner.api = MagicMock()
        mock_response = MagicMock()
        mock_response.json.return_value = {
            'meta': {
                'total_count': 1
            },
            'objects': [{
                'id': 1,
                'is_all': True,
                'is_enabled': True,
                'scan_targets': ['192.0.2.1', '192.0.2.2']
            }]
        }
        scanner.api.get_data.return_value = mock_response

        scanner.execute()

        mock_scan.assert_any_call(['192.0.2.1'], None)
        mock_scan.assert_any_call(['192.0.2.2'], None)
        self.assertEquals(mock_upload.call_count, 0)
Ejemplo n.º 2
0
    def test__upload_results(self):
        scanner = NmapperService()
        scanner.api = MagicMock()
        scanner.api.send_file.return_value = 's3://path'
        now = datetime(2015, 11, 4)

        scanner._upload_results('myfile', now)

        scanner.api.send_file.assert_called_once_with('logs',
                                                      'myfile',
                                                      now,
                                                      suffix='nmap')
        scanner.api.send_signal.assert_called_once_with(
            'logs',
            {
                'path': 's3://path',
                'log_type': 'observations',
            },
        )
Ejemplo n.º 3
0
    def test_execute(self, mock_upload, mock_scan):
        mock_scan.return_value = [{'some': 'json'}, {'more': 'json'}]
        actual_results = []

        def _dummy_upload(self, filename, now):
            with open(filename) as f:
                actual_results.append(f.read())

        mock_upload.side_effect = _dummy_upload

        scanner = NmapperService()

        # mocking out _get_target_ips
        scanner.api = MagicMock()
        mock_response = MagicMock()
        mock_response.json.return_value = {
            'meta': {
                'total_count': 1
            },
            'objects': [{
                'id': 1,
                'is_all': True,
                'is_enabled': True,
                'scan_targets': ['192.0.2.1', '192.0.2.2']
            }]
        }
        scanner.api.get_data.return_value = mock_response

        now = datetime(2015, 11, 4)
        scanner.execute(now)

        utcnow = now.replace(tzinfo=utc)

        mock_scan.assert_any_call(['192.0.2.1'], utcnow)
        mock_scan.assert_any_call(['192.0.2.2'], utcnow)
        self.assertEquals(mock_upload.call_count, 2)

        expected_contents = ''.join(
            [json.dumps(s) + '\n' for s in mock_scan.return_value])
        self.assertEquals(len(actual_results), 2)
        self.assertEquals(actual_results[0], expected_contents)
        self.assertEquals(actual_results[1], expected_contents)
Ejemplo n.º 4
0
 def setUp(self):
     self.inst = NmapperService()
     self.inst.api = MagicMock()