def test_check_block(self): site = get_site_by_token(self.token) ip = '192.168.1.11' block(site, ip) self.assertTrue(check_block(site.id, ip)) rds.delete(config.BLOCK_PREFIX.format(sid = site.id, ip = ip)) self.assertTrue(check_block(site.id, ip)) self.assertFalse(check_block(site.id, '192.168.1.12'))
def on_put(self, req, resp, token): site = self.get_site(token) msg = json.load(req.stream) tid = msg.get('tid', 0) fid = msg.get('fid', 0) uid = msg.get('uid', 0) ip = msg.get('ip', 0) content = msg.get('content', None) if not tid or not uid or not ip or not content: raise falcon.HTTPBadRequest(config.HTTP_400, 'invalid params') if check_block(site.id, ip): logger.info('IP %s deny' % ip) raise falcon.HTTPForbidden(config.HTTP_403, 'ip %s deny' % ip) try: comment = create(site, tid, fid, uid, ip, content) except Exception: logger.exception('create comment') raise falcon.HTTPInternalServerError(config.HTTP_500, 'create comment failed') resp.status = falcon.HTTP_201 resp.stream = ijson.dump({'id': comment.id})