diff --git a/pillar/application/modules/nodes/custom/comment.py b/pillar/application/modules/nodes/custom/comment.py index a1009c04..139b39c1 100644 --- a/pillar/application/modules/nodes/custom/comment.py +++ b/pillar/application/modules/nodes/custom/comment.py @@ -82,15 +82,15 @@ def patch_comment(node_id, patch): action = actions[patch['op']] mongo_update = action() - if not mongo_update: - return jsonify({'_status': 'OK', 'result': 'no-op'}) - - log.info('Running %s', mongo_update) - if rating: - result = nodes_coll.update_one({'_id': node_id, 'properties.ratings.user': user_id}, - mongo_update) + if mongo_update: + log.info('Running %s', mongo_update) + if rating: + result = nodes_coll.update_one({'_id': node_id, 'properties.ratings.user': user_id}, + mongo_update) + else: + result = nodes_coll.update_one({'_id': node_id}, mongo_update) else: - result = nodes_coll.update_one({'_id': node_id}, mongo_update) + result = 'no-op' # Fetch the new ratings, so the client can show these without querying again. node = nodes_coll.find_one(node_id, diff --git a/tests/test_patch.py b/tests/test_patch.py index feb2ab76..367ee878 100644 --- a/tests/test_patch.py +++ b/tests/test_patch.py @@ -36,9 +36,11 @@ class PatchCommentTest(AbstractPillarTest): def test_upvote_other_comment(self): # Patch the node - self.patch(self.node_url, - json={'op': 'upvote'}, - auth_token='token') + res = self.patch(self.node_url, + json={'op': 'upvote'}, + auth_token='token').json() + self.assertEqual(1, res['properties']['rating_positive']) + self.assertEqual(0, res['properties']['rating_negative']) # Get the node again, to inspect its changed state. patched_node = self.get(self.node_url, auth_token='token').json() @@ -55,9 +57,11 @@ class PatchCommentTest(AbstractPillarTest): def test_downvote_other_comment(self): # Patch the node - self.patch(self.node_url, - json={'op': 'downvote'}, - auth_token='token').json() + res = self.patch(self.node_url, + json={'op': 'downvote'}, + auth_token='token').json() + self.assertEqual(0, res['properties']['rating_positive']) + self.assertEqual(1, res['properties']['rating_negative']) # Get the node again, to inspect its changed state. patched_node = self.get(self.node_url, auth_token='token').json()