def test_reports_not_validated_with_url_if_node_flag_is_false(self):
        Node.objects.update(validate_catalog_urls=False)
        with patch('monitoreo.apps.dashboard.report_generators.DataJson.validate_catalog') as m:
            send_validations()

        broken_links_call_value = m.call_args_list[0][1]['broken_links']
        self.assertFalse(broken_links_call_value)
    def test_reports_validated_without_url_by_default(self):
        with patch(
                'monitoreo.apps.dashboard.report_generators.DataJson.validate_catalog'
        ) as m:
            send_validations()

        broken_links_call_value = m.call_args_list[0][1]['broken_links']
        self.assertFalse(broken_links_call_value)
    def test_send_error_mail(self):
        def mock_side_effect(catalog, catalog_format=None, verify_ssl=False, url_check_timeout=1):
            raise NonParseableCatalog(catalog, 'Test Error')

        mail.outbox = []
        with patch('monitoreo.apps.dashboard.report_generators.DataJson',
                   side_effect=mock_side_effect):
            send_validations()

        expected_header = 'Ocurrió un error intentando acceder al catálogo:'
        expected_error = 'Test Error'
        error_mail = mail.outbox[0]
        self.assertEqual(2, len(mail.outbox))
        self.assertTrue(expected_header in error_mail.body)
        self.assertTrue(expected_error in error_mail.body)
 def test_send_report(self):
     mail.outbox = []
     send_validations()
     self.assertEqual(1, len(mail.outbox))