Skip to content

Commit 4672872

Browse files
authored
Fix: now applying the same verifications when creating or editing comments (#1038)
1 parent 6f3874c commit 4672872

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

isso/tests/test_comments.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,22 @@ def testUpdate(self):
391391
self.assertEqual(rv['website'], 'http://example.com/')
392392
self.assertIn('modified', rv)
393393

394+
def testUpdateForbidden(self):
395+
396+
self.post('/new?uri=test', data=json.dumps({'text': 'Hello world!'}))
397+
398+
resp = self.put('/id/1', data=json.dumps({}))
399+
self.assertEqual(resp.status, '400 BAD REQUEST')
400+
self.assertIn('text is missing', resp.text)
401+
402+
resp = self.put('/id/1', data=json.dumps({'text': ''}))
403+
self.assertEqual(resp.status, '400 BAD REQUEST')
404+
self.assertIn('text is too short', resp.text)
405+
406+
resp = self.put('/id/1', data=json.dumps({'text': 'Hello again!', 'website': '[email protected]'}))
407+
self.assertEqual(resp.status, '400 BAD REQUEST')
408+
self.assertIn('Website not Django-conform', resp.text)
409+
394410
def testDelete(self):
395411

396412
self.post('/new?uri=%2Fpath%2F',

isso/views/comments.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -539,12 +539,13 @@ def edit(self, environ, request, id):
539539

540540
data = request.json
541541

542-
if data.get("text") is None or len(data["text"]) < 3:
543-
raise BadRequest("no text given")
544-
545542
for key in set(data.keys()) - set(["text", "author", "website"]):
546543
data.pop(key)
547544

545+
valid, reason = API.verify(data)
546+
if not valid:
547+
return BadRequest(reason)
548+
548549
data['modified'] = time.time()
549550

550551
with self.isso.lock:

0 commit comments

Comments
 (0)