From 0dcb972e7652264a129e6eb6232c602cc2126eff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sybren=20A=2E=20St=C3=BCvel?= Date: Tue, 10 May 2016 10:40:11 +0200 Subject: [PATCH] Project: Don't revert the is_private field. This also reverts the changes of override_is_private_field(). --- pillar/application/modules/projects.py | 1 - tests/test_project_management.py | 17 +++++++++++++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/pillar/application/modules/projects.py b/pillar/application/modules/projects.py index ef1677d9..c943d944 100644 --- a/pillar/application/modules/projects.py +++ b/pillar/application/modules/projects.py @@ -90,7 +90,6 @@ def protect_sensitive_fields(document, original): document[name] = original[name] revert('url') - revert('is_private') revert('status') revert('category') revert('user') diff --git a/tests/test_project_management.py b/tests/test_project_management.py index 1a425152..0634ae66 100644 --- a/tests/test_project_management.py +++ b/tests/test_project_management.py @@ -103,6 +103,14 @@ class ProjectCreationTest(AbstractProjectTest): proj = self._create_user_and_project(roles={u'subscriber'}) self.assertEqual([], proj['permissions']['world']) + self.assertTrue(proj['is_private']) + + # Also check the database contents + with self.app.test_request_context(): + project_id = ObjectId(proj['_id']) + db_proj = self.app.data.driver.db['projects'].find_one(project_id) + self.assertEqual([], db_proj['permissions']['world']) + self.assertTrue(db_proj['is_private']) class ProjectEditTest(AbstractProjectTest): @@ -136,11 +144,13 @@ class ProjectEditTest(AbstractProjectTest): u'sadržaja pod različitim operativnim sustavima.' put_project['name'] = u'โครงการปั่นเมฆ' put_project['summary'] = u'Это переведена на Google' - put_project['is_private'] = False put_project['status'] = 'pending' put_project['category'] = 'software' put_project['user'] = other_user_id + # Try making the project public. This should update is_private as well. + put_project['permissions']['world'] = ['GET'] + resp = self.client.put(project_url, data=dumps(put_project), headers={'Authorization': self.make_header('token'), @@ -158,10 +168,13 @@ class ProjectEditTest(AbstractProjectTest): self.assertEqual(put_project['description'], db_proj['description']) self.assertEqual(put_project['name'], db_proj['name']) self.assertEqual(put_project['summary'], db_proj['summary']) - self.assertEqual(project['is_private'], db_proj['is_private']) self.assertEqual(project['status'], db_proj['status']) self.assertEqual(project['category'], db_proj['category']) + # Project should be consistent. + self.assertEqual(False, db_proj['is_private']) + self.assertEqual(['GET'], db_proj['permissions']['world']) + def test_editing_as_admin(self): """Test that we can set all fields as admin."""