def test_get_title(self): """ Tests formatting of title string: - Removes dashes and underscores - Puts in title case """ endpoint = url(r'^/?$', 'url', name='my_api-documentation') obj = DocumentationGenerator() result = obj.__get_title__(endpoint) self.assertEquals('My Api Documentation', result)
def test_parse_docstring(self): docstring = """ This is my description myvar1 -- a beautiful var """ obj = DocumentationGenerator() docstring_meta = obj.__parse_docstring__(docstring) self.assertEquals([['myvar1', 'a beautiful var']], docstring_meta['params']) self.assertEquals('This is my description\n\n', docstring_meta['description'])
def __get_serializer_fields__(self, callback): data = [] if not hasattr(callback, 'get_serializer_class'): return data if hasattr(callback, '__call__'): serializer = callback().get_serializer_class() else: serializer = callback.get_serializer_class() try: _serializer = serializer() fields = _serializer.get_fields() if hasattr(_serializer, 'get_additional_fields'): fields.update(_serializer.get_additional_fields()) except: _serializer = serializer(None) fields = _serializer.get_fields() if hasattr(_serializer, 'get_additional_fields'): fields.update(_serializer.get_additional_fields()) for name, field in fields.items(): field_data = dict() field_data['type'] = DocumentationGenerator._DocumentationGenerator__camelcase_to_spaces(self, field.__class__.__name__) for key in ('help_text', 'default'):#('read_only', 'default', 'max_length', 'min_length'): if hasattr(field, key): field_data[key] = self.__cut(getattr(field, key)) data.append({name: field_data}) return data
def get(self, *args, **kwargs): docs = DocumentationGenerator().get_docs() return Response(json.loads(docs))
def test_urls(self): obj = DocumentationGenerator() obj.get_url_patterns()
def documentation(request, *args, **kwargs): docs = DocumentationGenerator().get_docs(as_objects=True) return render_to_response("rest_framework_docs/docs.html", {'docs': docs}, context_instance=RequestContext(request))