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

commit 83516bb97445ef81c40c30a567703509fe29445b broke tests in a way CI isn't catching #416

Closed
ferringb opened this issue Dec 2, 2023 · 4 comments

Comments

@ferringb
Copy link
Contributor

ferringb commented Dec 2, 2023

Something differs between my environment and the CI environment, or @arthurzam ; the commit 83516bb is breaking tests/ebuild/test_eclass.py:125: in the following way for pytest:

__________________________________________________________________________________________ TestEclassDoc.test_foo_eclass __________________________________________________________________________________________

self = <tests.ebuild.test_eclass.TestEclassDoc object at 0x7fcda8472910>, tmp_path = PosixPath('/tmp/pytest-of-ferringb/pytest-26/test_foo_eclass0')

    def test_foo_eclass(self, tmp_path):
        (tmp_path / "foo.eclass").write_text(FOO_ECLASS)
        doc = eclass.EclassDoc(str(tmp_path / "foo.eclass"))
        assert doc.name == "foo.eclass"
        assert doc.vcsurl == "https://example.com/foo.eclass"
        assert doc.blurb == "Test eclass."
        assert doc.deprecated == "bar or frobnicate"
        assert doc.raw_provides == ("bar",)
        assert doc.maintainers == ("Random Person <maintainer@random.email>",)
        assert doc.authors == (
            "Another Person <another@random.email>",
            "Random Person <maintainer@random.email>",
        )
>       assert doc.description == (
            "\n\n"
            "Yadda yadda yadda.\n"
            "Lots to say here.\n\n"
            "Really, very interesting eclass.\n\n"
            "How to use it\n"
            "~~~~~~~~~~~~~\n\n\n"
            "Somehow."
        )
E       AssertionError: assert '::\n\n  Yadda yadda yadda.\n  Lots to say here.\n\n  Really, very interesting eclass.\n\nHow to use it\n~~~~~~~~~~~~~\n::\n\n  Somehow.' == '\n\nYadda yadda yadda.\nLots to say here.\n\nReally, very interesting eclass.\n\nHow to use it\n~~~~~~~~~~~~~\n\n\nSomehow.'
E         + ::
E           
E         +   Yadda yadda yadda.
E         +   Lots to say here.
E           
E         - Yadda yadda yadda.
E         - Lots to say here.
E         - 
E         - Really, very interesting eclass.
E         +   Really, very interesting eclass.
E         ? ++
E           
E           How to use it
E           ~~~~~~~~~~~~~
E         + ::
E           
E         - 
E         - Somehow.
E         +   Somehow.
E         ? ++

doc        = {'name': 'foo.eclass', 'vcsurl': 'https://example.com/foo.eclass', 'blurb': 'Test eclass.', 'deprecated': 'bar or frobnicate', 'raw_provides': ('bar',), 'maintainers': ('Random Person <maintainer@random.email>',), 'authors': ('Another Person <another@random.email>', 'Random Person <maintainer@random.email>'), 'bugreports': None, 'description': '::\n\n  Yadda yadda yadda.\n  Lots to say here.\n\n  Really, very interesting eclass.\n\nHow to use it\n~~~~~~~~~~~~~\n::\n\n  Somehow.', 'example': '::\n\n  inherit foo\n\n  src_prepare() {\n    foo_public_func\n  }', 'supported_eapis': {'0', '1', '2', '3', '4', '5', '6', '7'}, 'variables': {{'name': '_FOO_INTERNAL_ECLASS_VAR', 'deprecated': False, 'default_unset': True, 'internal': True, 'required': False, 'pre_inherit': False, 'user_variable': False, 'output_variable': False, 'description': '::\n\n  Internal variable.'}, {'name': 'FOO_PUBLIC_ECLASS_VAR', 'deprecated': 'BAR_PUBLIC_ECLASS_VAR', 'default_unset': False, 'internal': False, 'required': True, 'pre_inherit': True, 'user_variable': False, 'output_variable': False, 'description': '::\n\n  Public variable.'}, {'name': 'FOO_ANOTHER_ECLASS_VAR', 'deprecated': False, 'default_unset': False, 'internal': False, 'required': False, 'pre_inherit': False, 'user_variable': False, 'output_variable': False, 'description': '::\n\n  Yet another variable.'}}, 'functions': {{'name': '_foo_internal_func', 'returns': 'nothing special', 'deprecated': False, 'internal': True, 'maintainers': ('Some Person <someone@random.email>',), 'description': '::\n\n  Internal stub function.', 'usage': '<bar> [<baz>]'}, {'name': 'foo_public_func', 'returns': None, 'deprecated': 'bar_public_func', 'internal': False, 'maintainers': None, 'description': '::\n\n  Public stub function.', 'usage': None}}, 'function_variables': {{'name': '_FOO_INTERNAL_VAR', 'deprecated': False, 'default_unset': True, 'internal': True, 'required': False, 'description': '::\n\n  Internal variable for foo_public_func.'}, {'name': 'FOO_PUBLIC_VAR', 'deprecated': 'BAR_PUBLIC_VAR', 'default_unset': False, 'internal': False, 'required': True, 'description': '::\n\n  Public variable for foo_public_func.'}}, 'provides': None}
self       = <tests.ebuild.test_eclass.TestEclassDoc object at 0x7fcda8472910>
tmp_path   = PosixPath('/tmp/pytest-of-ferringb/pytest-26/test_foo_eclass0')

tests/ebuild/test_eclass.py:125: AssertionError
------------------------------------------------------------------------------------------------ Captured log call ------------------------------------------------------------------------------------------------
WARNING  pkgcore:eclass.py:289 '@ECLASS-VARIABLE:', line 44: deprecated, use '@ECLASS_VARIABLE' instead
============================================================================================= short test summary info =============================================================================================
FAILED tests/ebuild/test_eclass.py::TestEclassDoc::test_foo_eclass - AssertionError: assert '::\n\n  Yadda yadda yadda.\n  Lots to say here.\n\n  Really, very interesting eclass.\n\nHow to use it\n~~~~~~~~~~~~~\n::\n\n  Somehow.' == '\n\nYadda yadda yadda.\nLots to say here....
@ferringb
Copy link
Contributor Author

ferringb commented Dec 2, 2023

Kicker is, I can update the output to align, but it's not obvious to me why I am the only one seeing this. What I've traced of the eclass module, it's outputing rest raw- so it's not a dep difference.

I'm running py3.11.6 for this environment, specifically a virtualenv isolation rather than having pkgcore/snakeoil linked into the global/OS level packages. I'm suspecting that there is something in the pkgcore test paths that is evading the venv, but haven't yet confirmed it.

@ferringb
Copy link
Contributor Author

ferringb commented Dec 2, 2023

Going to close this out; there's no way this isn't some local fuckery in the venv. Reopen if others see it, but I'm assuming this has to be PEBKAC.

@ferringb ferringb closed this as completed Dec 2, 2023
@mgorny
Copy link
Contributor

mgorny commented Dec 2, 2023

Perhaps docutils version?

@ferringb
Copy link
Contributor Author

ferringb commented Dec 2, 2023

Nope, just plain old pip fighting me. I run my developmental pkgcore out of a venv; for whatever reason, the pkgcore install w/in that wasn't in "editable" mode so it was using an old version.

Stuff like this is why I don't miss python. Pardon the noise.

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

2 participants