Esempio n. 1
0
def test_configure_smtp_object_no_port(tmpdir, smtpserver, monkeypatch):
    monkeypatch.setattr(smtplib.SMTP, "__init__", mock_smtp_init)
    config = create_configuration(tmpdir, smtp_host=smtpserver.addr[0])
    email_pub = EmailPublisher(config)
    smtp_obj = email_pub.configure_smtp_object(smtpserver.addr[0], None)
    assert smtp_obj._host == smtpserver.addr[0]
    assert smtp_obj._port == 0
Esempio n. 2
0
def test_email_publisher_with_custom_defaults(tmpdir, smtpserver):
    config = create_configuration(tmpdir, smtp_host=smtpserver.addr[0],
                                  smtp_port=str(smtpserver.addr[1]))
    default_replacement_context = {"custom_replacement": "hello world"}
    email_pub = EmailPublisher(config, defaults=default_replacement_context)
    assert email_pub._replacement_context['custom_replacement'] == \
        "hello world"
Esempio n. 3
0
def test_email_publisher_with_custom_config_key(tmpdir, smtpserver):
    config = create_configuration(tmpdir, config_key="email_settings",
                                  smtp_host=smtpserver.addr[0],
                                  smtp_port=str(smtpserver.addr[1]))
    email_pub = EmailPublisher(config,
                               email_notifications_config_key="email_settings")
    assert email_pub._email_notifications_config_key == "email_settings"
Esempio n. 4
0
def test_configure_smtp_object_custom_timeout(tmpdir, smtpserver, monkeypatch):
    monkeypatch.setattr(smtplib.SMTP, "__init__", mock_smtp_init)
    config = create_configuration(tmpdir, smtp_port=str(smtpserver.addr[1]))
    timeout_seconds = 15
    email_pub = EmailPublisher(config, connect_timeout_seconds=timeout_seconds)
    smtp_obj = email_pub.configure_smtp_object(smtpserver.addr[0],
                                               smtpserver.addr[1])
    assert smtp_obj._timeout == timeout_seconds
Esempio n. 5
0
def test_email_publisher_with_replacement_context_defaults(tmpdir, smtpserver):
    config = create_configuration(tmpdir, smtp_host=smtpserver.addr[0],
                                  smtp_port=str(smtpserver.addr[1]))
    general_defaults = config['email_defaults']['general']
    email_pub = EmailPublisher(config, defaults=general_defaults)
    sender = email_pub._replacement_context['email_sender']['real_name']
    recipient = \
        email_pub._replacement_context['email_recipients'][0]['real_name']
    assert sender == "Alarmageddon Monitor"
    assert recipient == "Test Recipient"
Esempio n. 6
0
def test_email_publisher_with_defaults(tmpdir, smtpserver):
    config = create_configuration(tmpdir, smtp_host=smtpserver.addr[0],
                                  smtp_port=str(smtpserver.addr[1]))
    email_pub = EmailPublisher(config)
    assert email_pub._replacement_context == {}
    assert email_pub._config['email_host'] == smtpserver.addr[0]
    assert email_pub._config['email_port'] == smtpserver.addr[1]
    assert email_pub._email_notifications_config_key == \
        EmailPublisher.EMAIL_NOTIFICATIONS_CONFIG_KEY
    assert email_pub.name() == "EmailPublisher"
    assert email_pub.priority_threshold is None
    assert email_pub._connect_timeout == 10
Esempio n. 7
0
def test_enrich_no_runtime_context(httpserver):
    httpserver.serve_content("Not Found", 404)
    http_validator = \
        HttpValidation.get(httpserver.url).expect_status_codes([200])
    email_settings = {"email_type": "test_alert",
                      "subject": "subject test line",
                      "body": "body test",
                      "sender": {"real_name": "Alarmageddon Monitor",
                                 "address": "*****@*****.**"},
                      "recipients": [{"real_name": "Test Recipient",
                                      "address":
                                      "*****@*****.**"}]
                      }

    emailer.enrich(http_validator, email_settings)
    temp_pub = EmailPublisher({"fake": "config"})
    data = http_validator.get_enriched(temp_pub)
    assert data["email_settings"] == email_settings
    assert data["runtime_context"] == {}
Esempio n. 8
0
def test_can_publish_requires_recipients(tmpdir, smtpserver,
                                         monkeypatch, httpserver):
    email_pub = create_default_email_publisher(tmpdir, smtpserver)
    http_validator = \
        HttpValidation.get(httpserver.url).expect_status_codes([200])
    email_settings = {"email_type": "test_alert",
                      "subject": "subject test line",
                      "body": "body test",
                      "sender": {"real_name": "Alarmageddon Monitor",
                                 "address": "*****@*****.**"},
                      "recipients": [{"real_name": "Test Recipient",
                                      "address":
                                      "*****@*****.**"}]
                      }
    emailer.enrich(http_validator, email_settings)
    temp_pub = EmailPublisher({"fake": "config"})
    data = http_validator.get_enriched(temp_pub)
    monkeypatch.delitem(data['email_settings'], "recipients")
    result = Success("validation name", http_validator)
    assert email_pub._can_publish(result) is False
Esempio n. 9
0
def test_email_publisher_with_custom_priority(tmpdir, smtpserver):
    config = create_configuration(tmpdir, smtp_host=smtpserver.addr[0],
                                  smtp_port=str(smtpserver.addr[1]))
    email_pub = EmailPublisher(config, priority_threshold=Priority.CRITICAL)
    assert email_pub.priority_threshold == Priority.CRITICAL
Esempio n. 10
0
def test_email_publisher_with_custom_name(tmpdir, smtpserver):
    config = create_configuration(tmpdir, smtp_host=smtpserver.addr[0],
                                  smtp_port=str(smtpserver.addr[1]))
    email_pub = EmailPublisher(config, name="Custom Name")
    assert email_pub.name() == "Custom Name"
Esempio n. 11
0
def create_default_email_publisher(tmpdir, smtpserver):
    config = create_configuration(tmpdir, smtp_host=smtpserver.addr[0],
                                  smtp_port=str(smtpserver.addr[1]))
    return EmailPublisher(config, defaults=config["email_defaults"]["general"])
Esempio n. 12
0
def test_email_publisher_repr(tmpdir, smtpserver):
    config = create_configuration(tmpdir, smtp_host=smtpserver.addr[0],
                                  smtp_port=str(smtpserver.addr[1]))
    email_pub = EmailPublisher(config)
    email_pub.__repr__()
Esempio n. 13
0
def test_requires_config():
    with pytest.raises(ValueError):
        EmailPublisher(config=None)
Esempio n. 14
0
def test_email_publisher_with_custom_timeout_seconds(tmpdir, smtpserver):
    config = create_configuration(tmpdir, smtp_host=smtpserver.addr[0],
                                  smtp_port=str(smtpserver.addr[1]))
    timeout_seconds = 15
    email_pub = EmailPublisher(config, connect_timeout_seconds=timeout_seconds)
    assert email_pub._connect_timeout == timeout_seconds