Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tests fail on Python 3.6 and 3.7 #18

Closed
nedbat opened this issue Dec 13, 2020 · 0 comments
Closed

Tests fail on Python 3.6 and 3.7 #18

nedbat opened this issue Dec 13, 2020 · 0 comments

Comments

@nedbat
Copy link
Owner

nedbat commented Dec 13, 2020

Like this:

=============================================================================== test session starts ===============================================================================
platform darwin -- Python 3.6.10, pytest-6.1.0, py-1.9.0, pluggy-0.13.1
cachedir: .tox/py36/.pytest_cache
rootdir: /Users/ned/scriv, configfile: setup.cfg
plugins: mock-3.3.1
collected 86 items

tests/test_collect.py .............                                                                                                                                         [ 15%]
tests/test_config.py ..........F...........                                                                                                                                 [ 40%]
tests/test_create.py ..................                                                                                                                                     [ 61%]
tests/test_format_md.py .........                                                                                                                                           [ 72%]
tests/test_format_rst.py ............                                                                                                                                       [ 86%]
tests/test_gitinfo.py .....                                                                                                                                                 [ 91%]
tests/test_literals.py FFFF..                                                                                                                                               [ 98%]
tests/test_process.py .                                                                                                                                                     [100%]

==================================================================================== FAILURES =====================================================================================
______________________________________________________________________________ test_literal_reading _______________________________________________________________________________

temp_dir = PosixPath('/private/var/folders/j2/gr3cj3jn63s5q8g3bjvw57hm0000gp/T/pytest-of-ned/pytest-7/test_literal_reading0')

    def test_literal_reading(temp_dir):
        # Any setting can be read from a literal in a file.
        (temp_dir / "sub").mkdir()
        (temp_dir / "sub" / "foob.py").write_text(
            """# comment\n__version__ = "12.34.56"\n"""
        )
>       text = Config(version="literal:sub/foob.py: __version__").version

/Users/ned/scriv/tests/test_config.py:175:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
<attrs generated init scriv.config.Config>:17: in __init__
    self.__attrs_post_init__()
/Users/ned/scriv/.tox/py36/lib/python3.6/site-packages/scriv/config.py:177: in __attrs_post_init__
    self.resolve_all()
/Users/ned/scriv/.tox/py36/lib/python3.6/site-packages/scriv/config.py:191: in resolve_all
    value = self.resolve_value(value)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = Config(fragment_directory='changelog.d', format='rst', categories=['Removed', 'Added', 'Changed', 'Deprecated', 'Fixed...date.strftime('%Y-%m-%d') }}", version='literal:sub/foob.py: __version__', main_branches=['master', 'main', 'develop'])
value = 'literal:sub/foob.py: __version__'

    def resolve_value(self, value: str) -> str:
        """
        Interpret prefixes in config files to find the actual value.

        Also, "${config:format}" is replaced with the configured
        format ("rst" or "md").

        Prefixes:
            "file:" read the content from a file.
            "literal:" read a literal string from a file.

        """
        value = value.replace("${config:format}", self.format)
        if value.startswith("file:"):
            file_name = value.partition(":")[2].strip()
            file_path = Path(self.fragment_directory) / file_name
            if file_path.exists():
                value = file_path.read_text()
            else:
                try:
                    file_bytes = pkgutil.get_data(
                        "scriv", "templates/" + file_name
                    )
                except IOError as err:
                    msg = "No such file: {}".format(file_path)
                    raise Exception(msg) from err
                assert file_bytes
                value = file_bytes.decode("utf-8")
        elif value.startswith("literal:"):
            _, file_name, literal_name = value.split(":", maxsplit=2)
            found = find_literal(file_name.strip(), literal_name.strip())
            if found is None:
>               raise Exception("Couldn't find literal: {!r}".format(value))
E               Exception: Couldn't find literal: 'literal:sub/foob.py: __version__'

/Users/ned/scriv/.tox/py36/lib/python3.6/site-packages/scriv/config.py:303: Exception
_____________________________________________________________________ test_find_python_literal[version-1.2.3] _____________________________________________________________________

name = 'version', value = '1.2.3', temp_dir = PosixPath('/private/var/folders/j2/gr3cj3jn63s5q8g3bjvw57hm0000gp/T/pytest-of-ned/pytest-7/test_find_python_literal_versi0')

    @pytest.mark.parametrize(
        "name, value",
        [
            ("version", "1.2.3"),
            ("also", "xyzzy"),
            ("but", "hello there"),
            ("somewhere_else", "this would be an odd place to get the string"),
            ("a_thing_2", None),
            ("how_many", None),
        ],
    )
    def test_find_python_literal(name, value, temp_dir):
        with open("foo.py", "w") as f:
            f.write(PYTHON_CODE)
>       assert find_literal("foo.py", name) == value
E       AssertionError: assert None == '1.2.3'
E        +  where None = find_literal('foo.py', 'version')

/Users/ned/scriv/tests/test_literals.py:48: AssertionError
______________________________________________________________________ test_find_python_literal[also-xyzzy] _______________________________________________________________________

name = 'also', value = 'xyzzy', temp_dir = PosixPath('/private/var/folders/j2/gr3cj3jn63s5q8g3bjvw57hm0000gp/T/pytest-of-ned/pytest-7/test_find_python_literal_also_0')

    @pytest.mark.parametrize(
        "name, value",
        [
            ("version", "1.2.3"),
            ("also", "xyzzy"),
            ("but", "hello there"),
            ("somewhere_else", "this would be an odd place to get the string"),
            ("a_thing_2", None),
            ("how_many", None),
        ],
    )
    def test_find_python_literal(name, value, temp_dir):
        with open("foo.py", "w") as f:
            f.write(PYTHON_CODE)
>       assert find_literal("foo.py", name) == value
E       AssertionError: assert None == 'xyzzy'
E        +  where None = find_literal('foo.py', 'also')

/Users/ned/scriv/tests/test_literals.py:48: AssertionError
____________________________________________________________________ test_find_python_literal[but-hello there] ____________________________________________________________________

name = 'but', value = 'hello there', temp_dir = PosixPath('/private/var/folders/j2/gr3cj3jn63s5q8g3bjvw57hm0000gp/T/pytest-of-ned/pytest-7/test_find_python_literal_but_h0')

    @pytest.mark.parametrize(
        "name, value",
        [
            ("version", "1.2.3"),
            ("also", "xyzzy"),
            ("but", "hello there"),
            ("somewhere_else", "this would be an odd place to get the string"),
            ("a_thing_2", None),
            ("how_many", None),
        ],
    )
    def test_find_python_literal(name, value, temp_dir):
        with open("foo.py", "w") as f:
            f.write(PYTHON_CODE)
>       assert find_literal("foo.py", name) == value
E       AssertionError: assert None == 'hello there'
E        +  where None = find_literal('foo.py', 'but')

/Users/ned/scriv/tests/test_literals.py:48: AssertionError
______________________________________________ test_find_python_literal[somewhere_else-this would be an odd place to get the string] ______________________________________________

name = 'somewhere_else', value = 'this would be an odd place to get the string'
temp_dir = PosixPath('/private/var/folders/j2/gr3cj3jn63s5q8g3bjvw57hm0000gp/T/pytest-of-ned/pytest-7/test_find_python_literal_somew0')

    @pytest.mark.parametrize(
        "name, value",
        [
            ("version", "1.2.3"),
            ("also", "xyzzy"),
            ("but", "hello there"),
            ("somewhere_else", "this would be an odd place to get the string"),
            ("a_thing_2", None),
            ("how_many", None),
        ],
    )
    def test_find_python_literal(name, value, temp_dir):
        with open("foo.py", "w") as f:
            f.write(PYTHON_CODE)
>       assert find_literal("foo.py", name) == value
E       AssertionError: assert None == 'this would be an odd place to get the string'
E        +  where None = find_literal('foo.py', 'somewhere_else')

/Users/ned/scriv/tests/test_literals.py:48: AssertionError
============================================================================= short test summary info =============================================================================
FAILED tests/test_config.py::test_literal_reading - Exception: Couldn't find literal: 'literal:sub/foob.py: __version__'
FAILED tests/test_literals.py::test_find_python_literal[version-1.2.3] - AssertionError: assert None == '1.2.3'
FAILED tests/test_literals.py::test_find_python_literal[also-xyzzy] - AssertionError: assert None == 'xyzzy'
FAILED tests/test_literals.py::test_find_python_literal[but-hello there] - AssertionError: assert None == 'hello there'
FAILED tests/test_literals.py::test_find_python_literal[somewhere_else-this would be an odd place to get the string] - AssertionError: assert None == 'this would be an odd plac...
========================================================================== 5 failed, 81 passed in 1.86s ===========================================================================
ERROR: InvocationError for command /Users/ned/scriv/.tox/py36/bin/coverage run -p -m pytest -Wd (exited with code 1)
_____________________________________________________________________________________ summary _____________________________________________________________________________________
ERROR:   py36: commands failed
@nedbat nedbat closed this as completed in d74de69 Dec 13, 2020
nedbat added a commit that referenced this issue Dec 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant