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

0.20.44: pytest is failing in dulwich/tests/test_pack.py::TestPack::test_copy #988

Open
kloczek opened this issue Jun 30, 2022 · 6 comments

Comments

@kloczek
Copy link

kloczek commented Jun 30, 2022

Looks like with new version pytest is failing in new unit.

+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-dulwich-0.20.44-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-dulwich-0.20.44-2.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra --ignore dulwich/contrib/test_swift_smoke.py
=========================================================================== test session starts ============================================================================
platform linux -- Python 3.8.13, pytest-7.1.2, pluggy-1.0.0
rootdir: /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.20.44
collected 1442 items

dulwich/contrib/test_paramiko_vendor.py ...                                                                                                                          [  0%]
dulwich/contrib/test_release_robot.py ..                                                                                                                             [  0%]
dulwich/contrib/test_swift.py .........................................                                                                                              [  3%]
dulwich/tests/test_archive.py .....                                                                                                                                  [  3%]
dulwich/tests/test_blackbox.py ...                                                                                                                                   [  3%]
dulwich/tests/test_bundle.py .                                                                                                                                       [  3%]
dulwich/tests/test_client.py ....................s.............................................................................................                      [ 11%]
dulwich/tests/test_config.py .......................................ss................                                                                               [ 15%]
dulwich/tests/test_diff_tree.py .s.s....................................ss.s.s....................                                                                   [ 20%]
dulwich/tests/test_fastexport.py .............                                                                                                                       [ 21%]
dulwich/tests/test_file.py .s.........                                                                                                                               [ 21%]
dulwich/tests/test_grafts.py ....................                                                                                                                    [ 23%]
dulwich/tests/test_graph.py .........                                                                                                                                [ 23%]
dulwich/tests/test_greenthreads.py ...                                                                                                                               [ 24%]
dulwich/tests/test_hooks.py ...                                                                                                                                      [ 24%]
dulwich/tests/test_ignore.py ...............                                                                                                                         [ 25%]
dulwich/tests/test_index.py ......................................                                                                                                   [ 28%]
dulwich/tests/test_lfs.py ..                                                                                                                                         [ 28%]
dulwich/tests/test_line_ending.py ..................                                                                                                                 [ 29%]
dulwich/tests/test_lru_cache.py ...............................                                                                                                      [ 31%]
dulwich/tests/test_mailmap.py ..                                                                                                                                     [ 31%]
dulwich/tests/test_missing_obj_finder.py ................                                                                                                            [ 32%]
dulwich/tests/test_object_store.py ...........................................................................................                                       [ 39%]
dulwich/tests/test_objects.py ..................................................s..s.s......................................                                         [ 45%]
dulwich/tests/test_objectspec.py ................................                                                                                                    [ 47%]
dulwich/tests/test_pack.py .............................F..............................................................                                              [ 54%]
dulwich/tests/test_patch.py ..s..................                                                                                                                    [ 55%]
dulwich/tests/test_porcelain.py ................................................................................................................................     [ 64%]
dulwich/tests/test_protocol.py ..........................................                                                                                            [ 67%]
dulwich/tests/test_reflog.py .....                                                                                                                                   [ 67%]
dulwich/tests/test_refs.py .................................................................                                                                         [ 72%]
dulwich/tests/test_repository.py .....................................................................................                                               [ 78%]
dulwich/tests/test_server.py .....................................................                                                                                   [ 81%]
dulwich/tests/test_stash.py .                                                                                                                                        [ 81%]
dulwich/tests/test_utils.py ......                                                                                                                                   [ 82%]
dulwich/tests/test_walk.py ...........x......................                                                                                                        [ 84%]
dulwich/tests/test_web.py ................................                                                                                                           [ 86%]
dulwich/tests/compat/test_client.py sssssssssssssssss..................................s................                                                             [ 91%]
dulwich/tests/compat/test_pack.py .s..                                                                                                                               [ 91%]
dulwich/tests/compat/test_patch.py .                                                                                                                                 [ 92%]
dulwich/tests/compat/test_porcelain.py ..                                                                                                                            [ 92%]
dulwich/tests/compat/test_repository.py ........................                                                                                                     [ 93%]
dulwich/tests/compat/test_server.py ............................                                                                                                     [ 95%]
dulwich/tests/compat/test_utils.py .....                                                                                                                             [ 96%]
dulwich/tests/compat/test_web.py ...............................................ss.sss.ss                                                                            [100%]

================================================================================= FAILURES =================================================================================
____________________________________________________________________________ TestPack.test_copy ____________________________________________________________________________

self = <dulwich.tests.test_pack.TestPack testMethod=test_copy>

    def test_copy(self):
        with self.get_pack(pack1_sha) as origpack:
            self.assertSucceeds(origpack.index.check)
            basename = os.path.join(self.tempdir, "Elch")
            write_pack(basename, origpack.pack_tuples())

            with Pack(basename) as newpack:
                self.assertEqual(origpack, newpack)
                self.assertSucceeds(newpack.index.check)
                self.assertEqual(origpack.name(), newpack.name())
>               self.assertEqual(
                    origpack.index.get_pack_checksum(),
                    newpack.index.get_pack_checksum(),
                )
E               AssertionError: b'r\x19\x80\xe8f\xaf\x9a_\x93\xadgAD\xe1E\x9b\x8b\xa3\xe7\xb7' != b'j:\x9f\xee\xa6;\x82\xbcqo1?\x88\xc4\xed\x88\xad\xfe\x7f\x1a'

dulwich/tests/test_pack.py:439: AssertionError
============================================================================= warnings summary =============================================================================
dulwich/tests/test_client.py:724
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.20.44/dulwich/tests/test_client.py:724: PytestCollectionWarning: cannot collect test class 'TestSSHVendor' because it has a __init__ constructor (from: dulwich/tests/test_client.py)
    class TestSSHVendor(object):

dulwich/tests/test_pack.py:950
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.20.44/dulwich/tests/test_pack.py:950: PytestCollectionWarning: cannot collect test class 'TestPackIterator' because it has a __init__ constructor (from: dulwich/tests/test_pack.py)
    class TestPackIterator(DeltaChainIterator):

dulwich/tests/test_server.py:77
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.20.44/dulwich/tests/test_server.py:77: PytestCollectionWarning: cannot collect test class 'TestProto' because it has a __init__ constructor (from: dulwich/tests/test_server.py)
    class TestProto(object):

dulwich/tests/test_server.py:107
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.20.44/dulwich/tests/test_server.py:107: PytestCollectionWarning: cannot collect test class 'TestGenericPackHandler' because it has a __init__ constructor (from: dulwich/tests/test_server.py)
    class TestGenericPackHandler(PackHandler):

dulwich/tests/test_server.py:338
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.20.44/dulwich/tests/test_server.py:338: PytestCollectionWarning: cannot collect test class 'TestUploadPackHandler' because it has a __init__ constructor (from: dulwich/tests/test_server.py)
    class TestUploadPackHandler(UploadPackHandler):

dulwich/tests/test_server.py:591
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.20.44/dulwich/tests/test_server.py:591: PytestCollectionWarning: cannot collect test class 'TestProtocolGraphWalker' because it has a __init__ constructor (from: dulwich/tests/test_server.py)
    class TestProtocolGraphWalker(object):

dulwich/tests/test_walk.py:54
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.20.44/dulwich/tests/test_walk.py:54: PytestCollectionWarning: cannot collect test class 'TestWalkEntry' because it has a __init__ constructor (from: dulwich/tests/test_walk.py)
    class TestWalkEntry(object):

dulwich/tests/test_web.py:96
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.20.44/dulwich/tests/test_web.py:96: PytestCollectionWarning: cannot collect test class 'TestHTTPGitRequest' because it has a __init__ constructor (from: dulwich/tests/test_web.py)
    class TestHTTPGitRequest(HTTPGitRequest):

dulwich/tests/test_repository.py::RepositoryRootTests::test_fetch_ignores_missing_refs
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.20.44/dulwich/repo.py:496: UserWarning: ref refs/heads/blah points at non-present sha 1234566789123456789123567891234657373833
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
========================================================================= short test summary info ==========================================================================
SKIPPED [1] dulwich/tests/test_client.py:550: Behaviour only happens on windows.
SKIPPED [1] dulwich/tests/test_config.py:303: Windows specfic config location.
SKIPPED [1] dulwich/tests/test_config.py:319: Windows specfic config location.
SKIPPED [1] dulwich/tests/utils.py:204: <function _is_tree at 0x7fceee7020d0> extension not found
SKIPPED [1] dulwich/tests/utils.py:204: <function _merge_entries at 0x7fceee702040> extension not found
SKIPPED [4] dulwich/tests/utils.py:204: <function _count_blocks at 0x7fceee7024c0> extension not found
SKIPPED [1] dulwich/tests/test_file.py:72: platform allows overwriting open files
SKIPPED [1] dulwich/tests/utils.py:204: <function parse_tree at 0x7fceee967b80> extension not found
SKIPPED [2] dulwich/tests/utils.py:204: <function sorted_tree_items at 0x7fceee970ca0> extension not found
SKIPPED [1] dulwich/tests/test_patch.py:228: git_am_patch_split doesn't handle Mercurial patches properly yet
SKIPPED [1] dulwich/tests/compat/test_client.py:227: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:271: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:235: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:243: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:303: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:312: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:357: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:291: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:259: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:342: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:104: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:124: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:210: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:108: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:192: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:325: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:151: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:674: exporting archives not supported over http
SKIPPED [1] dulwich/tests/compat/test_pack.py:143: skipping slow, large test
SKIPPED [1] dulwich/tests/compat/test_web.py:203: Dumb web shallow cloning not supported.
SKIPPED [1] dulwich/tests/compat/test_web.py:198: Dumb web shallow cloning not supported.
SKIPPED [1] dulwich/tests/compat/test_web.py:188: Dumb web shallow cloning not supported.
SKIPPED [1] dulwich/tests/compat/test_web.py:180: Dumb web pushing not supported.
SKIPPED [1] dulwich/tests/compat/test_web.py:208: Dumb web pushing not supported.
SKIPPED [1] dulwich/tests/compat/test_web.py:184: Dumb web pushing not supported.
SKIPPED [1] dulwich/tests/compat/test_web.py:193: Dumb web shallow cloning not supported.
XFAIL dulwich/tests/test_walk.py::WalkerTest::test_merge_of_old_branch
  reason:
FAILED dulwich/tests/test_pack.py::TestPack::test_copy - AssertionError: b'r\x19\x80\xe8f\xaf\x9a_\x93\xadgAD\xe1E\x9b\x8b\xa3\xe7\xb7' != b'j:\x9f\xee\xa6;\x82\xbcqo1?\...
=============================================== 1 failed, 1400 passed, 40 skipped, 1 xfailed, 9 warnings in 99.25s (0:01:39) ===============================================

pytest as you see still shows some warnings as well.

List of modules installed in build env

Package                       Version
----------------------------- -----------------
alabaster                     0.7.12
attrs                         22.1.0.dev0
Babel                         2.10.2
bcrypt                        3.2.2
Brlapi                        0.8.3
Brotli                        1.0.9
build                         0.8.0
certifi                       2021.10.8
cffi                          1.15.0
charset-normalizer            2.1.0
codespell                     2.1.0
cryptography                  36.0.2
cycler                        0.11.0
distro                        1.7.0
docutils                      0.17.1
extras                        1.0.0
fastimport                    0.9.14
fixtures                      4.0.0
fonttools                     4.33.3
gevent                        21.12.0
geventhttpclient              1.5.5
gpg                           1.17.1-unknown
greenlet                      1.1.2
idna                          3.3
imagesize                     1.3.0
importlib-metadata            4.12.0
iniconfig                     1.1.1
Jinja2                        3.1.1
kiwisolver                    1.4.3
libcomps                      0.1.18
louis                         3.22.0
MarkupSafe                    2.1.1
matplotlib                    3.5.2
numpy                         1.23.0
olefile                       0.46
packaging                     21.3
paramiko                      2.11.0
pbr                           5.8.1
pep517                        0.12.0
Pillow                        9.1.1
pip                           22.0.4
pluggy                        1.0.0
ply                           3.11
py                            1.11.0
pycparser                     2.21
Pygments                      2.12.0
PyGObject                     3.42.1
PyNaCl                        1.5.0
pyparsing                     3.0.9
pytest                        7.1.2
python-dateutil               2.8.2
pytz                          2022.1
requests                      2.28.1
rpm                           4.17.0
setuptools                    62.6.0
six                           1.16.0
snowballstemmer               2.2.0
Sphinx                        5.0.2
sphinxcontrib-applehelp       1.0.2.dev20220410
sphinxcontrib-devhelp         1.0.2.dev20220410
sphinxcontrib-htmlhelp        2.0.0
sphinxcontrib-jsmath          1.0.1.dev20220410
sphinxcontrib-qthelp          1.0.3.dev20220410
sphinxcontrib-serializinghtml 1.1.5
testtools                     2.5.0
tomli                         2.0.1
urllib3                       1.26.9
wheel                         0.37.1
zipp                          3.8.0
zope.event                    4.5.0
zope.interface                5.4.0
@jelmer
Copy link
Owner

jelmer commented Jun 30, 2022

Can you reproduce the test failure with unittest?

@kloczek
Copy link
Author

kloczek commented Jul 1, 2022

I'm reporting issue using pytest.

@kloczek
Copy link
Author

kloczek commented Jan 17, 2023

Just tested 0.21.1.
Here is the result

+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-dulwich-0.21.1-2.fc35.x86_64/usr/lib64/python3.8/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-dulwich-0.21.1-2.fc35.x86_64/usr/lib/python3.8/site-packages
+ /usr/bin/pytest -ra -m 'not network'
==================================================================================== test session starts ====================================================================================
platform linux -- Python 3.8.16, pytest-7.2.1, pluggy-1.0.0
rootdir: /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.21.1
collected 1488 items

dulwich/contrib/test_paramiko_vendor.py ...                                                                                                                                           [  0%]
dulwich/contrib/test_release_robot.py ..                                                                                                                                              [  0%]
dulwich/contrib/test_swift.py .........................................                                                                                                               [  3%]
dulwich/contrib/test_swift_smoke.py EEEEEEEEE                                                                                                                                         [  3%]
dulwich/tests/test_archive.py ......                                                                                                                                                  [  4%]
dulwich/tests/test_blackbox.py ...                                                                                                                                                    [  4%]
dulwich/tests/test_bundle.py .                                                                                                                                                        [  4%]
dulwich/tests/test_client.py ....................s.......................................................................................................                             [ 12%]
dulwich/tests/test_config.py .........................................ss...................                                                                                           [ 16%]
dulwich/tests/test_credentials.py ...                                                                                                                                                 [ 17%]
dulwich/tests/test_diff_tree.py .s.s....................................ss.s.s....................                                                                                    [ 21%]
dulwich/tests/test_fastexport.py .............                                                                                                                                        [ 22%]
dulwich/tests/test_file.py .s.........                                                                                                                                                [ 23%]
dulwich/tests/test_grafts.py ....................                                                                                                                                     [ 24%]
dulwich/tests/test_graph.py .........                                                                                                                                                 [ 25%]
dulwich/tests/test_greenthreads.py .                                                                                                                                                  [ 25%]
dulwich/tests/test_hooks.py ...                                                                                                                                                       [ 25%]
dulwich/tests/test_ignore.py ...............                                                                                                                                          [ 26%]
dulwich/tests/test_index.py ......................................                                                                                                                    [ 28%]
dulwich/tests/test_lfs.py ..                                                                                                                                                          [ 29%]
dulwich/tests/test_line_ending.py ..................                                                                                                                                  [ 30%]
dulwich/tests/test_lru_cache.py ...............................                                                                                                                       [ 32%]
dulwich/tests/test_mailmap.py ..                                                                                                                                                      [ 32%]
dulwich/tests/test_missing_obj_finder.py ................                                                                                                                             [ 33%]
dulwich/tests/test_object_store.py ...........................................................................................                                                        [ 39%]
dulwich/tests/test_objects.py .................................................s..s.s......................................                                                           [ 45%]
dulwich/tests/test_objectspec.py ................................                                                                                                                     [ 48%]
dulwich/tests/test_pack.py .............................F..............................................................                                                               [ 54%]
dulwich/tests/test_patch.py ..s..................                                                                                                                                     [ 55%]
dulwich/tests/test_porcelain.py ................................................................................................................................................      [ 65%]
dulwich/tests/test_protocol.py ..........................................                                                                                                             [ 68%]
dulwich/tests/test_reflog.py .....                                                                                                                                                    [ 68%]
dulwich/tests/test_refs.py ...................................................................                                                                                        [ 72%]
dulwich/tests/test_repository.py ........................................................................................                                                             [ 78%]
dulwich/tests/test_server.py .....................................................                                                                                                    [ 82%]
dulwich/tests/test_stash.py .                                                                                                                                                         [ 82%]
dulwich/tests/test_utils.py ......                                                                                                                                                    [ 82%]
dulwich/tests/test_walk.py ...........x......................                                                                                                                         [ 85%]
dulwich/tests/test_web.py ................................                                                                                                                            [ 87%]
dulwich/tests/compat/test_client.py sssssssssssssssss..................................s................                                                                              [ 91%]
dulwich/tests/compat/test_pack.py .s..                                                                                                                                                [ 92%]
dulwich/tests/compat/test_patch.py .                                                                                                                                                  [ 92%]
dulwich/tests/compat/test_porcelain.py ..                                                                                                                                             [ 92%]
dulwich/tests/compat/test_repository.py ........................                                                                                                                      [ 94%]
dulwich/tests/compat/test_server.py ............................                                                                                                                      [ 95%]
dulwich/tests/compat/test_utils.py .....                                                                                                                                              [ 96%]
dulwich/tests/compat/test_web.py ...............................................ss.sss.ss                                                                                             [100%]

========================================================================================== ERRORS ===========================================================================================
___________________________________________________________________ ERROR at setup of SwiftRepoSmokeTest.test_clone_bare ____________________________________________________________________

path = None, file = None

    def load_conf(path=None, file=None):
        """Load configuration in global var CONF

        Args:
          path: The path to the configuration file
          file: If provided read instead the file like object
        """
        conf = ConfigParser()
        if file:
            try:
                conf.read_file(file, path)
            except AttributeError:
                # read_file only exists in Python3
                conf.readfp(file)
            return conf
        confpath = None
        if not path:
            try:
>               confpath = os.environ["DULWICH_SWIFT_CFG"]

dulwich/contrib/swift.py:162:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = environ({'PATH': '/home/tkloczko/rpmbuild/BUILDROOT/python-dulwich-0.21.1-2.fc35.x86_64/usr/bin:/usr/bin:/usr/sbin:/us... 'C.UTF-8', 'PYTEST_CURRENT_TEST': 'dulwich/contrib/test_swift_smoke.py::SwiftRepoSmokeTest::test_clone_bare (setup)'})
key = 'DULWICH_SWIFT_CFG'

    def __getitem__(self, key):
        try:
            value = self._data[self.encodekey(key)]
        except KeyError:
            # raise KeyError with the original key value
>           raise KeyError(key) from None
E           KeyError: 'DULWICH_SWIFT_CFG'

/usr/lib64/python3.8/os.py:675: KeyError

The above exception was the direct cause of the following exception:

cls = <class 'dulwich.contrib.test_swift_smoke.SwiftRepoSmokeTest'>

    @classmethod
    def setUpClass(cls):
        cls.backend = SwiftSystemBackend()
        cls.port = 9148
        cls.server_address = "localhost"
        cls.fakerepo = "fakerepo"
        cls.th_server = DulwichServer(cls.backend, cls.port)
        cls.th_server.run()
>       cls.conf = swift.load_conf()

dulwich/contrib/test_swift_smoke.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

path = None, file = None

    def load_conf(path=None, file=None):
        """Load configuration in global var CONF

        Args:
          path: The path to the configuration file
          file: If provided read instead the file like object
        """
        conf = ConfigParser()
        if file:
            try:
                conf.read_file(file, path)
            except AttributeError:
                # read_file only exists in Python3
                conf.readfp(file)
            return conf
        confpath = None
        if not path:
            try:
                confpath = os.environ["DULWICH_SWIFT_CFG"]
            except KeyError as exc:
>               raise Exception(
                    "You need to specify a configuration file") from exc
E               Exception: You need to specify a configuration file

dulwich/contrib/swift.py:164: Exception
______________________________________________________________ ERROR at setup of SwiftRepoSmokeTest.test_clone_then_push_data _______________________________________________________________

path = None, file = None

    def load_conf(path=None, file=None):
        """Load configuration in global var CONF

        Args:
          path: The path to the configuration file
          file: If provided read instead the file like object
        """
        conf = ConfigParser()
        if file:
            try:
                conf.read_file(file, path)
            except AttributeError:
                # read_file only exists in Python3
                conf.readfp(file)
            return conf
        confpath = None
        if not path:
            try:
>               confpath = os.environ["DULWICH_SWIFT_CFG"]

dulwich/contrib/swift.py:162:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = environ({'PATH': '/home/tkloczko/rpmbuild/BUILDROOT/python-dulwich-0.21.1-2.fc35.x86_64/usr/bin:/usr/bin:/usr/sbin:/us..., 'PYTEST_CURRENT_TEST': 'dulwich/contrib/test_swift_smoke.py::SwiftRepoSmokeTest::test_clone_then_push_data (setup)'})
key = 'DULWICH_SWIFT_CFG'

    def __getitem__(self, key):
        try:
            value = self._data[self.encodekey(key)]
        except KeyError:
            # raise KeyError with the original key value
>           raise KeyError(key) from None
E           KeyError: 'DULWICH_SWIFT_CFG'

/usr/lib64/python3.8/os.py:675: KeyError

The above exception was the direct cause of the following exception:

cls = <class 'dulwich.contrib.test_swift_smoke.SwiftRepoSmokeTest'>

    @classmethod
    def setUpClass(cls):
        cls.backend = SwiftSystemBackend()
        cls.port = 9148
        cls.server_address = "localhost"
        cls.fakerepo = "fakerepo"
        cls.th_server = DulwichServer(cls.backend, cls.port)
        cls.th_server.run()
>       cls.conf = swift.load_conf()

dulwich/contrib/test_swift_smoke.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

path = None, file = None

    def load_conf(path=None, file=None):
        """Load configuration in global var CONF

        Args:
          path: The path to the configuration file
          file: If provided read instead the file like object
        """
        conf = ConfigParser()
        if file:
            try:
                conf.read_file(file, path)
            except AttributeError:
                # read_file only exists in Python3
                conf.readfp(file)
            return conf
        confpath = None
        if not path:
            try:
                confpath = os.environ["DULWICH_SWIFT_CFG"]
            except KeyError as exc:
>               raise Exception(
                    "You need to specify a configuration file") from exc
E               Exception: You need to specify a configuration file

dulwich/contrib/swift.py:164: Exception
____________________________________________________________________ ERROR at setup of SwiftRepoSmokeTest.test_init_bare ____________________________________________________________________

path = None, file = None

    def load_conf(path=None, file=None):
        """Load configuration in global var CONF

        Args:
          path: The path to the configuration file
          file: If provided read instead the file like object
        """
        conf = ConfigParser()
        if file:
            try:
                conf.read_file(file, path)
            except AttributeError:
                # read_file only exists in Python3
                conf.readfp(file)
            return conf
        confpath = None
        if not path:
            try:
>               confpath = os.environ["DULWICH_SWIFT_CFG"]

dulwich/contrib/swift.py:162:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = environ({'PATH': '/home/tkloczko/rpmbuild/BUILDROOT/python-dulwich-0.21.1-2.fc35.x86_64/usr/bin:/usr/bin:/usr/sbin:/us...: 'C.UTF-8', 'PYTEST_CURRENT_TEST': 'dulwich/contrib/test_swift_smoke.py::SwiftRepoSmokeTest::test_init_bare (setup)'})
key = 'DULWICH_SWIFT_CFG'

    def __getitem__(self, key):
        try:
            value = self._data[self.encodekey(key)]
        except KeyError:
            # raise KeyError with the original key value
>           raise KeyError(key) from None
E           KeyError: 'DULWICH_SWIFT_CFG'

/usr/lib64/python3.8/os.py:675: KeyError

The above exception was the direct cause of the following exception:

cls = <class 'dulwich.contrib.test_swift_smoke.SwiftRepoSmokeTest'>

    @classmethod
    def setUpClass(cls):
        cls.backend = SwiftSystemBackend()
        cls.port = 9148
        cls.server_address = "localhost"
        cls.fakerepo = "fakerepo"
        cls.th_server = DulwichServer(cls.backend, cls.port)
        cls.th_server.run()
>       cls.conf = swift.load_conf()

dulwich/contrib/test_swift_smoke.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

path = None, file = None

    def load_conf(path=None, file=None):
        """Load configuration in global var CONF

        Args:
          path: The path to the configuration file
          file: If provided read instead the file like object
        """
        conf = ConfigParser()
        if file:
            try:
                conf.read_file(file, path)
            except AttributeError:
                # read_file only exists in Python3
                conf.readfp(file)
            return conf
        confpath = None
        if not path:
            try:
                confpath = os.environ["DULWICH_SWIFT_CFG"]
            except KeyError as exc:
>               raise Exception(
                    "You need to specify a configuration file") from exc
E               Exception: You need to specify a configuration file

dulwich/contrib/swift.py:164: Exception
_______________________________________________________________ ERROR at setup of SwiftRepoSmokeTest.test_push_annotated_tag ________________________________________________________________

path = None, file = None

    def load_conf(path=None, file=None):
        """Load configuration in global var CONF

        Args:
          path: The path to the configuration file
          file: If provided read instead the file like object
        """
        conf = ConfigParser()
        if file:
            try:
                conf.read_file(file, path)
            except AttributeError:
                # read_file only exists in Python3
                conf.readfp(file)
            return conf
        confpath = None
        if not path:
            try:
>               confpath = os.environ["DULWICH_SWIFT_CFG"]

dulwich/contrib/swift.py:162:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = environ({'PATH': '/home/tkloczko/rpmbuild/BUILDROOT/python-dulwich-0.21.1-2.fc35.x86_64/usr/bin:/usr/bin:/usr/sbin:/us...8', 'PYTEST_CURRENT_TEST': 'dulwich/contrib/test_swift_smoke.py::SwiftRepoSmokeTest::test_push_annotated_tag (setup)'})
key = 'DULWICH_SWIFT_CFG'

    def __getitem__(self, key):
        try:
            value = self._data[self.encodekey(key)]
        except KeyError:
            # raise KeyError with the original key value
>           raise KeyError(key) from None
E           KeyError: 'DULWICH_SWIFT_CFG'

/usr/lib64/python3.8/os.py:675: KeyError

The above exception was the direct cause of the following exception:

cls = <class 'dulwich.contrib.test_swift_smoke.SwiftRepoSmokeTest'>

    @classmethod
    def setUpClass(cls):
        cls.backend = SwiftSystemBackend()
        cls.port = 9148
        cls.server_address = "localhost"
        cls.fakerepo = "fakerepo"
        cls.th_server = DulwichServer(cls.backend, cls.port)
        cls.th_server.run()
>       cls.conf = swift.load_conf()

dulwich/contrib/test_swift_smoke.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

path = None, file = None

    def load_conf(path=None, file=None):
        """Load configuration in global var CONF

        Args:
          path: The path to the configuration file
          file: If provided read instead the file like object
        """
        conf = ConfigParser()
        if file:
            try:
                conf.read_file(file, path)
            except AttributeError:
                # read_file only exists in Python3
                conf.readfp(file)
            return conf
        confpath = None
        if not path:
            try:
                confpath = os.environ["DULWICH_SWIFT_CFG"]
            except KeyError as exc:
>               raise Exception(
                    "You need to specify a configuration file") from exc
E               Exception: You need to specify a configuration file

dulwich/contrib/swift.py:164: Exception
___________________________________________________________________ ERROR at setup of SwiftRepoSmokeTest.test_push_branch ___________________________________________________________________

path = None, file = None

    def load_conf(path=None, file=None):
        """Load configuration in global var CONF

        Args:
          path: The path to the configuration file
          file: If provided read instead the file like object
        """
        conf = ConfigParser()
        if file:
            try:
                conf.read_file(file, path)
            except AttributeError:
                # read_file only exists in Python3
                conf.readfp(file)
            return conf
        confpath = None
        if not path:
            try:
>               confpath = os.environ["DULWICH_SWIFT_CFG"]

dulwich/contrib/swift.py:162:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = environ({'PATH': '/home/tkloczko/rpmbuild/BUILDROOT/python-dulwich-0.21.1-2.fc35.x86_64/usr/bin:/usr/bin:/usr/sbin:/us...'C.UTF-8', 'PYTEST_CURRENT_TEST': 'dulwich/contrib/test_swift_smoke.py::SwiftRepoSmokeTest::test_push_branch (setup)'})
key = 'DULWICH_SWIFT_CFG'

    def __getitem__(self, key):
        try:
            value = self._data[self.encodekey(key)]
        except KeyError:
            # raise KeyError with the original key value
>           raise KeyError(key) from None
E           KeyError: 'DULWICH_SWIFT_CFG'

/usr/lib64/python3.8/os.py:675: KeyError

The above exception was the direct cause of the following exception:

cls = <class 'dulwich.contrib.test_swift_smoke.SwiftRepoSmokeTest'>

    @classmethod
    def setUpClass(cls):
        cls.backend = SwiftSystemBackend()
        cls.port = 9148
        cls.server_address = "localhost"
        cls.fakerepo = "fakerepo"
        cls.th_server = DulwichServer(cls.backend, cls.port)
        cls.th_server.run()
>       cls.conf = swift.load_conf()

dulwich/contrib/test_swift_smoke.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

path = None, file = None

    def load_conf(path=None, file=None):
        """Load configuration in global var CONF

        Args:
          path: The path to the configuration file
          file: If provided read instead the file like object
        """
        conf = ConfigParser()
        if file:
            try:
                conf.read_file(file, path)
            except AttributeError:
                # read_file only exists in Python3
                conf.readfp(file)
            return conf
        confpath = None
        if not path:
            try:
                confpath = os.environ["DULWICH_SWIFT_CFG"]
            except KeyError as exc:
>               raise Exception(
                    "You need to specify a configuration file") from exc
E               Exception: You need to specify a configuration file

dulwich/contrib/swift.py:164: Exception
___________________________________________________________________ ERROR at setup of SwiftRepoSmokeTest.test_push_commit ___________________________________________________________________

path = None, file = None

    def load_conf(path=None, file=None):
        """Load configuration in global var CONF

        Args:
          path: The path to the configuration file
          file: If provided read instead the file like object
        """
        conf = ConfigParser()
        if file:
            try:
                conf.read_file(file, path)
            except AttributeError:
                # read_file only exists in Python3
                conf.readfp(file)
            return conf
        confpath = None
        if not path:
            try:
>               confpath = os.environ["DULWICH_SWIFT_CFG"]

dulwich/contrib/swift.py:162:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = environ({'PATH': '/home/tkloczko/rpmbuild/BUILDROOT/python-dulwich-0.21.1-2.fc35.x86_64/usr/bin:/usr/bin:/usr/sbin:/us...'C.UTF-8', 'PYTEST_CURRENT_TEST': 'dulwich/contrib/test_swift_smoke.py::SwiftRepoSmokeTest::test_push_commit (setup)'})
key = 'DULWICH_SWIFT_CFG'

    def __getitem__(self, key):
        try:
            value = self._data[self.encodekey(key)]
        except KeyError:
            # raise KeyError with the original key value
>           raise KeyError(key) from None
E           KeyError: 'DULWICH_SWIFT_CFG'

/usr/lib64/python3.8/os.py:675: KeyError

The above exception was the direct cause of the following exception:

cls = <class 'dulwich.contrib.test_swift_smoke.SwiftRepoSmokeTest'>

    @classmethod
    def setUpClass(cls):
        cls.backend = SwiftSystemBackend()
        cls.port = 9148
        cls.server_address = "localhost"
        cls.fakerepo = "fakerepo"
        cls.th_server = DulwichServer(cls.backend, cls.port)
        cls.th_server.run()
>       cls.conf = swift.load_conf()

dulwich/contrib/test_swift_smoke.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

path = None, file = None

    def load_conf(path=None, file=None):
        """Load configuration in global var CONF

        Args:
          path: The path to the configuration file
          file: If provided read instead the file like object
        """
        conf = ConfigParser()
        if file:
            try:
                conf.read_file(file, path)
            except AttributeError:
                # read_file only exists in Python3
                conf.readfp(file)
            return conf
        confpath = None
        if not path:
            try:
                confpath = os.environ["DULWICH_SWIFT_CFG"]
            except KeyError as exc:
>               raise Exception(
                    "You need to specify a configuration file") from exc
E               Exception: You need to specify a configuration file

dulwich/contrib/swift.py:164: Exception
________________________________________________________________ ERROR at setup of SwiftRepoSmokeTest.test_push_data_branch _________________________________________________________________

path = None, file = None

    def load_conf(path=None, file=None):
        """Load configuration in global var CONF

        Args:
          path: The path to the configuration file
          file: If provided read instead the file like object
        """
        conf = ConfigParser()
        if file:
            try:
                conf.read_file(file, path)
            except AttributeError:
                # read_file only exists in Python3
                conf.readfp(file)
            return conf
        confpath = None
        if not path:
            try:
>               confpath = os.environ["DULWICH_SWIFT_CFG"]

dulwich/contrib/swift.py:162:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = environ({'PATH': '/home/tkloczko/rpmbuild/BUILDROOT/python-dulwich-0.21.1-2.fc35.x86_64/usr/bin:/usr/bin:/usr/sbin:/us...F-8', 'PYTEST_CURRENT_TEST': 'dulwich/contrib/test_swift_smoke.py::SwiftRepoSmokeTest::test_push_data_branch (setup)'})
key = 'DULWICH_SWIFT_CFG'

    def __getitem__(self, key):
        try:
            value = self._data[self.encodekey(key)]
        except KeyError:
            # raise KeyError with the original key value
>           raise KeyError(key) from None
E           KeyError: 'DULWICH_SWIFT_CFG'

/usr/lib64/python3.8/os.py:675: KeyError

The above exception was the direct cause of the following exception:

cls = <class 'dulwich.contrib.test_swift_smoke.SwiftRepoSmokeTest'>

    @classmethod
    def setUpClass(cls):
        cls.backend = SwiftSystemBackend()
        cls.port = 9148
        cls.server_address = "localhost"
        cls.fakerepo = "fakerepo"
        cls.th_server = DulwichServer(cls.backend, cls.port)
        cls.th_server.run()
>       cls.conf = swift.load_conf()

dulwich/contrib/test_swift_smoke.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

path = None, file = None

    def load_conf(path=None, file=None):
        """Load configuration in global var CONF

        Args:
          path: The path to the configuration file
          file: If provided read instead the file like object
        """
        conf = ConfigParser()
        if file:
            try:
                conf.read_file(file, path)
            except AttributeError:
                # read_file only exists in Python3
                conf.readfp(file)
            return conf
        confpath = None
        if not path:
            try:
                confpath = os.environ["DULWICH_SWIFT_CFG"]
            except KeyError as exc:
>               raise Exception(
                    "You need to specify a configuration file") from exc
E               Exception: You need to specify a configuration file

dulwich/contrib/swift.py:164: Exception
______________________________________________________________ ERROR at setup of SwiftRepoSmokeTest.test_push_multiple_branch _______________________________________________________________

path = None, file = None

    def load_conf(path=None, file=None):
        """Load configuration in global var CONF

        Args:
          path: The path to the configuration file
          file: If provided read instead the file like object
        """
        conf = ConfigParser()
        if file:
            try:
                conf.read_file(file, path)
            except AttributeError:
                # read_file only exists in Python3
                conf.readfp(file)
            return conf
        confpath = None
        if not path:
            try:
>               confpath = os.environ["DULWICH_SWIFT_CFG"]

dulwich/contrib/swift.py:162:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = environ({'PATH': '/home/tkloczko/rpmbuild/BUILDROOT/python-dulwich-0.21.1-2.fc35.x86_64/usr/bin:/usr/bin:/usr/sbin:/us..., 'PYTEST_CURRENT_TEST': 'dulwich/contrib/test_swift_smoke.py::SwiftRepoSmokeTest::test_push_multiple_branch (setup)'})
key = 'DULWICH_SWIFT_CFG'

    def __getitem__(self, key):
        try:
            value = self._data[self.encodekey(key)]
        except KeyError:
            # raise KeyError with the original key value
>           raise KeyError(key) from None
E           KeyError: 'DULWICH_SWIFT_CFG'

/usr/lib64/python3.8/os.py:675: KeyError

The above exception was the direct cause of the following exception:

cls = <class 'dulwich.contrib.test_swift_smoke.SwiftRepoSmokeTest'>

    @classmethod
    def setUpClass(cls):
        cls.backend = SwiftSystemBackend()
        cls.port = 9148
        cls.server_address = "localhost"
        cls.fakerepo = "fakerepo"
        cls.th_server = DulwichServer(cls.backend, cls.port)
        cls.th_server.run()
>       cls.conf = swift.load_conf()

dulwich/contrib/test_swift_smoke.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

path = None, file = None

    def load_conf(path=None, file=None):
        """Load configuration in global var CONF

        Args:
          path: The path to the configuration file
          file: If provided read instead the file like object
        """
        conf = ConfigParser()
        if file:
            try:
                conf.read_file(file, path)
            except AttributeError:
                # read_file only exists in Python3
                conf.readfp(file)
            return conf
        confpath = None
        if not path:
            try:
                confpath = os.environ["DULWICH_SWIFT_CFG"]
            except KeyError as exc:
>               raise Exception(
                    "You need to specify a configuration file") from exc
E               Exception: You need to specify a configuration file

dulwich/contrib/swift.py:164: Exception
_______________________________________________________________ ERROR at setup of SwiftRepoSmokeTest.test_push_remove_branch ________________________________________________________________

path = None, file = None

    def load_conf(path=None, file=None):
        """Load configuration in global var CONF

        Args:
          path: The path to the configuration file
          file: If provided read instead the file like object
        """
        conf = ConfigParser()
        if file:
            try:
                conf.read_file(file, path)
            except AttributeError:
                # read_file only exists in Python3
                conf.readfp(file)
            return conf
        confpath = None
        if not path:
            try:
>               confpath = os.environ["DULWICH_SWIFT_CFG"]

dulwich/contrib/swift.py:162:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = environ({'PATH': '/home/tkloczko/rpmbuild/BUILDROOT/python-dulwich-0.21.1-2.fc35.x86_64/usr/bin:/usr/bin:/usr/sbin:/us...8', 'PYTEST_CURRENT_TEST': 'dulwich/contrib/test_swift_smoke.py::SwiftRepoSmokeTest::test_push_remove_branch (setup)'})
key = 'DULWICH_SWIFT_CFG'

    def __getitem__(self, key):
        try:
            value = self._data[self.encodekey(key)]
        except KeyError:
            # raise KeyError with the original key value
>           raise KeyError(key) from None
E           KeyError: 'DULWICH_SWIFT_CFG'

/usr/lib64/python3.8/os.py:675: KeyError

The above exception was the direct cause of the following exception:

cls = <class 'dulwich.contrib.test_swift_smoke.SwiftRepoSmokeTest'>

    @classmethod
    def setUpClass(cls):
        cls.backend = SwiftSystemBackend()
        cls.port = 9148
        cls.server_address = "localhost"
        cls.fakerepo = "fakerepo"
        cls.th_server = DulwichServer(cls.backend, cls.port)
        cls.th_server.run()
>       cls.conf = swift.load_conf()

dulwich/contrib/test_swift_smoke.py:86:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

path = None, file = None

    def load_conf(path=None, file=None):
        """Load configuration in global var CONF

        Args:
          path: The path to the configuration file
          file: If provided read instead the file like object
        """
        conf = ConfigParser()
        if file:
            try:
                conf.read_file(file, path)
            except AttributeError:
                # read_file only exists in Python3
                conf.readfp(file)
            return conf
        confpath = None
        if not path:
            try:
                confpath = os.environ["DULWICH_SWIFT_CFG"]
            except KeyError as exc:
>               raise Exception(
                    "You need to specify a configuration file") from exc
E               Exception: You need to specify a configuration file

dulwich/contrib/swift.py:164: Exception
========================================================================================= FAILURES ==========================================================================================
____________________________________________________________________________________ TestPack.test_copy _____________________________________________________________________________________

self = <dulwich.tests.test_pack.TestPack testMethod=test_copy>

    def test_copy(self):
        with self.get_pack(pack1_sha) as origpack:
            self.assertSucceeds(origpack.index.check)
            basename = os.path.join(self.tempdir, "Elch")
            write_pack(basename, origpack.pack_tuples())

            with Pack(basename) as newpack:
                self.assertEqual(origpack, newpack)
                self.assertSucceeds(newpack.index.check)
                self.assertEqual(origpack.name(), newpack.name())
>               self.assertEqual(
                    origpack.index.get_pack_checksum(),
                    newpack.index.get_pack_checksum(),
                )
E               AssertionError: b'r\x19\x80\xe8f\xaf\x9a_\x93\xadgAD\xe1E\x9b\x8b\xa3\xe7\xb7' != b'j:\x9f\xee\xa6;\x82\xbcqo1?\x88\xc4\xed\x88\xad\xfe\x7f\x1a'

dulwich/tests/test_pack.py:436: AssertionError
===================================================================================== warnings summary ======================================================================================
dulwich/tests/test_client.py:720
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.21.1/dulwich/tests/test_client.py:720: PytestCollectionWarning: cannot collect test class 'TestSSHVendor' because it has a __init__ constructor (from: dulwich/tests/test_client.py)
    class TestSSHVendor:

dulwich/tests/test_pack.py:951
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.21.1/dulwich/tests/test_pack.py:951: PytestCollectionWarning: cannot collect test class 'TestPackIterator' because it has a __init__ constructor (from: dulwich/tests/test_pack.py)
    class TestPackIterator(DeltaChainIterator):

dulwich/tests/test_server.py:78
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.21.1/dulwich/tests/test_server.py:78: PytestCollectionWarning: cannot collect test class 'TestProto' because it has a __init__ constructor (from: dulwich/tests/test_server.py)
    class TestProto:

dulwich/tests/test_server.py:108
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.21.1/dulwich/tests/test_server.py:108: PytestCollectionWarning: cannot collect test class 'TestGenericPackHandler' because it has a __init__ constructor (from: dulwich/tests/test_server.py)
    class TestGenericPackHandler(PackHandler):

dulwich/tests/test_server.py:347
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.21.1/dulwich/tests/test_server.py:347: PytestCollectionWarning: cannot collect test class 'TestUploadPackHandler' because it has a __init__ constructor (from: dulwich/tests/test_server.py)
    class TestUploadPackHandler(UploadPackHandler):

dulwich/tests/test_server.py:600
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.21.1/dulwich/tests/test_server.py:600: PytestCollectionWarning: cannot collect test class 'TestProtocolGraphWalker' because it has a __init__ constructor (from: dulwich/tests/test_server.py)
    class TestProtocolGraphWalker:

dulwich/tests/test_walk.py:54
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.21.1/dulwich/tests/test_walk.py:54: PytestCollectionWarning: cannot collect test class 'TestWalkEntry' because it has a __init__ constructor (from: dulwich/tests/test_walk.py)
    class TestWalkEntry:

dulwich/tests/test_web.py:96
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.21.1/dulwich/tests/test_web.py:96: PytestCollectionWarning: cannot collect test class 'TestHTTPGitRequest' because it has a __init__ constructor (from: dulwich/tests/test_web.py)
    class TestHTTPGitRequest(HTTPGitRequest):

dulwich/tests/test_repository.py::RepositoryRootTests::test_fetch_ignores_missing_refs
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.21.1/dulwich/repo.py:528: UserWarning: ref refs/heads/blah points at non-present sha 1234566789123456789123567891234657373833
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
================================================================================== short test summary info ==================================================================================
SKIPPED [1] dulwich/tests/test_client.py:546: Behaviour only happens on windows.
SKIPPED [1] dulwich/tests/test_config.py:313: Windows specific config location.
SKIPPED [1] dulwich/tests/test_config.py:329: Windows specific config location.
SKIPPED [1] dulwich/tests/utils.py:204: <function _is_tree at 0x7f308458d550> extension not found
SKIPPED [1] dulwich/tests/utils.py:204: <function _merge_entries at 0x7f308458d4c0> extension not found
SKIPPED [4] dulwich/tests/utils.py:204: <function _count_blocks at 0x7f308458d940> extension not found
SKIPPED [1] dulwich/tests/test_file.py:72: platform allows overwriting open files
SKIPPED [1] dulwich/tests/utils.py:204: <function parse_tree at 0x7f3084fa4f70> extension not found
SKIPPED [2] dulwich/tests/utils.py:204: <function sorted_tree_items at 0x7f3084fad0d0> extension not found
SKIPPED [1] dulwich/tests/test_patch.py:228: git_am_patch_split doesn't handle Mercurial patches properly yet
SKIPPED [1] dulwich/tests/compat/test_client.py:227: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:269: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:235: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:243: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:301: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:310: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:355: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:289: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:257: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:340: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:104: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:124: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:210: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:108: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:192: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:430: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:151: git-daemon failed to start
SKIPPED [1] dulwich/tests/compat/test_client.py:677: exporting archives not supported over http
SKIPPED [1] dulwich/tests/compat/test_pack.py:143: skipping slow, large test
SKIPPED [1] dulwich/tests/compat/test_web.py:203: Dumb web shallow cloning not supported.
SKIPPED [1] dulwich/tests/compat/test_web.py:198: Dumb web shallow cloning not supported.
SKIPPED [1] dulwich/tests/compat/test_web.py:188: Dumb web shallow cloning not supported.
SKIPPED [1] dulwich/tests/compat/test_web.py:180: Dumb web pushing not supported.
SKIPPED [1] dulwich/tests/compat/test_web.py:208: Dumb web pushing not supported.
SKIPPED [1] dulwich/tests/compat/test_web.py:184: Dumb web pushing not supported.
SKIPPED [1] dulwich/tests/compat/test_web.py:193: Dumb web shallow cloning not supported.
XFAIL dulwich/tests/test_walk.py::WalkerTest::test_merge_of_old_branch - reason:
ERROR dulwich/contrib/test_swift_smoke.py::SwiftRepoSmokeTest::test_clone_bare - Exception: You need to specify a configuration file
ERROR dulwich/contrib/test_swift_smoke.py::SwiftRepoSmokeTest::test_clone_then_push_data - Exception: You need to specify a configuration file
ERROR dulwich/contrib/test_swift_smoke.py::SwiftRepoSmokeTest::test_init_bare - Exception: You need to specify a configuration file
ERROR dulwich/contrib/test_swift_smoke.py::SwiftRepoSmokeTest::test_push_annotated_tag - Exception: You need to specify a configuration file
ERROR dulwich/contrib/test_swift_smoke.py::SwiftRepoSmokeTest::test_push_branch - Exception: You need to specify a configuration file
ERROR dulwich/contrib/test_swift_smoke.py::SwiftRepoSmokeTest::test_push_commit - Exception: You need to specify a configuration file
ERROR dulwich/contrib/test_swift_smoke.py::SwiftRepoSmokeTest::test_push_data_branch - Exception: You need to specify a configuration file
ERROR dulwich/contrib/test_swift_smoke.py::SwiftRepoSmokeTest::test_push_multiple_branch - Exception: You need to specify a configuration file
ERROR dulwich/contrib/test_swift_smoke.py::SwiftRepoSmokeTest::test_push_remove_branch - Exception: You need to specify a configuration file
FAILED dulwich/tests/test_pack.py::TestPack::test_copy - AssertionError: b'r\x19\x80\xe8f\xaf\x9a_\x93\xadgAD\xe1E\x9b\x8b\xa3\xe7\xb7' != b'j:\x9f\xee\xa6;\x82\xbcqo1?\x88\xc4\xed\x88\xad\xfe\x7f\x1a'
================================================== 1 failed, 1437 passed, 40 skipped, 1 xfailed, 9 warnings, 9 errors in 98.70s (0:01:38) ===================================================

Here is list of installed modules in build env

Package                       Version
----------------------------- -----------------
alabaster                     0.7.12
appdirs                       1.4.4
asn1crypto                    1.5.1
attrs                         22.2.0
Babel                         2.11.0
bcrypt                        3.2.2
Brotli                        1.0.9
build                         0.9.0
certifi                       2022.9.24
cffi                          1.15.1
charset-normalizer            3.0.1
contourpy                     1.0.6
convertdate                   2.4.0
cryptography                  38.0.4
cssselect                     1.1.0
cycler                        0.11.0
distro                        1.8.0
docutils                      0.19
exceptiongroup                1.0.0
extras                        1.0.0
fastimport                    0.9.14
fixtures                      4.0.0
fonttools                     4.38.0
gevent                        21.12.0
geventhttpclient              2.0.2
gpg                           1.18.0-unknown
greenlet                      1.1.3
hijri-converter               2.2.4
idna                          3.4
imagesize                     1.4.1
importlib-metadata            5.1.0
iniconfig                     2.0.0
Jinja2                        3.1.2
kiwisolver                    1.4.4
libcomps                      0.1.19
lxml                          4.9.1
MarkupSafe                    2.1.1
matplotlib                    3.6.3
numpy                         1.24.1
olefile                       0.46
packaging                     21.3
paramiko                      2.12.0
pbr                           5.9.0
pep517                        0.13.0
Pillow                        9.4.0
pip                           22.3.1
pluggy                        1.0.0
ply                           3.11
pyasn1                        0.4.8
pyasn1-modules                0.2.8
pycparser                     2.21
Pygments                      2.14.0
PyGObject                     3.42.2
PyMeeus                       0.5.11
PyNaCl                        1.5.0
pyparsing                     3.0.9
pytest                        7.2.1
python-dateutil               2.8.2
pytz                          2022.4
PyYAML                        6.0
regex                         2022.10.31
requests                      2.28.1
rpm                           4.17.0
scour                         0.38.2
setuptools                    65.6.3
six                           1.16.0
snowballstemmer               2.2.0
Sphinx                        6.1.3
sphinxcontrib-applehelp       1.0.2.dev20221204
sphinxcontrib-devhelp         1.0.2.dev20221204
sphinxcontrib-htmlhelp        2.0.0
sphinxcontrib-jsmath          1.0.1.dev20221204
sphinxcontrib-qthelp          1.0.3.dev20221204
sphinxcontrib-serializinghtml 1.1.5
testtools                     2.5.0
tomli                         2.0.1
tpm2-pkcs11-tools             1.33.7
tpm2-pytss                    1.1.0
urllib3                       1.26.12
wheel                         0.38.4
zipp                          3.11.0
zope.event                    4.5.0
zope.interface                5.5.2

@kloczek
Copy link
Author

kloczek commented Jan 17, 2023

What should be passed in that $DULWICH_SWIFT_CFG env variable? 🤔

@kloczek
Copy link
Author

kloczek commented Apr 7, 2024

I'v retested 0.21.7 and now pytest still fails.
I found that all dulwich/contrib/test_swift_smoke.py units fails can be solved with patch:

--- a/dulwich/contrib/test_swift_smoke.py
+++ b/dulwich/contrib/test_swift_smoke.py
@@ -40,6 +40,7 @@

 import gevent
 from gevent import monkey
+import pytest

 monkey.patch_all()

@@ -68,6 +69,8 @@
         return swift.SwiftRepo(path, conf=swift.load_conf())


+@pytest.mark.skipif(os.getenv("DULWICH_SWIFT_CFG") == None,
+    reason="Missi Swift cluster configuration file in $DULWICH_SWIFT_CFG env variable.",)
 class SwiftRepoSmokeTest(unittest.TestCase):
     @classmethod
     def setUpClass(cls):

Please let me know if you want tis as PR.

Still with that patch two unit are failing and there are some warnings as well

Here is pytest output:
+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-dulwich-0.21.7-4.fc37.x86_64/usr/lib64/python3.10/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-dulwich-0.21.7-4.fc37.x86_64/usr/lib/python3.10/site-packages
+ /usr/bin/pytest -ra -m 'not network'
============================= test session starts ==============================
platform linux -- Python 3.10.14, pytest-8.1.1, pluggy-1.4.0
rootdir: /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.21.7
configfile: pyproject.toml
collected 1516 items

dulwich/contrib/test_paramiko_vendor.py ...                              [  0%]
dulwich/contrib/test_release_robot.py ..                                 [  0%]
dulwich/contrib/test_swift.py .........................................  [  3%]
dulwich/contrib/test_swift_smoke.py sssssssss                            [  3%]
dulwich/tests/compat/test_client.py ssssssssssssssssssssssssssssssssssss [  6%]
ssssssssssssssssssssssssssssssss                                         [  8%]
dulwich/tests/compat/test_pack.py ssss                                   [  8%]
dulwich/tests/compat/test_patch.py s                                     [  8%]
dulwich/tests/compat/test_porcelain.py ss                                [  8%]
dulwich/tests/compat/test_repository.py ssssssssssssssssssssssss         [ 10%]
dulwich/tests/compat/test_server.py ssssssssssssssssssssssssssss         [ 12%]
dulwich/tests/compat/test_utils.py .....                                 [ 12%]
dulwich/tests/compat/test_web.py sssssssssssssssssssssssssssssssssssssss [ 14%]
sssssssssssssssss                                                        [ 16%]
dulwich/tests/test_archive.py ......                                     [ 16%]
dulwich/tests/test_blackbox.py ...                                       [ 16%]
dulwich/tests/test_bundle.py .                                           [ 16%]
dulwich/tests/test_client.py ....................s...................... [ 19%]
........................................................................ [ 24%]
...........                                                              [ 25%]
dulwich/tests/test_config.py .........................................ss [ 27%]
....................                                                     [ 29%]
dulwich/tests/test_credentials.py ...                                    [ 29%]
dulwich/tests/test_diff_tree.py .s.s.................................... [ 31%]
ss.s.s....................                                               [ 33%]
dulwich/tests/test_fastexport.py .............                           [ 34%]
dulwich/tests/test_file.py .s.........                                   [ 35%]
dulwich/tests/test_grafts.py ....................                        [ 36%]
dulwich/tests/test_graph.py ..........                                   [ 37%]
dulwich/tests/test_greenthreads.py .                                     [ 37%]
dulwich/tests/test_hooks.py ...                                          [ 37%]
dulwich/tests/test_ignore.py ...............                             [ 38%]
dulwich/tests/test_index.py ......................................       [ 41%]
dulwich/tests/test_lfs.py ..                                             [ 41%]
dulwich/tests/test_line_ending.py ..................                     [ 42%]
dulwich/tests/test_lru_cache.py ...............................          [ 44%]
dulwich/tests/test_mailmap.py ..                                         [ 44%]
dulwich/tests/test_missing_obj_finder.py ................                [ 45%]
dulwich/tests/test_object_store.py ..................................... [ 48%]
......................................................                   [ 51%]
dulwich/tests/test_objects.py .......................................... [ 54%]
.......s..s.s......................................                      [ 57%]
dulwich/tests/test_objectspec.py ................................        [ 59%]
dulwich/tests/test_pack.py .............................F............... [ 62%]
................................................                         [ 65%]
dulwich/tests/test_patch.py ..s..................                        [ 67%]
dulwich/tests/test_porcelain.py ........................................ [ 69%]
......................................................................F. [ 74%]
...................................................                      [ 78%]
dulwich/tests/test_protocol.py ......................................... [ 80%]
.                                                                        [ 80%]
dulwich/tests/test_reflog.py .....                                       [ 81%]
dulwich/tests/test_refs.py ............................................. [ 84%]
......................                                                   [ 85%]
dulwich/tests/test_repository.py ....................................... [ 88%]
.....................................................                    [ 91%]
dulwich/tests/test_server.py ........................................... [ 94%]
..........                                                               [ 95%]
dulwich/tests/test_stash.py .                                            [ 95%]
dulwich/tests/test_utils.py ......                                       [ 95%]
dulwich/tests/test_walk.py ...........x......................            [ 97%]
dulwich/tests/test_web.py ................................               [100%]

=================================== FAILURES ===================================
______________________________ TestPack.test_copy ______________________________

self = <dulwich.tests.test_pack.TestPack testMethod=test_copy>

    def test_copy(self):
        with self.get_pack(pack1_sha) as origpack:
            self.assertSucceeds(origpack.index.check)
            basename = os.path.join(self.tempdir, "Elch")
            write_pack(basename, origpack.pack_tuples())

            with Pack(basename) as newpack:
                self.assertEqual(origpack, newpack)
                self.assertSucceeds(newpack.index.check)
                self.assertEqual(origpack.name(), newpack.name())
>               self.assertEqual(
                    origpack.index.get_pack_checksum(),
                    newpack.index.get_pack_checksum(),
                )
E               AssertionError: b'r\x19\x80\xe8f\xaf\x9a_\x93\xadgAD\xe1E\x9b\x8b\xa3\xe7\xb7' != b'j:\x9f\xee\xa6;\x82\xbcqo1?\x88\xc4\xed\x88\xad\xfe\x7f\x1a'

dulwich/tests/test_pack.py:436: AssertionError
______________________ ReceivePackTests.test_receive_pack ______________________

self = <dulwich.tests.test_porcelain.ReceivePackTests testMethod=test_receive_pack>

    def test_receive_pack(self):
        filename = "foo"
        fullpath = os.path.join(self.repo.path, filename)
        with open(fullpath, "w") as f:
            f.write("stuff")
        porcelain.add(repo=self.repo.path, paths=fullpath)
        self.repo.do_commit(
            message=b"test status",
            author=b"author <email>",
            committer=b"committer <email>",
            author_timestamp=1402354300,
            commit_timestamp=1402354300,
            author_timezone=0,
            commit_timezone=0,
        )
        outf = BytesIO()
        exitcode = porcelain.receive_pack(self.repo.path, BytesIO(b"0000"), outf)
        outlines = outf.getvalue().splitlines()
>       self.assertEqual(
            [
                b"0091319b56ce3aee2d489f759736a79cc552c9bb86d9 HEAD\x00 report-status "
                b"delete-refs quiet ofs-delta side-band-64k "
                b"no-done symref=HEAD:refs/heads/master",
                b"003f319b56ce3aee2d489f759736a79cc552c9bb86d9 refs/heads/master",
                b"0000",
            ],
            outlines,
        )
E       AssertionError: Lists differ: [b'0091319b56ce3aee2d489f759736a79cc552c9bb86d[177 chars]000'] != [b'0089319b56ce3aee2d489f759736a79cc552c9bb86d[169 chars]000']
E
E       First differing element 0:
E       b'0091319b56ce3aee2d489f759736a79cc552c9bb86d[100 chars]ster'
E       b'0089319b56ce3aee2d489f759736a79cc552c9bb86d[92 chars]ster'
E
E       - [b'0091319b56ce3aee2d489f759736a79cc552c9bb86d9 HEAD\x00 report-status delete-'
E       ?       -
E
E       + [b'0089319b56ce3aee2d489f759736a79cc552c9bb86d9 HEAD\x00 report-status delete-'
E       ?      +
E
E       -  b'refs quiet ofs-delta side-band-64k no-done symref=HEAD:refs/heads/master',
E       ?                                      --------
E
E       +  b'refs quiet ofs-delta side-band-64k symref=HEAD:refs/heads/master',
E          b'003f319b56ce3aee2d489f759736a79cc552c9bb86d9 refs/heads/master',
E          b'0000']

dulwich/tests/test_porcelain.py:2862: AssertionError
================================== XFAILURES ===================================
_____________________ WalkerTest.test_merge_of_old_branch ______________________

self = <TestCaseFunction test_merge_of_old_branch>
testcase = <dulwich.tests.test_walk.WalkerTest testMethod=test_merge_of_old_branch>
rawexcinfo = (<class 'AssertionError'>, AssertionError("Lists differ: [<TestWalkEntry commit=b'e1170a95d4472d9035[362 chars]one>] !...?                                                                         ^^\n"), <traceback object at 0x7f19cb2b9ac0>)
reason = ''

    def addExpectedFailure(
        self,
        testcase: "unittest.TestCase",
        rawexcinfo: "_SysExcInfoType",
        reason: str = "",
    ) -> None:
        try:
>           xfail(str(reason))
E           _pytest.outcomes.XFailed

/usr/lib/python3.10/site-packages/_pytest/unittest.py:265: XFailed
=============================== warnings summary ===============================
dulwich/tests/test_client.py:699
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.21.7/dulwich/tests/test_client.py:699: PytestCollectionWarning: cannot collect test class 'TestSSHVendor' because it has a __init__ constructor (from: dulwich/tests/test_client.py)
    class TestSSHVendor:

dulwich/tests/test_pack.py:974
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.21.7/dulwich/tests/test_pack.py:974: PytestCollectionWarning: cannot collect test class 'TestPackIterator' because it has a __init__ constructor (from: dulwich/tests/test_pack.py)
    class TestPackIterator(DeltaChainIterator):

dulwich/tests/test_server.py:68
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.21.7/dulwich/tests/test_server.py:68: PytestCollectionWarning: cannot collect test class 'TestProto' because it has a __init__ constructor (from: dulwich/tests/test_server.py)
    class TestProto:

dulwich/tests/test_server.py:98
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.21.7/dulwich/tests/test_server.py:98: PytestCollectionWarning: cannot collect test class 'TestGenericPackHandler' because it has a __init__ constructor (from: dulwich/tests/test_server.py)
    class TestGenericPackHandler(PackHandler):

dulwich/tests/test_server.py:335
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.21.7/dulwich/tests/test_server.py:335: PytestCollectionWarning: cannot collect test class 'TestUploadPackHandler' because it has a __init__ constructor (from: dulwich/tests/test_server.py)
    class TestUploadPackHandler(UploadPackHandler):

dulwich/tests/test_server.py:588
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.21.7/dulwich/tests/test_server.py:588: PytestCollectionWarning: cannot collect test class 'TestProtocolGraphWalker' because it has a __init__ constructor (from: dulwich/tests/test_server.py)
    class TestProtocolGraphWalker:

dulwich/tests/test_walk.py:36
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.21.7/dulwich/tests/test_walk.py:36: PytestCollectionWarning: cannot collect test class 'TestWalkEntry' because it has a __init__ constructor (from: dulwich/tests/test_walk.py)
    class TestWalkEntry:

dulwich/tests/test_web.py:82
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.21.7/dulwich/tests/test_web.py:82: PytestCollectionWarning: cannot collect test class 'TestHTTPGitRequest' because it has a __init__ constructor (from: dulwich/tests/test_web.py)
    class TestHTTPGitRequest(HTTPGitRequest):

dulwich/tests/test_client.py: 4 warnings
dulwich/tests/test_porcelain.py: 72 warnings
dulwich/tests/test_repository.py: 30 warnings
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.21.7/dulwich/repo.py:888: DeprecationWarning: use get_user_identity() rather than Repo._get_user_identity
    warnings.warn(

dulwich/tests/test_repository.py::RepositoryRootTests::test_fetch_ignores_missing_refs
  /home/tkloczko/rpmbuild/BUILD/dulwich-dulwich-0.21.7/dulwich/refs.py:1280: UserWarning: ref refs/heads/blah points at non-present sha 1234566789123456789123567891234657373833
    warnings.warn(

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
SKIPPED [1] dulwich/contrib/test_swift_smoke.py:117: Missing Swift cluster configuration file in $DULWICH_SWIFT_CFG env variable.
SKIPPED [1] dulwich/contrib/test_swift_smoke.py:223: Missing Swift cluster configuration file in $DULWICH_SWIFT_CFG env variable.
SKIPPED [1] dulwich/contrib/test_swift_smoke.py:108: Missing Swift cluster configuration file in $DULWICH_SWIFT_CFG env variable.
SKIPPED [1] dulwich/contrib/test_swift_smoke.py:274: Missing Swift cluster configuration file in $DULWICH_SWIFT_CFG env variable.
SKIPPED [1] dulwich/contrib/test_swift_smoke.py:142: Missing Swift cluster configuration file in $DULWICH_SWIFT_CFG env variable.
SKIPPED [1] dulwich/contrib/test_swift_smoke.py:125: Missing Swift cluster configuration file in $DULWICH_SWIFT_CFG env variable.
SKIPPED [1] dulwich/contrib/test_swift_smoke.py:189: Missing Swift cluster configuration file in $DULWICH_SWIFT_CFG env variable.
SKIPPED [1] dulwich/contrib/test_swift_smoke.py:159: Missing Swift cluster configuration file in $DULWICH_SWIFT_CFG env variable.
SKIPPED [1] dulwich/contrib/test_swift_smoke.py:257: Missing Swift cluster configuration file in $DULWICH_SWIFT_CFG env variable.
SKIPPED [3] dulwich/tests/compat/test_client.py:216: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [3] dulwich/tests/compat/test_client.py:258: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [3] dulwich/tests/compat/test_client.py:224: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [3] dulwich/tests/compat/test_client.py:232: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [3] dulwich/tests/compat/test_client.py:290: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [3] dulwich/tests/compat/test_client.py:299: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [3] dulwich/tests/compat/test_client.py:344: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [3] dulwich/tests/compat/test_client.py:278: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [3] dulwich/tests/compat/test_client.py:246: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [3] dulwich/tests/compat/test_client.py:329: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [3] dulwich/tests/compat/test_client.py:93: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [3] dulwich/tests/compat/test_client.py:113: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [3] dulwich/tests/compat/test_client.py:199: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [3] dulwich/tests/compat/test_client.py:97: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [3] dulwich/tests/compat/test_client.py:181: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_client.py:417: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [3] dulwich/tests/compat/test_client.py:140: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [2] dulwich/tests/compat/test_client.py:312: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_client.py:662: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [1] dulwich/tests/compat/test_client.py:258: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [1] dulwich/tests/compat/test_client.py:224: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [1] dulwich/tests/compat/test_client.py:232: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [1] dulwich/tests/compat/test_client.py:290: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [1] dulwich/tests/compat/test_client.py:299: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [1] dulwich/tests/compat/test_client.py:344: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [1] dulwich/tests/compat/test_client.py:278: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [1] dulwich/tests/compat/test_client.py:246: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [1] dulwich/tests/compat/test_client.py:329: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [1] dulwich/tests/compat/test_client.py:93: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [1] dulwich/tests/compat/test_client.py:113: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [1] dulwich/tests/compat/test_client.py:199: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [1] dulwich/tests/compat/test_client.py:97: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [1] dulwich/tests/compat/test_client.py:181: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [1] dulwich/tests/compat/test_client.py:312: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [1] dulwich/tests/compat/test_client.py:140: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [1] dulwich/tests/compat/test_pack.py:61: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_pack.py:134: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_pack.py:95: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_pack.py:70: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_patch.py:42: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_porcelain.py:43: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_porcelain.py:67: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_repository.py:115: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_repository.py:58: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_repository.py:62: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_repository.py:101: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_repository.py:109: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_repository.py:68: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [2] dulwich/tests/compat/test_repository.py:115: Test requires git >= (2, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_repository.py:159: Test requires git >= (2, 5, 0), but c git not found
SKIPPED [2] dulwich/tests/compat/test_repository.py:185: Test requires git >= (2, 5, 0), but c git not found
SKIPPED [2] dulwich/tests/compat/test_repository.py:170: Test requires git >= (2, 5, 0), but c git not found
SKIPPED [2] dulwich/tests/compat/test_repository.py:62: Test requires git >= (2, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_repository.py:154: Test requires git >= (2, 5, 0), but c git not found
SKIPPED [2] dulwich/tests/compat/test_repository.py:101: Test requires git >= (2, 5, 0), but c git not found
SKIPPED [2] dulwich/tests/compat/test_repository.py:109: Test requires git >= (2, 5, 0), but c git not found
SKIPPED [2] dulwich/tests/compat/test_repository.py:148: Test requires git >= (2, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_repository.py:241: Test requires git >= (2, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_repository.py:236: Test requires git >= (2, 5, 0), but c git not found
SKIPPED [2] dulwich/tests/compat/server_utils.py:148: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [2] dulwich/tests/compat/server_utils.py:121: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [2] dulwich/tests/compat/server_utils.py:308: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [2] dulwich/tests/compat/server_utils.py:296: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [2] dulwich/tests/compat/server_utils.py:134: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:262: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:230: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [2] dulwich/tests/compat/server_utils.py:161: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:167: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:88: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:327: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [2] dulwich/tests/compat/server_utils.py:99: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:111: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:193: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [2] dulwich/tests/compat/server_utils.py:148: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [2] dulwich/tests/compat/server_utils.py:121: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [2] dulwich/tests/compat/server_utils.py:308: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [2] dulwich/tests/compat/server_utils.py:296: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [2] dulwich/tests/compat/server_utils.py:134: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [2] dulwich/tests/compat/server_utils.py:262: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [2] dulwich/tests/compat/server_utils.py:230: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [2] dulwich/tests/compat/server_utils.py:161: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [2] dulwich/tests/compat/server_utils.py:167: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [2] dulwich/tests/compat/server_utils.py:88: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [2] dulwich/tests/compat/server_utils.py:327: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [2] dulwich/tests/compat/server_utils.py:99: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [2] dulwich/tests/compat/server_utils.py:111: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [2] dulwich/tests/compat/server_utils.py:193: Test requires git >= (1, 7, 0, 2), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:148: Test requires git >= (1, 6, 6), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:121: Test requires git >= (1, 6, 6), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:308: Test requires git >= (1, 6, 6), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:296: Test requires git >= (1, 6, 6), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:134: Test requires git >= (1, 6, 6), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:262: Test requires git >= (1, 6, 6), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:230: Test requires git >= (1, 6, 6), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:161: Test requires git >= (1, 6, 6), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:167: Test requires git >= (1, 6, 6), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:88: Test requires git >= (1, 6, 6), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:327: Test requires git >= (1, 6, 6), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:99: Test requires git >= (1, 6, 6), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:111: Test requires git >= (1, 6, 6), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:193: Test requires git >= (1, 6, 6), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:148: Test requires git >= (1, 7, 4), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:121: Test requires git >= (1, 7, 4), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:308: Test requires git >= (1, 7, 4), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:296: Test requires git >= (1, 7, 4), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:134: Test requires git >= (1, 7, 4), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:262: Test requires git >= (1, 7, 4), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:230: Test requires git >= (1, 7, 4), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:161: Test requires git >= (1, 7, 4), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:167: Test requires git >= (1, 7, 4), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:88: Test requires git >= (1, 7, 4), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:327: Test requires git >= (1, 7, 4), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:99: Test requires git >= (1, 7, 4), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:111: Test requires git >= (1, 7, 4), but c git not found
SKIPPED [1] dulwich/tests/compat/server_utils.py:193: Test requires git >= (1, 7, 4), but c git not found
SKIPPED [1] dulwich/tests/compat/test_web.py:191: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_web.py:186: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_web.py:176: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_web.py:168: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_web.py:196: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_web.py:172: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/compat/test_web.py:181: Test requires git >= (1, 5, 0), but c git not found
SKIPPED [1] dulwich/tests/test_client.py:525: Behaviour only happens on windows.
SKIPPED [1] dulwich/tests/test_config.py:313: Windows specific config location.
SKIPPED [1] dulwich/tests/test_config.py:329: Windows specific config location.
SKIPPED [1] dulwich/tests/utils.py:193: <function _is_tree at 0x7f19ccbc45e0> extension not found
SKIPPED [1] dulwich/tests/utils.py:193: <function _merge_entries at 0x7f19ccbc4550> extension not found
SKIPPED [4] dulwich/tests/utils.py:193: <function _count_blocks at 0x7f19ccbc49d0> extension not found
SKIPPED [1] dulwich/tests/test_file.py:70: platform allows overwriting open files
SKIPPED [1] dulwich/tests/utils.py:193: <function parse_tree at 0x7f19cd73c9d0> extension not found
SKIPPED [2] dulwich/tests/utils.py:193: <function sorted_tree_items at 0x7f19cd73dab0> extension not found
SKIPPED [1] dulwich/tests/test_patch.py:219: git_am_patch_split doesn't handle Mercurial patches properly yet
XFAIL dulwich/tests/test_walk.py::WalkerTest::test_merge_of_old_branch - reason:
FAILED dulwich/tests/test_pack.py::TestPack::test_copy - AssertionError: b'r\...
FAILED dulwich/tests/test_porcelain.py::ReceivePackTests::test_receive_pack
==== 2 failed, 1307 passed, 206 skipped, 1 xfailed, 115 warnings in 19.08s =====

@jelmer
Copy link
Owner

jelmer commented Apr 7, 2024

Thanks but that adds a dependency on pytest, even for regular builds that don't use it.

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