#
|
|
#
|
|
#
|
|
|
|
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),
|
|
)
|