import os import unittest import sendgrid.helpers.inbound.config from sendgrid.helpers.inbound.config import Config class UnitTests(unittest.TestCase): def setUp(self): self.config = Config() def test_initialization(self): endpoint = '/inbound' port = 5000 keys = [ 'from', 'attachments', 'headers', 'text', 'envelope', 'to', 'html', 'sender_ip', 'attachment-info', 'subject', 'dkim', 'SPF', 'charsets', 'content-ids', 'spam_report', 'spam_score', 'email', ] host = 'http://127.0.0.1:5000/inbound' self.assertTrue(self.config.debug_mode) self.assertEqual(self.config.endpoint, endpoint) self.assertEqual(self.config.host, host) self.assertEqual(self.config.port, port) for key in keys: self.assertIn(key, self.config.keys) def test_init_environment_should_set_env_from_dotenv(self): config_file = sendgrid.helpers.inbound.config.__file__ env_file_path = '{0}/.env'.format(os.path.abspath(os.path.dirname(config_file))) with open(env_file_path, 'w') as f: f.write('RANDOM_VARIABLE=RANDOM_VALUE') Config() os.remove(env_file_path) self.assertEqual(os.environ['RANDOM_VARIABLE'], 'RANDOM_VALUE') def test_init_environment_should_not_set_env_if_format_is_invalid(self): config_file = sendgrid.helpers.inbound.config.__file__ env_file_path = os.path.abspath(os.path.dirname(config_file)) + '/.env' with open(env_file_path, 'w') as f: f.write('RANDOM_VARIABLE=RANDOM_VALUE=ANOTHER_RANDOM_VALUE') Config() os.remove(env_file_path) self.assertIsNone(os.environ.get('RANDOM_VARIABLE'))