4 fail, 464 pass in 40s
Annotations
Check warning on line 0 in tests.test_inspect
github-actions / Test Results (Python 3.11)
test_get_history_env_false__val_default_plus_envvar (tests.test_inspect) failed
junit/test-results.xml
Raw output
def test_get_history_env_false__val_default_plus_envvar():
"""
Given environments=False and sources=validation-default+envvar
Should return correct metadata history
"""
os.environ["DYNACONF_FOO"] = "from_environ"
settings = Dynaconf(
validators=[Validator("bar", default="from_val_default")]
)
history = get_history(settings)
# metadata (validation_default runs after envvar loading)
> assert len(history) == 3
E AssertionError: assert 1 == 3
E + where 1 = len([{'env': 'global', 'identifier': 'unique', 'loader': 'env_global', 'merged': False, ...}])
history = [{'env': 'global', 'identifier': 'unique', 'loader': 'env_global', 'merged': False, ...}]
settings = <dynaconf.base.LazySettings object at 0x7f5122322710>
/home/runner/work/dynaconf/dynaconf/tests/test_inspect.py:221: AssertionError
Check warning on line 0 in tests.test_inspect
github-actions / Test Results (Python 3.11)
test_get_history_env_true__val_default_plus_file (tests.test_inspect) failed
junit/test-results.xml
Raw output
tmp_path = PosixPath('/tmp/pytest-of-runner/pytest-0/test_get_history_env_true__val0')
def test_get_history_env_true__val_default_plus_file(tmp_path):
"""
Given environments=True and sources=validation-default+file
Should return correct metadata history
"""
file_a = tmp_path / "a.toml"
create_file(
file_a,
"""\
default.foo="from_default_file"
development.foo="from_development_file"
""",
)
settings = Dynaconf(
validators=[
Validator("bar", default="from_val_default_current_env"),
Validator(
"baz", env="production", default="from_val_default_prod"
),
],
settings_file=file_a,
environments=True,
)
history = get_history(settings)
> assert len(history) == 7
E AssertionError: assert 5 == 7
E + where 5 = len([{'env': 'global', 'identifier': 'init_kwargs', 'loader': 'set_method', 'merged': False, ...}, {'env': 'global', 'identifier': 'settings_module_method', 'loader': 'set_method', 'merged': False, ...}, {'env': 'default', 'identifier': '/tmp/pytest-of-runner/pytest-0/test_get_history_env_true__val0/a.toml', 'loader': 'toml', 'merged': False, ...}, {'env': 'development', 'identifier': '/tmp/pytest-of-runner/pytest-0/test_get_history_env_true__val0/a.toml', 'loader': 'toml', 'merged': False, ...}, {'env': 'global', 'identifier': 'undefined', 'loader': 'set_method', 'merged': False, ...}])
file_a = PosixPath('/tmp/pytest-of-runner/pytest-0/test_get_history_env_true__val0/a.toml')
history = [{'env': 'global', 'identifier': 'init_kwargs', 'loader': 'set_method', 'merged': False, ...}, {'env': 'global', 'iden...ml', 'merged': False, ...}, {'env': 'global', 'identifier': 'undefined', 'loader': 'set_method', 'merged': False, ...}]
settings = <dynaconf.base.LazySettings object at 0x7f512230e150>
tmp_path = PosixPath('/tmp/pytest-of-runner/pytest-0/test_get_history_env_true__val0')
/home/runner/work/dynaconf/dynaconf/tests/test_inspect.py:361: AssertionError
Check warning on line 0 in tests.test_validators
github-actions / Test Results (Python 3.11)
test_use_default_value_when_yaml_is_empty_and_explicitly_marked (tests.test_validators) failed
junit/test-results.xml
Raw output
tmpdir = local('/tmp/pytest-of-runner/pytest-0/test_use_default_value_when_ya0')
def test_use_default_value_when_yaml_is_empty_and_explicitly_marked(tmpdir):
tmpfile = tmpdir.join("settings.yaml")
tmpfile.write(YAML)
settings = Dynaconf(
settings_file=str(tmpfile),
validators=[
# Explicitly say thar default must be applied to None
Validator(
"hasemptyvalues.key1",
default="value1",
apply_default_on_none=True,
),
# The following 2 defaults must be ignored
Validator("hasemptyvalues.key2", default="value2"),
Validator("hasemptyvalues.key3", default="value3"),
# This one must be set because on YAML key is set to `@empty`
Validator("hasemptyvalues.key4", default="value4"),
],
)
settings.validators.validate()
__import__("ipdb").set_trace()
> assert settings.hasemptyvalues.key1 == "value1"
settings = <dynaconf.base.LazySettings object at 0x7f5122264d10>
tmpdir = local('/tmp/pytest-of-runner/pytest-0/test_use_default_value_when_ya0')
tmpfile = local('/tmp/pytest-of-runner/pytest-0/test_use_default_value_when_ya0/settings.yaml')
/home/runner/work/dynaconf/dynaconf/tests/test_validators.py:849:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/home/runner/work/dynaconf/dynaconf/dynaconf/base.py:121: in __getattr__
def __getattr__(self, name):
name = 'hasemptyvalues'
self = <dynaconf.base.LazySettings object at 0x7f5122264d10>
/opt/hostedtoolcache/Python/3.11.5/x64/lib/python3.11/bdb.py:92: in trace_dispatch
return self.dispatch_call(frame, arg)
arg = None
event = 'call'
frame = <frame at 0x7f512226e190, file '/home/runner/work/dynaconf/dynaconf/dynaconf/base.py', line 121, code __getattr__>
self = <IPython.core.debugger.Pdb object at 0x7f51211930d0>
/opt/hostedtoolcache/Python/3.11.5/x64/lib/python3.11/bdb.py:136: in dispatch_call
self.user_call(frame, arg)
arg = None
frame = <frame at 0x7f512226e190, file '/home/runner/work/dynaconf/dynaconf/dynaconf/base.py', line 121, code __getattr__>
self = <IPython.core.debugger.Pdb object at 0x7f51211930d0>
/opt/hostedtoolcache/Python/3.11.5/x64/lib/python3.11/pdb.py:321: in user_call
self.interaction(frame, None)
argument_list = None
frame = <frame at 0x7f512226e190, file '/home/runner/work/dynaconf/dynaconf/dynaconf/base.py', line 121, code __getattr__>
self = <IPython.core.debugger.Pdb object at 0x7f51211930d0>
/opt/hostedtoolcache/Python/3.11.5/x64/lib/python3.11/site-packages/IPython/core/debugger.py:335: in interaction
OldPdb.interaction(self, frame, traceback)
frame = <frame at 0x7f512226e190, file '/home/runner/work/dynaconf/dynaconf/dynaconf/base.py', line 121, code __getattr__>
self = <IPython.core.debugger.Pdb object at 0x7f51211930d0>
traceback = None
/opt/hostedtoolcache/Python/3.11.5/x64/lib/python3.11/pdb.py:426: in interaction
self._cmdloop()
frame = <frame at 0x7f512226e190, file '/home/runner/work/dynaconf/dynaconf/dynaconf/base.py', line 121, code __getattr__>
self = <IPython.core.debugger.Pdb object at 0x7f51211930d0>
traceback = None
/opt/hostedtoolcache/Python/3.11.5/x64/lib/python3.11/pdb.py:391: in _cmdloop
self.cmdloop()
self = <IPython.core.debugger.Pdb object at 0x7f51211930d0>
/opt/hostedtoolcache/Python/3.11.5/x64/lib/python3.11/cmd.py:126: in cmdloop
line = input(self.prompt)
intro = None
self = <IPython.core.debugger.Pdb object at 0x7f51211930d0>
stop = None
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_pytest.capture.DontReadFromInput object at 0x7f5125769d90>, size = -1
def read(self, size: int = -1) -> str:
> raise OSError(
"pytest: reading from stdin while output is captured! Consider using `-s`."
)
E OSError: pytest: reading from stdin while output is captured! Consider using `-s`.
self = <_pytest.capture.DontReadFromInput object at 0x7f5125769d90>
size = -1
/opt/hostedtoolcache/Python/3.11.5/x64/lib/python3.11/site-packages/_pytest/capture.py:202: OSError
Check warning on line 0 in tests.test_validators
github-actions / Test Results (Python 3.11)
test_ensure_cast_happens_after_must_exist (tests.test_validators) failed
junit/test-results.xml
Raw output
tmpdir = local('/tmp/pytest-of-runner/pytest-0/test_ensure_cast_happens_after0')
def test_ensure_cast_happens_after_must_exist(tmpdir):
"""#823"""
from pathlib import Path
settings = Dynaconf(
validators=[Validator("java_bin", must_exist=True, cast=Path)]
)
# must raise ValidationError instead of Path error
with pytest.raises(ValidationError):
> settings.validators.validate()
Path = <class 'pathlib.Path'>
settings = <dynaconf.base.LazySettings object at 0x7f511bdd9ad0>
tmpdir = local('/tmp/pytest-of-runner/pytest-0/test_ensure_cast_happens_after0')
/home/runner/work/dynaconf/dynaconf/tests/test_validators.py:864:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/home/runner/work/dynaconf/dynaconf/dynaconf/base.py:124: in __getattr__
self._setup()
name = 'validators'
self = <dynaconf.base.LazySettings object at 0x7f511bdd9ad0>
/home/runner/work/dynaconf/dynaconf/dynaconf/base.py:185: in _setup
self._wrapped = self._wrapper_class(
environment_variable = 'SETTINGS_FILE_FOR_DYNACONF'
self = <dynaconf.base.LazySettings object at 0x7f511bdd9ad0>
settings_module = None
/home/runner/work/dynaconf/dynaconf/dynaconf/base.py:281: in __init__
self.validators.validate(
_validators = [<dynaconf.validator.Validator object at 0x7f511bdd9b10>]
kwargs = {}
self = <dynaconf.base.Settings object at 0x7f511bdd9f10>
settings_module = None
skip_loaders = False
skip_validators = False
/home/runner/work/dynaconf/dynaconf/dynaconf/validator.py:519: in validate
validator.validate(
exclude = None
only = None
only_current_env = False
self = [<dynaconf.validator.Validator object at 0x7f511bdd9b10>]
validator = <dynaconf.validator.Validator object at 0x7f511bdd9b10>
/home/runner/work/dynaconf/dynaconf/dynaconf/validator.py:246: in validate
self._validate_items(
exclude = []
only = ['']
only_current_env = False
self = <dynaconf.validator.Validator object at 0x7f511bdd9b10>
settings = <dynaconf.base.Settings object at 0x7f511bdd9f10>
/home/runner/work/dynaconf/dynaconf/dynaconf/validator.py:280: in _validate_items
value = settings.get(name, empty)
env = 'main'
exclude = []
name = 'java_bin'
only = ['']
self = <dynaconf.validator.Validator object at 0x7f511bdd9b10>
settings = <dynaconf.base.Settings object at 0x7f511bdd9f10>
/home/runner/work/dynaconf/dynaconf/dynaconf/base.py:575: in get
value = apply_converter(cast, value, box_settings=self)
apply_default_on_none = False
cast = <class 'pathlib.Path'>
default = <dynaconf.utils.functional.Empty object at 0x7f51249840d0>
dotted_lookup = True
fresh = False
key = 'JAVA_BIN'
lookup_validator_metadata = True
nested_sep = '__'
parent = None
self = <dynaconf.base.Settings object at 0x7f511bdd9f10>
sysenv_fallback = False
v_adn = False
v_cast = <class 'pathlib.Path'>
v_default = <dynaconf.utils.functional.Empty object at 0x7f51249840d0>
validator_metadata = (<dynaconf.utils.functional.Empty object at 0x7f51249840d0>, <class 'pathlib.Path'>, False)
value = <dynaconf.utils.functional.Empty object at 0x7f51249840d0>
/home/runner/work/dynaconf/dynaconf/dynaconf/utils/parse_conf.py:288: in apply_converter
return converter_key(value)
box_settings = <dynaconf.base.Settings object at 0x7f511bdd9f10>
converter_key = <class 'pathlib.Path'>
value = <dynaconf.utils.functional.Empty object at 0x7f51249840d0>
/opt/hostedtoolcache/Python/3.11.5/x64/lib/python3.11/pathlib.py:871: in __new__
self = cls._from_parts(args)
args = (<dynaconf.utils.functional.Empty object at 0x7f51249840d0>,)
cls = <class 'pathlib.PosixPath'>
kwargs = {}
/opt/hostedtoolcache/Python/3.11.5/x64/lib/python3.11/pathlib.py:509: in _from_parts
drv, root, parts = self._parse_args(args)
args = (<dynaconf.utils.functional.Empty object at 0x7f51249840d0>,)
cls = <class 'pathlib.PosixPath'>
self = <[AttributeError("'PosixPath' object has no attribute '_drv'") raised in repr()] PosixPath object at 0x7f511bd566e0>
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
cls = <class 'pathlib.PosixPath'>
args = (<dynaconf.utils.functional.Empty object at 0x7f51249840d0>,)
@classmethod
def _parse_args(cls, args):
# This is useful when you don't want to create an instance, just
# canonicalize some constructor arguments.
parts = []
for a in args:
if isinstance(a, PurePath):
parts += a._parts
else:
> a = os.fspath(a)
E TypeError: expected str, bytes or os.PathLike object, not Empty
a = <dynaconf.utils.functional.Empty object at 0x7f51249840d0>
args = (<dynaconf.utils.functional.Empty object at 0x7f51249840d0>,)
cls = <class 'pathlib.PosixPath'>
parts = []
/opt/hostedtoolcache/Python/3.11.5/x64/lib/python3.11/pathlib.py:493: TypeError