Skip to content

Commit

Permalink
refactor: Email 관련 필드는 개별 대신 dict로 전달
Browse files Browse the repository at this point in the history
  • Loading branch information
roeniss committed Feb 12, 2024
1 parent 3feff5b commit faab3e7
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 21 deletions.
8 changes: 4 additions & 4 deletions src/dhapi/client/mailjet_email_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@


class MailjetEmailClient:
def __init__(self, to_email, api_key, api_secret, _sender_email):
self._to_email = to_email
def __init__(self, recipient_email, sender_email, api_key, api_secret):
self._recipient_email = recipient_email
self._sender_email = sender_email
self._mailjet = Client(auth=(api_key, api_secret), version="v3.1")
self._sender_email = _sender_email

def send_email(self, subject, body):
data = {
"Messages": [
{
"From": {"Email": self._sender_email, "Name": "동행복권 API"},
"To": [{"Email": self._to_email, "Name": self._to_email}],
"To": [{"Email": self._recipient_email, "Name": self._recipient_email}],
"Subject": subject,
"TextPart": body,
"HTMLPart": "",
Expand Down
22 changes: 9 additions & 13 deletions src/dhapi/router/arg_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@

from dhapi.configuration.logger import set_logger
from dhapi.domain_object.lotto645_buy_request import Lotto645BuyRequest
from dhapi.router.credentials_provider import get_credentials
from dhapi.meta.version_provider import get_installed_version
from dhapi.router.credentials_provider import get_credentials


class HelpOnErrorParser(argparse.ArgumentParser):
Expand Down Expand Up @@ -112,20 +112,16 @@ def user_id(self):
def user_pw(self):
return self._args.password

def email(self):
return self._args.email

def mailjet_api_key(self):
return self._args.mailjet_api_key

def mailjet_api_secret(self):
return self._args.mailjet_api_secret

def mailjet_sender_email(self):
return self._args.mailjet_sender_email
def email_source(self):
return {
"recipient_email": self._args.email,
"sender_email": self._args.mailjet_sender_email,
"api_key": self._args.mailjet_api_key,
"api_secret": self._args.mailjet_api_secret,
}

def send_result_to_email(self):
return self.email() is not None
return self._args.email is not None

def is_quiet(self):
return self._args.quiet
Expand Down
9 changes: 6 additions & 3 deletions tests/test_arg_parser.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,13 @@ def test_given_email_flag_is_set_and_api_credentials_not_set_when_arg_parser_ini
@patch.object(sys, 'argv', ["dhapi", "buy_lotto645"])
def test_given_email_flag_not_set_when_arg_parser_email_method_used_then_no_error(self, get_credentials_mock):
sut = ArgParser()
self.assertIsNone(sut.mailjet_api_key())
self.assertIsNone(sut.mailjet_api_secret())
self.assertIsNone(sut.mailjet_sender_email())

self.assertDictEqual(sut.email_source(), {
"recipient_email": None,
"sender_email": None,
"api_key": None,
"api_secret": None,
})

@patch("dhapi.router.arg_parser.get_credentials", return_value={"mailjet_api_key": "test_key", "mailjet_api_secret": "test_secret", "mailjet_sender_email": "[email protected]"})
@patch.object(sys, 'argv', ["dhapi", "buy_lotto645", "-e", "[email protected]"])
Expand Down
2 changes: 1 addition & 1 deletion tests/test_mailjet_email_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,6 @@ class TestMailjetEmailClient(unittest.TestCase):

@unittest.skip("sending real email is not needed after checking success")
def test_send_email(self):
sut = MailjetEmailClient("EMAIL", "API_KEY", "SECRET_KEY")
sut = MailjetEmailClient("TO_EMAIL", "FROM_EMAIL", "API_KEY", "SECRET_KEY")

sut.send_email("hello", "world")

0 comments on commit faab3e7

Please sign in to comment.