Skip to content

TODO: Fix lookup for the root of the node

Sign in for the full log view
GitHub Actions / Test Results (Python 3.11) failed Sep 11, 2023 in 0s

4 fail, 464 pass in 40s

468 tests  ±0   464 ✔️ +8   40s ⏱️ ±0s
    1 suites ±0       0 💤 ±0 
    1 files   ±0       4  - 8 

Results for commit 9143590. ± Comparison against earlier commit 9763422.

Annotations

Check warning on line 0 in tests.test_inspect

See this annotation in the file changed.

@github-actions 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

See this annotation in the file changed.

@github-actions 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

See this annotation in the file changed.

@github-actions 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

See this annotation in the file changed.

@github-actions 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