Пример #1
0
 def _validate_compare_id(compare_id: str):
     valid_chars = '0123456789abcdef_;'
     if not all(char in valid_chars for char in compare_id):
         raise ValueError(f'Compare ID {compare_id} contains invalid chars')
     uids = convert_compare_id_to_list(compare_id)
     if not all(is_uid(uid) for uid in uids):
         raise TypeError(f'Compare ID {compare_id} contains invalid UIDs')
Пример #2
0
 def _process_compare(self, compare_id):
     result = self.compare_module.compare(
         convert_compare_id_to_list(compare_id))
     if isinstance(result, dict):
         self.db_interface.add_compare_result(result)
     else:
         logging.error(result)
Пример #3
0
 def check_objects_exist(self, compare_id, raise_exc=True):
     for uid in convert_compare_id_to_list(compare_id):
         if not self.existence_quick_check(uid):
             if raise_exc:
                 raise FactCompareException(
                     '{} not found in database'.format(uid))
             return True
     return False
Пример #4
0
 def _process_compare(self, compare_id):
     try:
         self.db_interface.add_compare_result(
             self.compare_module.compare(
                 convert_compare_id_to_list(compare_id)))
     except Exception:  # pylint: disable=broad-except
         logging.error(f'Fatal error in compare process for {compare_id}',
                       exc_info=True)
Пример #5
0
 def _app_show_compare_result(self, compare_id):
     compare_id = normalize_compare_id(compare_id)
     try:
         with ConnectTo(CompareDbInterface, self._config) as sc:
             result = sc.get_compare_result(compare_id)
     except FactCompareException as exception:
         return render_template('compare/error.html',
                                error=exception.get_message())
     if not result:
         return render_template('compare/wait.html', compare_id=compare_id)
     download_link = self._create_ida_download_if_existing(
         result, compare_id)
     uid_list = convert_compare_id_to_list(compare_id)
     plugin_views, plugins_without_view = self._get_compare_plugin_views(
         result)
     compare_view = self._get_compare_view(plugin_views)
     self._fill_in_empty_fields(result, compare_id)
     return render_template_string(
         compare_view,
         result=result,
         uid_list=uid_list,
         download_link=download_link,
         plugins_without_view=plugins_without_view)
def test_convert_compare_id_to_list(input_data, expected):
    assert convert_compare_id_to_list(input_data) == expected