From f488dfc918b1827012f6c785b59ab8ebd9f24b90 Mon Sep 17 00:00:00 2001 From: Kirill Klenov Date: Wed, 14 Nov 2012 15:10:43 +0400 Subject: [PATCH 1/3] Add some tests --- tests/simple/api.py | 7 +++++++ tests/simple/tests.py | 4 +++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/tests/simple/api.py b/tests/simple/api.py index 3efefdc..c286d13 100644 --- a/tests/simple/api.py +++ b/tests/simple/api.py @@ -9,5 +9,12 @@ class TaskResource(ResourceView): emitters = emitter.XMLTemplateEmitter +class Task2Resource(ResourceView): + allowed_methods = 'GET', 'POST' + emitters = emitter.JSONEmitter + model = Task + + API = Api(version='1.0b') API.register(TaskResource) +API.register(Task2Resource, url_name='task2', url_regex='task2') diff --git a/tests/simple/tests.py b/tests/simple/tests.py index 11742b1..182919c 100644 --- a/tests/simple/tests.py +++ b/tests/simple/tests.py @@ -15,6 +15,9 @@ def test_base(self): response = self.get_resource('task') self.assertContains(response, 'true') + response = self.post_resource('task2', data=dict(title='new')) + self.assertEqual(response.content, '{"user": ["This field is required."]}') + class SerializerTest(TestCase): @@ -46,7 +49,6 @@ def test_simply(self): self.assertEquals(task['fields']['user'], user.pk) self.assertTrue('title' in task['fields'].keys()) - def test_xml(self): from adrest.utils.serializer import XMLSerializer from ..main.models import Book From db87820664a592012ef216be3ba1af28dde9e4a2 Mon Sep 17 00:00:00 2001 From: Kirill Klenov Date: Mon, 19 Nov 2012 20:56:25 +0400 Subject: [PATCH 2/3] Fix options --- adrest/resources/rpc.py | 3 +++ tests/rpc/tests.py | 3 +++ 2 files changed, 6 insertions(+) diff --git a/adrest/resources/rpc.py b/adrest/resources/rpc.py index de7be5c..e31bfbe 100644 --- a/adrest/resources/rpc.py +++ b/adrest/resources/rpc.py @@ -39,6 +39,9 @@ def configure_rpc(self, scheme): self.methods[m.__name__] = m def handle_request(self, request, **resources): + if request.method == 'OPTIONS': + return super(RPCResource, self).handle_request(request, **resources) + payload = request.data try: diff --git a/tests/rpc/tests.py b/tests/rpc/tests.py index bd7ee4e..254a6b9 100644 --- a/tests/rpc/tests.py +++ b/tests/rpc/tests.py @@ -20,6 +20,9 @@ def setUp(self): def test_base_rpc(self): + response = self.get_resource('rpc2', method='options') + self.assertEqual(response.content, 'OK') + # POST args response = self.rpc( 'rpc2', From f26ae0eae0fd52b1869ee58dd065251a5f7bcb0c Mon Sep 17 00:00:00 2001 From: Kirill Klenov Date: Mon, 19 Nov 2012 20:57:02 +0400 Subject: [PATCH 3/3] Update version --- Changelog | 4 ++++ adrest/__init__.py | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/Changelog b/Changelog index 6fd186c..7ef7513 100644 --- a/Changelog +++ b/Changelog @@ -1,3 +1,7 @@ +2012-11-19 klen 2.0.6 + + * Fix OPTIONS method in RPC calls + 2012-11-13 klen 2.0.5 * Fix serialization errors diff --git a/adrest/__init__.py b/adrest/__init__.py index 451f878..faab7a4 100644 --- a/adrest/__init__.py +++ b/adrest/__init__.py @@ -1,4 +1,4 @@ -version_info = (2, 0, 5) +version_info = (2, 0, 6) __version__ = version = '.'.join(map(str, version_info)) __project__ = PROJECT = __name__