def test_remove_keys(self): all_keys = [KeyMaster.PUB_KEY, KeyMaster.SIG_KEY, KeyMaster.TIME_KEY] signed = KeyMaster.sign(self.payload, self.private_key) for key in all_keys: self.assertIn(key, signed) cleaned = KeyMaster.remove_keys(signed) for key in all_keys: self.assertNotIn(key, cleaned)
def manage_logs(): payload = dict(request.values.items()) if '_public_key' not in payload: abort(400) stream = db.Stream.find_one({'public_key': payload['_public_key']}) if not KeyMaster.check(payload, stream['private_key']): abort(400) log_data = KeyMaster.remove_keys(payload) if request.method == 'GET': resp = u'[' + ', '.join([log.to_json() for log in db[stream['log_collection']].Log.find(log_data)]) + ']' elif request.method == 'POST': log = db[stream['log_collection']].Log() for key, value in log_data.items(): log[key] = value try: log.save() resp = json.dumps({'status': 'success'}) except: resp = json.dumps({'status': 'error'}) else: abort(400) return Response(resp, status='200', mimetype='application/json')