diff options
author | Andrey Mekin <amekin@crystalnix.com> | 2016-09-29 14:39:23 +0600 |
---|---|---|
committer | Andrey Mekin <amekin@crystalnix.com> | 2016-09-29 15:56:35 +0600 |
commit | f1d76c6c9e957c9529be885d2281c7fc48c8b598 (patch) | |
tree | 79a6f6a08833cb82f9d128816caa20981b69b874 | |
parent | 5004d1501d1350101a740714cdeabfb3b9b1d8ff (diff) | |
download | omaha-server-f1d76c6c9e957c9529be885d2281c7fc48c8b598.zip omaha-server-f1d76c6c9e957c9529be885d2281c7fc48c8b598.tar.gz omaha-server-f1d76c6c9e957c9529be885d2281c7fc48c8b598.tar.bz2 |
Add support PATCH requests(Version API)
-rw-r--r-- | omaha_server/omaha/api.py | 2 | ||||
-rw-r--r-- | omaha_server/omaha/tests/test_api.py | 25 |
2 files changed, 26 insertions, 1 deletions
diff --git a/omaha_server/omaha/api.py b/omaha_server/omaha/api.py index 58712fe..4fda594 100644 --- a/omaha_server/omaha/api.py +++ b/omaha_server/omaha/api.py @@ -167,7 +167,7 @@ class ChannelViewSet(viewsets.ModelViewSet): serializer_class = ChannelSerializer -class VersionViewSet(BaseView): +class VersionViewSet(BaseView, mixins.UpdateModelMixin): queryset = Version.objects.all().order_by('-id') serializer_class = VersionSerializer diff --git a/omaha_server/omaha/tests/test_api.py b/omaha_server/omaha/tests/test_api.py index 7b8abc0..09f0cb0 100644 --- a/omaha_server/omaha/tests/test_api.py +++ b/omaha_server/omaha/tests/test_api.py @@ -206,6 +206,31 @@ class VersionTest(BaseTest, APITestCase): self.assertEqual(version.file_size, len(b'content')) self.assertTrue(version.is_enabled) + @is_private() + @temporary_media_root(MEDIA_URL='http://cache.pack.google.com/edgedl/chrome/install/782.112/') + def test_update(self): + data = dict( + app=ApplicationFactory.create().id, + platform=PlatformFactory.create().id, + channel=ChannelFactory.create().id, + version='1.2.3.4', + file=SimpleUploadedFile("chrome.exe", b'content'), + is_enabled=False, + ) + response = self.client.post(reverse(self.url), data) + self.assertEqual(response.status_code, status.HTTP_201_CREATED) + obj_id = response.data['id'] + version = Version.objects.get(id=obj_id) + self.assertEqual(response.data, self.serializer(version).data) + self.assertEqual(version.file_size, len(b'content')) + self.assertFalse(version.is_enabled) + url = reverse(self.url_detail, kwargs=dict(pk=obj_id)) + response = self.client.patch(url, dict(is_enabled=True)) + self.assertEqual(response.status_code, status.HTTP_200_OK) + version = Version.objects.get(id=obj_id) + self.assertEqual(version.file_size, len(b'content')) + self.assertTrue(version.is_enabled) + class ActionTest(BaseTest, APITestCase): url = 'action-list' |