75 lines
1.9 KiB
Python
75 lines
1.9 KiB
Python
import numbers
|
|
import os
|
|
import unittest
|
|
|
|
import modules.flags
|
|
from modules import extra_utils
|
|
|
|
|
|
class TestUtils(unittest.TestCase):
|
|
def test_try_eval_env_var(self):
|
|
test_cases = [
|
|
{
|
|
"input": ("foo", str),
|
|
"output": "foo"
|
|
},
|
|
{
|
|
"input": ("1", int),
|
|
"output": 1
|
|
},
|
|
{
|
|
"input": ("1.0", float),
|
|
"output": 1.0
|
|
},
|
|
{
|
|
"input": ("1", numbers.Number),
|
|
"output": 1
|
|
},
|
|
{
|
|
"input": ("1.0", numbers.Number),
|
|
"output": 1.0
|
|
},
|
|
{
|
|
"input": ("true", bool),
|
|
"output": True
|
|
},
|
|
{
|
|
"input": ("True", bool),
|
|
"output": True
|
|
},
|
|
{
|
|
"input": ("false", bool),
|
|
"output": False
|
|
},
|
|
{
|
|
"input": ("False", bool),
|
|
"output": False
|
|
},
|
|
{
|
|
"input": ("True", str),
|
|
"output": "True"
|
|
},
|
|
{
|
|
"input": ("False", str),
|
|
"output": "False"
|
|
},
|
|
{
|
|
"input": ("['a', 'b', 'c']", list),
|
|
"output": ['a', 'b', 'c']
|
|
},
|
|
{
|
|
"input": ("{'a':1}", dict),
|
|
"output": {'a': 1}
|
|
},
|
|
{
|
|
"input": ("('foo', 1)", tuple),
|
|
"output": ('foo', 1)
|
|
}
|
|
]
|
|
|
|
for test in test_cases:
|
|
value, expected_type = test["input"]
|
|
expected = test["output"]
|
|
actual = extra_utils.try_eval_env_var(value, expected_type)
|
|
self.assertEqual(expected, actual)
|