def test_encode_adds_extra_data_provided_to_swagger_object(self): expected = {'foo': 'bar'} with patch('rest_framework_swagger.renderers.generate_swagger_object', return_value={}): result = self.sut(coreapi.Document(), **expected) self.assertEqual(force_bytes(json.dumps(expected)), result)
def test_encode_generates_swagger_object_when_given_valid_document(self): expected = {'fizz': 'buzz'} with patch('rest_framework_swagger.renderers.generate_swagger_object', return_value={'fizz': 'buzz'}): result = self.sut(coreapi.Document()) self.assertEqual(force_bytes(json.dumps(expected)), result)
def encode(self, document): """Transform an :class:`.Swagger` object to a sequence of bytes. Also performs validation and applies settings. :param openapi.Swagger document: Swagger spec object as generated by :class:`.OpenAPISchemaGenerator` :return: binary encoding of ``document`` :rtype: bytes """ if not isinstance(document, openapi.Swagger): raise TypeError("Expected a `openapi.Swagger` instance") spec = self.generate_swagger_object(document) errors = {} for validator in self.validators: try: # validate a deepcopy of the spec to prevent the validator from messing with it # for example, swagger_spec_validator adds an x-scope property to all references VALIDATORS[validator](copy.deepcopy(spec)) except SwaggerValidationError as e: errors[validator] = str(e) if errors: exc = SwaggerValidationError( "spec validation failed: {}".format(errors), errors, spec, self) logger.warning(str(exc)) raise exc return force_bytes(self._dump_dict(spec))
def encode(self, document, **options): if not isinstance(document, coreapi.Document): raise TypeError('Expected a `coreapi.Document` instance') data = generate_swagger_object(document) data.update(**options) return force_bytes(json.dumps(data))
def render(self, data, accepted_media_type=None, renderer_context=None): codec = OpenAPICodec() data = json.loads(codec.dump(data)) if swagger_settings.SECURITY_DEFINITIONS: data['securityDefinitions'] = swagger_settings.SECURITY_DEFINITIONS return force_bytes(json.dumps(data))
def encode(self, document, extra=None, **options): if not isinstance(document, Document): raise TypeError('Expected a `coreapi.Document` instance') data = _generate_openapi_object(document) if isinstance(extra, dict): data.update(extra) return force_bytes(json.dumps(data))
def encode(self, document, extra=None, **options): if not isinstance(document, coreapi.Document): raise TypeError('Expected a `coreapi.Document` instance') data = generate_swagger_object(document) if isinstance(extra, dict): data.update(extra) return force_bytes(json.dumps(data))
def test_encode_generates_swagger_object_when_given_valid_document(self): expected = {'fizz': 'buzz'} with patch( 'rest_framework_swagger.renderers.generate_swagger_object', return_value={'fizz': 'buzz'} ): result = self.sut(coreapi.Document()) self.assertEqual(force_bytes(json.dumps(expected)), result)
def test_encode_adds_extra_data_provided_to_swagger_object(self): expected = {'foo': 'bar'} with patch( 'rest_framework_swagger.renderers.generate_swagger_object', return_value={} ): result = self.sut(coreapi.Document(), extra=expected) self.assertEqual(force_bytes(json.dumps(expected)), result)
def encode(self, document, extra=None, **options): if not isinstance(document, coreapi.Document): raise TypeError('Expected a `coreapi.Document` instance') data = generate_swagger_object(document) if isinstance(extra, dict): merge_dicts(data, extra, force=True) return force_bytes(json.dumps(data))
def teardown_class(cls): with open('swagger.json', 'w') as f: data = force_bytes(json.dumps(cls.JSON, cls=i18nEncoder, indent=2)) # replace ISO dates w/ the same value so we don't generate # needless diffs data = re.sub( '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]+Z', '2018-02-01T08:00:00.000000Z', data) f.write(data)
def dump_history(history): history_data = { 'items': [ {'url': doc.url, 'title': doc.title} for active, doc in history.get_items() ], 'idx': history._idx, 'max_items': history.max_items } return force_bytes(json.dumps(history_data))
def load_swagger_json(self, doc): """ åŠ è½½è‡ªå®šä¹‰swagger.json文档 """ data = generate_swagger_object(doc) # data['paths'].update(path_dict.pop('paths')) # data.update(path_dict) data['paths'] = path_dict return OpenAPICodec().decode(force_bytes(json.dumps(data)))
def load_swagger_json(self, doc): """ åŠ è½½è‡ªå®šä¹‰swagger.json文档 """ data = generate_swagger_object(doc) with open(settings.API_DOC_PATH) as s: doc_json = json.load(s, object_pairs_hook=OrderedDict) data['paths'].update(doc_json.pop('paths')) data.update(doc_json) return OpenAPICodec().decode(force_bytes(json.dumps(data)))
def encode(self, document, extra=None, **options): if not isinstance(document, Document): raise TypeError('Expected a `coreapi.Document` instance') data = _generate_openapi_object(document) if isinstance(extra, dict): data.update(extra) # out = yaml.dump(data) out = ordered_dump(data, Dumper=yaml.SafeDumper) return force_bytes(out)
def teardown_class(cls): with open('swagger.json', 'w') as f: data = force_bytes(json.dumps(cls.JSON, cls=i18nEncoder, indent=2)) # replace ISO dates w/ the same value so we don't generate # needless diffs data = re.sub( r'[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]+Z', r'2018-02-01T08:00:00.000000Z', data) data = re.sub(r'''(\s+"client_id": ")([a-zA-Z0-9]{40})("\,\s*)''', r'\1xxxx\3', data) f.write(data)
def encode(self, document, **options): import coreapi from coreapi.compat import force_bytes from openapi_codec.encode import generate_swagger_object if not isinstance(document, coreapi.Document): raise TypeError('Expected a `coreapi.Document` instance') data = generate_swagger_object(document) data.update(**options) return force_bytes(json.dumps(data))
def dump_history(history): history_data = { 'items': [{ 'url': doc.url, 'title': doc.title } for active, doc in history.get_items()], 'idx': history._idx, 'max_items': history.max_items } return force_bytes(json.dumps(history_data))
def encode(self, document, **options): if not isinstance(document, coreapi.Document): raise TypeError('Expected a `coreapi.Document` instance') data = generate_swagger_object(document) if settings.SECURITY_DEFINITIONS: security_key = settings.SECURITY_DEFINITIONS.keys()[0] for k1 in data['paths']: for k2 in data['paths'][k1]: data['paths'][k1][k2]['security'] = [{security_key: []}] data.update(**options) return force_bytes(json.dumps(data))
def encode(self, document, extra=None, **options): if not isinstance(document, coreapi.Document): raise TypeError('Expected a `coreapi.Document` instance') data = generate_swagger_object(document) data['info']['version'] = document._version data['info']['description'] = document.description if isinstance(extra, dict): data.update(extra) else: raise TypeError('`extra` should be a `dict` instance') return force_bytes(json.dumps(data))
def encode(self, document, **options): if not isinstance(document, Document): raise TypeError('Expected a `coreapi.Document` instance') indent = options.get('indent', None) kwargs = { 'ensure_ascii': False, 'indent': indent, 'separators': indent and VERBOSE_SEPARATORS or COMPACT_SEPARATORS } global_formats = options.get('formats', []) spore_settings = options.get('settings', []) data = generate_spore_object(document, global_formats, spore_settings) return force_bytes(json.dumps(data, **kwargs))
def encode(self, document): """Transform an :class:`.Swagger` object to a sequence of bytes. Also performs validation and applies settings. :param openapi.Swagger document: Swagger spec object as generated by :class:`.OpenAPISchemaGenerator` :return: binary encoding of ``document`` :rtype: bytes """ if not isinstance(document, openapi.Swagger): raise TypeError('Expected a `openapi.Swagger` instance') spec = self.generate_swagger_object(document) for validator in self.validators: # validate a deepcopy of the spec to prevent the validator from messing with it # for example, swagger_spec_validator adds an x-scope property to all references VALIDATORS[validator](copy.deepcopy(spec), self) return force_bytes(self._dump_dict(spec))
def dump(self, document, indent=False, **kwargs): """ Takes a document and returns a bytestring. """ if indent: options = { 'ensure_ascii': False, 'indent': 4, 'separators': VERBOSE_SEPARATORS } else: options = { 'ensure_ascii': False, 'indent': None, 'separators': COMPACT_SEPARATORS } data = _document_to_primative(document) return force_bytes(json.dumps(data, **options))
def encode(self, document, **options): """ Takes a document and returns a bytestring. """ indent = options.get("indent") if indent: kwargs = { "ensure_ascii": False, "indent": 4, "separators": VERBOSE_SEPARATORS, } else: kwargs = { "ensure_ascii": False, "indent": None, "separators": COMPACT_SEPARATORS, } data = _document_to_primitive(document) return force_bytes(json.dumps(data, **kwargs))
def sendEmail(request, user, subject, template, *args): mail_subject = subject from_email = settings.EMAIL_HOST_USER key = { 'uid': urlsafe_base64_encode(force_bytes(user.pk)), 'token': account_activation_token.make_token(user), } html_content = render_to_string( template, { 'user': user, 'domain': request.get_host(), 'uid': key['uid'], 'token': key['token'], "password": args[0] }) text_content = strip_tags(html_content) to_email = user.email mail.send_mail(mail_subject, text_content, from_email, [to_email], html_message=html_content, fail_silently=True)
def set_headers(headers): headers_file = open(headers_path, 'wb') headers_file.write(force_bytes(json.dumps(headers))) headers_file.close()
def dump(self, document, **kwargs): data = generate_swagger_object(document) return force_bytes(json.dumps(data))
def dump(self, document, **kwargs): converter = DocumentToSwaggerConverter(document) return force_bytes(json.dumps(converter.convert()))
def set_bookmarks(bookmarks): bookmarks_file = open(bookmarks_path, 'wb') bookmarks_file.write(force_bytes(json.dumps(bookmarks))) bookmarks_file.close()
def set_credentials(credentials): store = open(credentials_path, 'wb') store.write(force_bytes(json.dumps(credentials))) store.close
def dump(self, data): return force_bytes(json.dumps(data))
def teardown_class(cls): with open('swagger.json', 'w') as f: f.write(force_bytes(json.dumps(cls.JSON, cls=i18nEncoder)))
def encode(self, document, **options): if not isinstance(document, Document): raise TypeError('Expected a `coreapi.Document` instance') data = generate_swagger_object(document) return force_bytes(json.dumps(data))
def encode_error(self, err): """Dump an error message into an encoding-appropriate sequence of bytes""" return force_bytes(self._dump_dict(err))