On 05/25/2016 07:49 AM, Finucane, Stephen wrote:
On 20 May 14:17, Andy Doan wrote:
This exports patch checks via the REST API.
The drf-nested-routers package is used to handle the fact Checks are
nested under a Patch.
Security Constraints:
* Anyone (logged in or not) can read all objects.
* No one can update/delete objects.
* Project maintainers and patch owners may create objects.
Signed-off-by: Andy Doan <andy.d...@linaro.org>
One request, then we're done.
---
patchwork/rest_serializers.py | 35 ++++++++++++++-
patchwork/tests/test_rest_api.py | 92 +++++++++++++++++++++++++++++++++++++++-
patchwork/urls.py | 6 +--
patchwork/views/rest_api.py | 40 ++++++++++++++++-
requirements-test.txt | 1 +
5 files changed, 166 insertions(+), 8 deletions(-)
diff --git a/patchwork/rest_serializers.py b/patchwork/rest_serializers.py
+class ChecksSerializer(ModelSerializer):
+ class Meta:
+ model = Check
+ user = PrimaryKeyRelatedField(read_only=True, default=CurrentUserDefault())
+ patch = HiddenField(default=CurrentPatchDefault())
+
+ def run_validation(self, data):
+ for val, label in Check.STATE_CHOICES:
+ if label == data['state']:
+ data['state'] = val
+ break
+ return super(ChecksSerializer, self).run_validation(data)
+
+ def to_representation(self, instance):
+ data = super(ChecksSerializer, self).to_representation(instance)
+ data['state'] = instance.get_state_display()
+ data['user'] = instance.user.username
nit: s/user/username/. Also, should we add a 'user_url' link, as
suggested for 'people' endpoint?
I actually just made it "user" but show the URL to the user endpoint.
This should be consistent with how things are elsewhere in this patch-set.
diff --git a/requirements-test.txt b/requirements-test.txt
index b5f976c..cfc242f 100644
--- a/requirements-test.txt
+++ b/requirements-test.txt
@@ -3,3 +3,4 @@ django-debug-toolbar==1.4
python-dateutil>2.0,<3.0
selenium>2.0,<3.0
djangorestframework>=3.3,<3.4
+drf-nested-routers>=0.11.1,<0.12
s/0.11.1/0.11/?
I thought about that, but 0.11.1 is current and tested against. I'm not
sure we should advertise an older untested version?
_______________________________________________
Patchwork mailing list
Patchwork@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/patchwork