def build_response(self, data_list): """ Build the response. Args: data_list: List of data Returns: The response paginated """ if 'all' in self.request.data and to_bool(self.request.data['all']): # Serialize data list data_serializer = DataSerializer(data_list, many=True) # Return response return Response(data_serializer.data) else: # Get paginator paginator = StandardResultsSetPagination() # Get requested page from list of results page = paginator.paginate_queryset(data_list, self.request) # Serialize page data_serializer = DataSerializer(page, many=True) # Return paginated response return paginator.get_paginated_response(data_serializer.data)
def get(self, request): """ Get template version managers. Query Params: title: title is_disabled: [True|False] Args: request: Returns: """ try: # Get objects object_list = self.get_template_version_managers() # Apply filters title = self.request.query_params.get('title', None) if title is not None: object_list = object_list.filter(title=title) is_disabled = self.request.query_params.get('is_disabled', None) if is_disabled is not None: object_list = object_list.filter(is_disabled=to_bool(is_disabled)) # Serialize object serializer = TemplateVersionManagerSerializer(object_list, many=True) return Response(serializer.data, status=status.HTTP_200_OK) except Exception as api_exception: content = {'message': api_exception.message} return Response(content, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def get(self, request, pk): """Download the XSD file from a Template Args: request: HTTP request pk: ObjectId Examples: ../template/[template_id]/download ../template/[template_id]/download?pretty_print=false Returns: - code: 200 content: XSD file - code: 404 content: Object was not found - code: 500 content: Internal server error """ try: # Get object template_object = self.get_object(pk, request=request) # get xml content content = template_object.content # get format bool format = request.query_params.get("pretty_print", False) # format content if to_bool(format): content = format_content_xml(content) return get_file_http_response(content, template_object.filename, "text/xsd", "xsd") except Http404: content = {"message": "Template not found."} return Response(content, status=status.HTTP_404_NOT_FOUND) except XMLError: content = {"message": "Content is not well formatted XML."} return Response(content, status=status.HTTP_400_BAD_REQUEST) except AccessControlError: content = {"message": "Access Forbidden."} return Response(content, status=status.HTTP_403_FORBIDDEN) except Exception as api_exception: content = {"message": str(api_exception)} return Response(content, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def get(self, request, pk): """Download the XML file from a data Args: request: HTTP request pk: ObjectId Examples: ../data/download/[data_id] ../data/download/[data_id]?pretty_print=true Returns: - code: 200 content: XML file - code: 404 content: Object was not found - code: 500 content: Internal server error """ try: # Get object data_object = self.get_object(request, pk) # get xml content xml_content = data_object.xml_content # get format bool format = request.query_params.get("pretty_print", False) # format content if to_bool(format): xml_content = format_content_xml(xml_content) return get_file_http_response(xml_content, data_object.title, "text/xml", "xml") except Http404: content = {"message": "Data not found."} return Response(content, status=status.HTTP_404_NOT_FOUND) except XMLError: content = {"message": "Content is not well formatted XML."} return Response(content, status=status.HTTP_400_BAD_REQUEST) except Exception as api_exception: content = {"message": str(api_exception)} return Response(content, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def get(self, request): """Get template version managers Url Parameters: template: template_id title: document_title Args: request: HTTP request Returns: - code: 200 content: List of template version manager - code: 500 content: Internal server error """ try: # Get objects object_list = self.get_template_version_managers() # Apply filters title = self.request.query_params.get("title", None) if title is not None: object_list = object_list.filter(title=title) is_disabled = self.request.query_params.get("is_disabled", None) if is_disabled is not None: object_list = object_list.filter( is_disabled=to_bool(is_disabled)) # Serialize object serializer = self.serializer(object_list, many=True) return Response(serializer.data, status=status.HTTP_200_OK) except AccessControlError: content = {"message": "Access Forbidden"} return Response(content, status=status.HTTP_403_FORBIDDEN) except Exception as api_exception: content = {"message": str(api_exception)} return Response(content, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def build_response(self, data_list): """Build the response. Args: data_list: List of data Returns: The response paginated """ xpath = self.request.data.get("xpath", None) namespaces = self.request.data.get("namespaces", None) if "all" in self.request.data and to_bool(self.request.data["all"]): # Select values at xpath if provided if xpath: for data_object in data_list: data_object.xml_content = get_content_by_xpath( data_object.xml_content, xpath, namespaces=namespaces) # Serialize data list data_serializer = self.serializer(data_list, many=True) # Return response return Response(data_serializer.data) else: # Get paginator paginator = StandardResultsSetPagination() # Get requested page from list of results page = paginator.paginate_queryset(data_list, self.request) # Select values at xpath if provided if xpath: for data_object in page: data_object.xml_content = get_content_by_xpath( data_object.xml_content, xpath, namespaces=namespaces) # Serialize page data_serializer = self.serializer(page, many=True) # Return paginated response return paginator.get_paginated_response(data_serializer.data)
def get(self, request): """ Get template version managers Url Parameters: template: template_id title: document_title Args: request: HTTP request Returns: - code: 200 content: List of template version manager - code: 500 content: Internal server error """ try: # Get objects object_list = self.get_template_version_managers() # Apply filters title = self.request.query_params.get('title', None) if title is not None: object_list = object_list.filter(title=title) is_disabled = self.request.query_params.get('is_disabled', None) if is_disabled is not None: object_list = object_list.filter(is_disabled=to_bool(is_disabled)) # Serialize object serializer = TemplateVersionManagerSerializer(object_list, many=True) return Response(serializer.data, status=status.HTTP_200_OK) except Exception as api_exception: content = {'message': api_exception.message} return Response(content, status=status.HTTP_500_INTERNAL_SERVER_ERROR)
def test_boolean_false_expected_case_returns_false(self): self.assertEqual(to_bool("False"), False)
def test_unexpected_type_raises_value_error(self): with self.assertRaises(ValueError): to_bool(1)
def test_unexpected_string_raises_value_error(self): with self.assertRaises(ValueError): to_bool("bool")
def test_boolean_true_returns_true(self): self.assertEqual(to_bool(True), True)
def test_boolean_false_returns_false(self): self.assertEqual(to_bool(False), False)
def test_boolean_true_unexpected_case_returns_true(self): self.assertEqual(to_bool("true"), True)
def test_boolean_false_unexpected_case_returns_false(self): self.assertEqual(to_bool('false'), False)
def test_boolean_true_expected_case_returns_true(self): self.assertEqual(to_bool('True'), True)