Files
github-octodns/tests/test_octodns_secret_environ.py
2024-03-17 12:34:20 -07:00

40 lines
1.1 KiB
Python

#
#
#
from os import environ
from unittest import TestCase
from octodns.context import ContextDict
from octodns.secret.environ import EnvironSecrets, EnvironSecretsException
class TestEnvironSecrets(TestCase):
def test_environ_secrets(self):
# put some secrets into our env
environ['THIS_EXISTS'] = 'and has a val'
environ['THIS_IS_AN_INT'] = '42'
environ['THIS_IS_A_FLOAT'] = '43.44'
es = EnvironSecrets('env')
source = ContextDict({}, context='xyz')
v = es.fetch('THIS_EXISTS', source)
self.assertEqual('and has a val', v)
self.assertIsInstance(v, str)
v = es.fetch('THIS_IS_AN_INT', source)
self.assertEqual(42, v)
self.assertIsInstance(v, int)
v = es.fetch('THIS_IS_A_FLOAT', source)
self.assertEqual(43.44, v)
self.assertIsInstance(v, float)
with self.assertRaises(EnvironSecretsException) as ctx:
es.fetch('DOES_NOT_EXIST', source)
self.assertEqual(
'Incorrect provider config, missing env var DOES_NOT_EXIST, xyz',
str(ctx.exception),
)