def test_saved_query_get_by_id_raises_api_error_if_not_found( self, mock_get): # Arrange mock_get.side_effect = exceptions.DoesNotExist("") # Act # Assert with self.assertRaises(exceptions.DoesNotExist): saved_query_api.get_by_id(1)
def _fields_to_query(form_values, template_id, get_dot_notation_to_element_func, use_wildcard): """Takes values from the html tree and creates a query from them Args: form_values: template_id: use_wildcard: get_dot_notation_to_element_func: Returns: """ # get template template = template_api.get(template_id) # get namespaces namespaces = get_namespaces(template.content) # get default prefix default_prefix = get_default_prefix(namespaces) query = dict() for field in form_values: bool_comp = field['operator'] is_not = bool_comp == 'NOT' element_type = field.get('type', None) # get element value value = get_element_value(field) # get comparison operator comparison = get_element_comparison(field) element_id = field['id'] if element_type == "query": try: saved_query = saved_query_api.get_by_id(element_id) except DoesNotExist: raise MongoQueryException( "The saved query does not exist anymore.") criteria = build_query_criteria(json.loads(saved_query.query), is_not) else: data_structure_element = data_structure_element_api.get_by_id( element_id) element = get_dot_notation_to_element_func(data_structure_element, namespaces) criteria = build_criteria(element, comparison, value, element_type, default_prefix, is_not, use_wildcard) if bool_comp == 'OR': query = build_or_criteria(query, criteria) elif bool_comp == 'AND': query = build_and_criteria(query, criteria) else: if form_values.index(field) == 0: query.update(criteria) else: query = build_and_criteria(query, criteria) return query
def add_query_criteria(request): """Adds the selected query to query builder Args: request: Returns: """ tag_id = request.POST['tagID'] saved_query_id = request.POST['savedQueryID'] # check if first criteria is_first = True if int(tag_id) == 1 else False # get saved query number from id try: saved_query = saved_query_api.get_by_id(saved_query_id) except DoesNotExist: return HttpResponseBadRequest( "The saved query does not exist anymore.") new_query_html = render_new_query(tag_id, saved_query, is_first) response_dict = {'query': new_query_html, 'first': is_first} return HttpResponse(json.dumps(response_dict), content_type='application/javascript')
def test_saved_query_get_by_id_returns_saved_query_if_found( self, mock_get): # Arrange mock_data = _create_saved_query() mock_get.return_value = mock_data # Act result = saved_query_api.get_by_id(mock_data.id) # Assert self.assertIsInstance(result, SavedQuery)
def get_object(self, pk): """Get SavedQuery from db Args: pk: ObjectId Returns: SavedQuery """ try: return saved_query_api.get_by_id(pk) except exceptions.DoesNotExist: raise Http404
def delete_query(request): """Deletes a query and update the HTML display Args: request: Returns: """ saved_query_id = request.POST['savedQueryID'] try: saved_query = saved_query_api.get_by_id(saved_query_id[5:]) except DoesNotExist: return HttpResponseBadRequest( "The saved query does not exist anymore.") saved_query_api.delete(saved_query) return HttpResponse(json.dumps({}), content_type='application/javascript')