Example #1
0
 def test_alert_without_model_or_conditions(self):
     with mock.patch("tests.alerts.Alert1.model", None):
         with self.assertRaises(NotImplementedError):
             run.execute_alert(Alert1, sync=True)
     with mock.patch("tests.alerts.Alert1.model", None):
         with self.assertRaises(NotImplementedError):
             run.execute_alert(Alert1, sync=True)
Example #2
0
 def test_alert_without_model_or_conditions(self):
     with mock.patch("tests.alerts.Alert1.model", None):
         with self.assertRaises(NotImplementedError):
             run.execute_alert(Alert1, sync=True)
     with mock.patch("tests.alerts.Alert1.model", None):
         with self.assertRaises(NotImplementedError):
             run.execute_alert(Alert1, sync=True)
Example #3
0
    def test_execute_alert(self):
        alert_to = Alert1.alert_to[0]

        sample_id = None
        with db.session_scope() as session:
            sample = SampleModel(name="catch_alert")
            session.add(sample)
            session.commit()
            sample_id = sample.id

        run.execute_alert(Alert1, sync=True)
        self.assertEquals(alert_to.fp.getvalue(), "catch_alert")
        with db.session_scope() as session:
            query = session.query(Alerted)
            self.assertEqual(query.count(), 1)
            alerted = query.first()
            sample = session.query(SampleModel).get(sample_id)
            self.assertEquals(alerted.model, sample)
            self.assertEquals(alerted.alert, Alert1)

        run.execute_alert(Alert1, sync=True)
        with db.session_scope() as session:
            query = session.query(Alerted)
            self.assertEqual(query.count(), 1)
            alerted = query.first()
            sample = session.query(SampleModel).get(sample_id)
            self.assertEquals(alerted.model, sample)
            self.assertEquals(alerted.alert, Alert1)
Example #4
0
    def test_execute_alert(self):
        alert_to = Alert1.alert_to[0]

        sample_id = None
        with db.session_scope() as session:
            sample = SampleModel(name="catch_alert")
            session.add(sample)
            session.commit()
            sample_id = sample.id

        run.execute_alert(Alert1, sync=True)
        self.assertEquals(alert_to.fp.getvalue(), "catch_alert")
        with db.session_scope() as session:
            query = session.query(Alerted)
            self.assertEqual(query.count(), 1)
            alerted = query.first()
            sample = session.query(SampleModel).get(sample_id)
            self.assertEquals(alerted.model, sample)
            self.assertEquals(alerted.alert, Alert1)

        run.execute_alert(Alert1, sync=True)
        with db.session_scope() as session:
            query = session.query(Alerted)
            self.assertEqual(query.count(), 1)
            alerted = query.first()
            sample = session.query(SampleModel).get(sample_id)
            self.assertEquals(alerted.model, sample)
            self.assertEquals(alerted.alert, Alert1)
Example #5
0
    def test_email_endpoint(self, smtp):
        with db.session_scope() as session:
            sample = SampleModel(name="catch_alert")
            session.add(sample)
            session.commit()

        to = ["*****@*****.**"]
        alert_to = ep.Email(to)
        with mock.patch("tests.alerts.Alert1.alert_to", [alert_to]):
            run.execute_alert(Alert1, sync=True)
            actual = alert_to.server.sendmail.call_args[0][:2]
            expected = (conf.settings.EMAIL["user"], to)
            self.assertEquals(actual, expected)
Example #6
0
    def test_email_endpoint(self, smtp):
        with db.session_scope() as session:
            sample = SampleModel(name="catch_alert")
            session.add(sample)
            session.commit()

        to = ["*****@*****.**"]
        alert_to = ep.Email(to)
        with mock.patch("tests.alerts.Alert1.alert_to", [alert_to]):
            run.execute_alert(Alert1, sync=True)
            actual = alert_to.server.sendmail.call_args[0][:2]
            expected = (conf.settings.EMAIL["user"], to)
            self.assertEquals(actual, expected)
Example #7
0
    def test_execute_alert_default_render(self):
        alert_to = Alert1.alert_to[0]

        with db.session_scope() as session:
            sample = SampleModel(name="catch_alert")
            session.add(sample)
            session.commit()

        expected = []

        def render(self, *args, **kwargs):
            rendered = super(Alert1, self).render_alert(*args, **kwargs)
            expected.append(rendered)
            return expected[-1]

        with mock.patch("tests.alerts.Alert1.render_alert", render):
            run.execute_alert(Alert1, sync=True)
        self.assertEquals(alert_to.fp.getvalue(), expected[-1])
Example #8
0
    def test_manual_register_filter_registered(self):

        with db.session_scope() as session:
            sample = SampleModel(name="catch_alert")
            session.add(sample)
            session.commit()

        with self.assertRaises(NotImplementedError):
            run.execute_alert(Alert1, sync=True)

        with mock.patch("tests.alerts.Alert1.filter_registered") as flt_reg:
            run.execute_alert(Alert1, sync=True)
            with db.session_scope() as session:
                actual = flt_reg.call_args[0][0].statement.compile(db.engine)
                expected = session.query(Alert1.model).filter(
                    *Alert1.conditions).statement.compile(db.engine)
                self.assertEquals(str(actual), str(expected))
                self.assertEquals(actual.params, expected.params)
Example #9
0
    def test_execute_alert_default_render(self):
        alert_to = Alert1.alert_to[0]

        with db.session_scope() as session:
            sample = SampleModel(name="catch_alert")
            session.add(sample)
            session.commit()

        expected = []

        def render(self, *args, **kwargs):
            rendered = super(Alert1, self).render_alert(*args, **kwargs)
            expected.append(rendered)
            return expected[-1]

        with mock.patch("tests.alerts.Alert1.render_alert", render):
            run.execute_alert(Alert1, sync=True)
        self.assertEquals(alert_to.fp.getvalue(), expected[-1])
Example #10
0
    def test_manual_register_filter_registered(self):

        with db.session_scope() as session:
            sample = SampleModel(name="catch_alert")
            session.add(sample)
            session.commit()

        with self.assertRaises(NotImplementedError):
            run.execute_alert(Alert1, sync=True)

        with mock.patch("tests.alerts.Alert1.filter_registered") as flt_reg:
            run.execute_alert(Alert1, sync=True)
            with db.session_scope() as session:
                actual = flt_reg.call_args[0][0].statement.compile(db.engine)
                expected = session.query(
                    Alert1.model
                ).filter(*Alert1.conditions).statement.compile(db.engine)
                self.assertEquals(str(actual), str(expected))
                self.assertEquals(actual.params, expected.params)
Example #11
0
    def test_manual_register_register(self):
        sample_id = None
        with db.session_scope() as session:
            sample = SampleModel(name="catch_alert")
            session.add(sample)
            session.commit()
            sample_id = sample.id

        with self.assertRaises(NotImplementedError):
            run.execute_alert(Alert1, sync=True)

        called_with = []

        def reg(self, obj):
            called_with.append({"id": obj.id, "name": obj.name})

        with mock.patch("tests.alerts.Alert1.register", reg):
            run.execute_alert(Alert1, sync=True)
            self.assertEquals(len(called_with), 1)
            with db.session_scope() as session:
                actual = called_with[0]
                sample = session.query(SampleModel).get(sample_id)
                self.assertEquals(actual["id"], sample.id)
                self.assertEquals(actual["name"], sample.name)
Example #12
0
    def test_manual_register_register(self):
        sample_id = None
        with db.session_scope() as session:
            sample = SampleModel(name="catch_alert")
            session.add(sample)
            session.commit()
            sample_id = sample.id

        with self.assertRaises(NotImplementedError):
            run.execute_alert(Alert1, sync=True)

        called_with = []

        def reg(self, obj):
            called_with.append({"id": obj.id, "name": obj.name})

        with mock.patch("tests.alerts.Alert1.register", reg):
            run.execute_alert(Alert1, sync=True)
            self.assertEquals(len(called_with), 1)
            with db.session_scope() as session:
                actual = called_with[0]
                sample = session.query(SampleModel).get(sample_id)
                self.assertEquals(actual["id"], sample.id)
                self.assertEquals(actual["name"], sample.name)
Example #13
0
 def test_alert_return_no_model(self):
     with mock.patch("tests.alerts.Alert1.generate", return_value=[None]):
         with self.assertRaises(TypeError):
             run.execute_alert(Step1, sync=True)
Example #14
0
 def test_procces_corectly_created(self, *args):
     with mock.patch("tests.alerts.Alert1.procno", 20):
         procs = run.execute_alert(Alert1)
         self.assertEqual(len(procs), 20)
Example #15
0
 def test_execute_no_alert(self):
     with self.assertRaises(TypeError):
         run.execute_alert("foo", sync=True)
Example #16
0
 def test_alert_return_no_model(self):
     with mock.patch("tests.alerts.Alert1.generate", return_value=[None]):
         with self.assertRaises(TypeError):
             run.execute_alert(Step1, sync=True)
Example #17
0
 def test_execute_no_alert(self):
     with self.assertRaises(TypeError):
         run.execute_alert("foo", sync=True)