Skip to content

Commit 6539bfe

Browse files
committed
add support for swagger-ui (tests needed)
1 parent faac88b commit 6539bfe

File tree

8 files changed

+17
-18
lines changed

8 files changed

+17
-18
lines changed

example/store/books/resources.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,11 @@ def list(self, request, params):
6060
def detail(self, request, book_id):
6161
return Book.objects.get( id=book_id )
6262

63-
@validate_form(CreateBook)
63+
# @validate_form(CreateBook)
6464
def create(self, *args, **kwargs):
6565
return 401
6666

67-
@validate_form(CreateBook)
67+
# @validate_form(CreateBook)
6868
def update(self, *args, **kwargs):
6969
return 405
7070

example/store/books/tests/json_builder.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,15 +6,15 @@
66
from yard.api import Api
77
from yard import fields as FIELDS
88
from books.tests.base import BaseTestCase
9-
from books.models import *
9+
from books.models import Book, Author
1010

1111

1212
class JSONBuilderTestCase( BaseTestCase ):
1313

1414
def setUp(self):
1515
super(JSONBuilderTestCase, self).setUp()
1616
self.api = Api()
17-
self.resource_class = type('TestResouce', (Resource,), {})
17+
self.resource_class = type('TestResouce', (Resource,), {'model': Book})
1818
self.resource_class.preprocess(self.api)
1919
self.resource = self.resource_class({})
2020

example/store/books/tests/params.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,7 @@ def test_default(self):
152152
assert p.get_default(string)[0] == string
153153

154154
def test_validate(self, param=CharParam):
155-
p = RegexParam(r'[0-9]*')
155+
p = RegexParam(r'^[0-9]*$')
156156
assert fail_validation(p, RANDOM.string())
157157
assert p.do_validate(RANDOM.char_number())
158158
assert fail_validation(p, RANDOM.string())

example/store/books/tests/resource_methods.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ class ResourceHttpMethodsTestCase( BaseTestCase ):
4343
def setUp(self):
4444
super(ResourceHttpMethodsTestCase, self).setUp()
4545
self.factory = RequestFactory()
46-
TestResource = type('TestResource', (Resource,), {})
46+
TestResource = type('TestResource', (Resource,), {'model': Book})
4747
TestResource.preprocess(Api())
4848
self.collection_resource = TestResource(
4949
TestResource.as_list_view()['routes'])

src/yard/api.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ def get_documentation(self):
5252
resource_class.preprocess(self)
5353
for info in resource_class.get_views():
5454
items = info['routes'].iteritems()
55-
if not any(hasattr(resource_class, v) for k,v in items):
56-
continue
55+
# if not any(hasattr(resource_class, v) for k,v in items):
56+
# continue
5757
viewname = "%s.%s" %(name or resource_class.__name__, info['name'])
5858
self.list_of_urlpatterns.append(
5959
url(

src/yard/fields.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ def get_documentation(self):
1616
json['items'] = {'type': 'string'}
1717
return json
1818

19-
def __call__(self, data):
19+
def __call__(self, data, api=None):
2020
if data:
21-
return self.converter(data)
21+
return self.converter(data, api) if api else self.converter(data)
2222

2323

2424
Integer = JsonField('integer', lambda data: int(data))

src/yard/forms/params/__init__.py

+6-7
Original file line numberDiff line numberDiff line change
@@ -55,17 +55,16 @@ class PositiveIntegerParam(IntegerParam):
5555
Parameter for positive integer values
5656
'''
5757
def __init__(self, description=None, alias=None, aliases=None,
58-
required=False, default=None, min_value=0, max_value=None):
59-
self.max_value = max_value
60-
self.min_value = 0
61-
Parameter.__init__(self,
58+
required=False, default=None, max_value=None):
59+
super(PositiveIntegerParam, self).__init__(
6260
description=description, alias=alias, aliases=aliases,
63-
required=required, default=default, validate=validate)
61+
required=required, default=default, min_value=0,
62+
max_value=max_value)
6463

6564
def validate(self, value):
6665
if self.max_value != None:
67-
return value <= self.max_value and value >= max(self.min_value, 0)
68-
return value >= max(self.min_value, 0)
66+
return value <= self.max_value and value >= self.min_value
67+
return value >= self.min_value
6968

7069

7170
class CharParam(Parameter):

src/yard/resources/base/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ def get_views(cls):
100100

101101
def __init__(self, routes):
102102
self.routes = routes
103-
103+
104104
@property
105105
def tagname(self):
106106
return self.model.__name__.lower()

0 commit comments

Comments
 (0)