From 57cf9a354705388fccce9fe245fedaf1b6338951 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Tue, 28 Jun 2016 15:01:02 +0200 Subject: [PATCH] Prevent home project without URL. --- pillar/application/modules/projects.py | 4 +++- tests/test_bcloud_home_project.py | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/pillar/application/modules/projects.py b/pillar/application/modules/projects.py index fdc75679..4b3cb2ec 100644 --- a/pillar/application/modules/projects.py +++ b/pillar/application/modules/projects.py @@ -98,11 +98,13 @@ def protect_sensitive_fields(document, original): return document[name] = original[name] - revert('url') revert('status') revert('category') revert('user') + if 'url' in original: + revert('url') + def after_inserting_projects(projects): """After inserting a project in the collection we do some processing such as: diff --git a/tests/test_bcloud_home_project.py b/tests/test_bcloud_home_project.py index 7bc4d9ee..4b8607f3 100644 --- a/tests/test_bcloud_home_project.py +++ b/tests/test_bcloud_home_project.py @@ -75,6 +75,7 @@ class HomeProjectTest(AbstractPillarTest): json_proj = json.loads(resp.data) self.assertEqual('home', json_proj['category']) + self.assertEqual('home', json_proj['url']) # Check that a Blender Sync node was created automatically. with self.app.test_request_context(headers={'Authorization': self.make_header('token')}): @@ -124,6 +125,7 @@ class HomeProjectTest(AbstractPillarTest): json_proj = json.loads(resp.data) self.assertEqual('home', json_proj['category']) + self.assertEqual('home', json_proj['url']) # Check that a Blender Sync node was created automatically. with self.app.test_request_context(headers={'Authorization': self.make_header('token')}): @@ -153,6 +155,7 @@ class HomeProjectTest(AbstractPillarTest): self.assertEqual(200, resp.status_code) json_proj = json.loads(resp.data) self.assertEqual('home', json_proj['category']) + self.assertEqual('home', json_proj['url']) # Check that the admin group of the project only has GET permissions. self.assertEqual({'GET'}, set(json_proj['permissions']['groups'][0]['methods']))