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
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"
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"
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
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"
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
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"] == {}
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
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
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"
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"])
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__()
def test_requires_config(): with pytest.raises(ValueError): EmailPublisher(config=None)
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