Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
moto / moto / ses / models.py
Size: Mime:
from __future__ import unicode_literals
from moto.core import BaseBackend
from .utils import get_random_message_id


class Message(object):
    def __init__(self, message_id, source, subject, body, destination):
        self.id = message_id
        self.source = source
        self.subject = subject
        self.body = body
        self.destination = destination


class RawMessage(object):
    def __init__(self, message_id, source, destination, raw_data):
        self.id = message_id
        self.source = source
        self.destination = destination
        self.raw_data = raw_data


class SESQuota(object):
    def __init__(self, messages):
        self.messages = messages

    @property
    def sent_past_24(self):
        return len(self.messages)


class SESBackend(BaseBackend):
    def __init__(self):
        self.addresses = []
        self.sent_messages = []

    def verify_email_identity(self, address):
        self.addresses.append(address)

    def verify_domain(self, domain):
        self.addresses.append(domain)

    def list_identities(self):
        return self.addresses

    def delete_identity(self, identity):
        self.addresses.remove(identity)

    def send_email(self, source, subject, body, destination):
        if source not in self.addresses:
            return False

        message_id = get_random_message_id()
        message = Message(message_id, source, subject, body, destination)
        self.sent_messages.append(message)
        return message

    def send_raw_email(self, source, destination, raw_data):
        if source not in self.addresses:
            return False

        message_id = get_random_message_id()
        message = RawMessage(message_id, source, destination, raw_data)
        self.sent_messages.append(message)
        return message

    def get_send_quota(self):
        return SESQuota(self.sent_messages)

ses_backend = SESBackend()