Beispiel #1
0
    def test_notify(self):
        data = {'query': 'Kashmir'}
        failed_alert = Alert.create(data, self.role_no_email.id)
        failed_alert.notified_at = datetime.utcnow() - timedelta(hours=72)

        alert = Alert.create(data, self.role_email.id)
        alert.notified_at = datetime.utcnow() + timedelta(hours=72)
        db.session.commit()

        res = get_notifications(self.role_email)
        notcount = res.get('hits').get('total').get('value')
        assert notcount == 0, notcount

        db.session.refresh(alert)
        alert.notified_at = datetime.utcnow() - timedelta(hours=72)
        db.session.add(alert)
        db.session.commit()

        check_alerts()
        res = get_notifications(self.role_email)
        notcount = res.get('hits').get('total').get('value')
        assert notcount == 1, res.get('hits')

        check_alerts()
        res = get_notifications(self.role_email)
        notcount = res.get('hits').get('total').get('value')
        assert notcount == 1, res.get('hits')
Beispiel #2
0
def create():
    """Creates an alert for a given query string.
    ---
    post:
      summary: Create an alert
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AlertCreate'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Alert'
          description: OK
      tags:
        - Alert
    """
    require(request.authz.session_write)
    data = parse_request("AlertCreate")
    alert = Alert.create(data, request.authz.id)
    db.session.commit()
    tag_request(alert_id=alert.id)
    return AlertSerializer.jsonify(alert)
Beispiel #3
0
    def test_notify(self):
        data = {'query_text': '', 'label': 'Test Alert'}
        alert = Alert.create(data, self.role_email)
        alert.notified_at = datetime.utcnow() + timedelta(hours=72)
        db.session.commit()

        with mail.record_messages() as outbox:
            check_alerts()
            assert len(outbox) == 0, outbox

        db.session.refresh(alert)
        alert.notified_at = datetime.utcnow() - timedelta(hours=72)
        db.session.add(alert)
        db.session.commit()

        with mail.record_messages() as outbox:
            check_alerts()
            assert len(outbox) == 1, outbox
            msg = outbox[0]
            assert 'Test Alert' in msg.subject, msg
            assert '*****@*****.**' in msg.recipients, msg

        with mail.record_messages() as outbox:
            check_alerts()
            assert len(outbox) == 0, outbox
Beispiel #4
0
def create():
    authz.require(authz.logged_in())
    alert = Alert.create(request_data(),
                         request.auth_role)
    db.session.commit()
    log_event(request)
    return view(alert.id)
Beispiel #5
0
def create():
    require(request.authz.session_write)
    data = parse_request(AlertSchema)
    alert = Alert.create(data, request.authz.id)
    db.session.commit()
    tag_request(alert_id=alert.id)
    return AlertSerializer.jsonify(alert)
Beispiel #6
0
    def test_notify(self):
        data = {'query_text': '', 'label': 'Test Alert'}
        alert = Alert.create(data, self.role_email)
        alert.notified_at = datetime.utcnow() + timedelta(hours=72)
        db.session.commit()

        with mail.record_messages() as outbox:
            check_alerts()
            assert len(outbox) == 0, outbox

        db.session.refresh(alert)
        alert.notified_at = datetime.utcnow() - timedelta(hours=72)
        db.session.add(alert)
        db.session.commit()

        with mail.record_messages() as outbox:
            check_alerts()
            assert len(outbox) == 1, outbox
            msg = outbox[0]
            assert 'Test Alert' in msg.subject, msg
            assert '*****@*****.**' in msg.recipients, msg

        with mail.record_messages() as outbox:
            check_alerts()
            assert len(outbox) == 0, outbox
Beispiel #7
0
    def test_notify_no_email(self):
        data = {'query': {}, 'custom_label': 'Test Alert'}
        assert self.role_no_email.email is None, self.role_no_email.email
        alert = Alert.create(data, self.role_no_email)
        alert.notified_at = datetime.utcnow() - timedelta(hours=72)
        db.session.commit()

        notcount = Notification.all().count()
        assert notcount == 0, notcount
Beispiel #8
0
    def test_notify_no_email(self):
        data = {'query': {}, 'custom_label': 'Test Alert'}
        assert self.role_no_email.email is None, self.role_no_email.email
        alert = Alert.create(data, self.role_no_email)
        alert.notified_at = datetime.utcnow() - timedelta(hours=72)
        db.session.commit()

        with mail.record_messages() as outbox:
            check_alerts()
            assert len(outbox) == 0, outbox
Beispiel #9
0
    def test_notify_entity(self):
        data = {'query': 'kwazulu'}
        alert = Alert.create(data, self.role_email.id)
        alert.notified_at = datetime.utcnow() - timedelta(hours=72)
        db.session.add(alert)
        db.session.commit()

        check_alerts()
        notcount = Notification.all().count()
        assert notcount == 2, notcount
Beispiel #10
0
    def test_notify_no_email(self):
        data = {'query': {}, 'custom_label': 'Test Alert'}
        assert self.role_no_email.email is None, self.role_no_email.email
        alert = Alert.create(data, self.role_no_email)
        alert.notified_at = datetime.utcnow() - timedelta(hours=72)
        db.session.commit()

        with mail.record_messages() as outbox:
            check_alerts()
            assert len(outbox) == 0, outbox
    def test_notify_entity(self):
        data = {'query_text': 'kwazulu', 'label': 'Test Alert'}
        alert = Alert.create(data, self.role_email.id)
        alert.notified_at = datetime.utcnow() - timedelta(hours=72)
        db.session.add(alert)
        db.session.commit()

        check_alerts()
        notcount = Notification.all().count()
        assert notcount == 2, notcount
Beispiel #12
0
    def test_notify(self):
        data = {'query': 'Kashmir'}
        failed_alert = Alert.create(data, self.role_no_email.id)
        failed_alert.notified_at = datetime.utcnow() - timedelta(hours=72)

        alert = Alert.create(data, self.role_email.id)
        alert.notified_at = datetime.utcnow() + timedelta(hours=72)
        db.session.commit()

        notcount = Notification.all().count()
        assert notcount == 0, notcount

        db.session.refresh(alert)
        alert.notified_at = datetime.utcnow() - timedelta(hours=72)
        db.session.add(alert)
        db.session.commit()

        check_alerts()
        notcount = Notification.all().count()
        assert notcount == 1, notcount

        check_alerts()
        notcount = Notification.all().count()
        assert notcount == 1, notcount
Beispiel #13
0
    def test_notify(self):
        data = {'query_text': '', 'label': 'Test Alert'}
        alert = Alert.create(data, self.role_email)
        alert.notified_at = datetime.utcnow() + timedelta(hours=72)
        db.session.commit()

        notcount = Notification.all().count()
        assert notcount == 0, notcount

        db.session.refresh(alert)
        alert.notified_at = datetime.utcnow() - timedelta(hours=72)
        db.session.add(alert)
        db.session.commit()

        check_alerts()
        notcount = Notification.all().count()
        assert notcount == 3, notcount

        check_alerts()
        notcount = Notification.all().count()
        assert notcount == 3, notcount
Beispiel #14
0
    def test_notify(self):
        data = {'query': 'fruit'}
        alert = Alert.create(data, self.role_email.id)
        alert.notified_at = datetime.utcnow() + timedelta(hours=72)
        db.session.commit()

        notcount = Notification.all().count()
        assert notcount == 0, notcount

        db.session.refresh(alert)
        alert.notified_at = datetime.utcnow() - timedelta(hours=72)
        db.session.add(alert)
        db.session.commit()

        check_alerts()
        notcount = Notification.all().count()
        assert notcount == 1, notcount

        check_alerts()
        notcount = Notification.all().count()
        assert notcount == 1, notcount
Beispiel #15
0
def create():
    require(request.authz.session_write)
    data = parse_request(schema=AlertSchema)
    alert = Alert.create(data, request.authz.role)
    db.session.commit()
    return view(alert.id)
Beispiel #16
0
def create():
    request.authz.require(request.authz.session_write())
    alert = Alert.create(request_data(), request.authz.role)
    db.session.commit()
    log_event(request)
    return view(alert.id)
Beispiel #17
0
def create():
    require(request.authz.session_write)
    data = parse_request(AlertSchema)
    alert = Alert.create(data, request.authz.id)
    db.session.commit()
    return AlertSerializer.jsonify(alert)
Beispiel #18
0
def create():
    authz.require(authz.logged_in())
    alert = Alert.create(request_data(), request.auth_role)
    db.session.commit()
    log_event(request)
    return view(alert.id)