def delete(self, doc):
        if doc.id is None:
            raise DatabaseException('Document does not have id')
        if doc.sid is None:
            try:
                rs = self.db.docs.remove({'id': doc.id}, safe=True)
                assert rs['n'] == 1
            except Exception as e:
                raise DatabaseException(e)
            return None
        doc.data = None
        return self.update(doc)
def step_impl(context):
    data = json.loads(context.text)
    receiver_name = re.match(r"\<(\w+)'s id\>", data['receiver']).group(1)
    data['receiver'] = context.users[receiver_name]['id']
    context.request.add_data(data)