Build log:
Mock Version: 5.4
Mock Version: 5.4
Mock Version: 5.4
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target noarch --nodeps /builddir/build/SPECS/python-rpmautospec.spec'], chrootPath='/var/lib/mock/f38-build-49150172-5837861/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0x7efc712ed760>timeout=201600uid=1000gid=425user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.vy5_p0_6:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueprintOutput=False)
Using nspawn with args ['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.vy5_p0_6:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']
Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', 'df14c0400b6f4ccfb92ef4aea908c226', '-D', '/var/lib/mock/f38-build-49150172-5837861/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.vy5_p0_6:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;<mock-chroot>\\007"', '--setenv=PS1=<mock-chroot> \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target noarch --nodeps /builddir/build/SPECS/python-rpmautospec.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False
Building target platforms: noarch
Building for target noarch
setting SOURCE_DATE_EPOCH=1708300800
Wrote: /builddir/build/SRPMS/python-rpmautospec-0.6.2-1.fc38.src.rpm
Child return code was: 0
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-rpmautospec.spec'], chrootPath='/var/lib/mock/f38-build-49150172-5837861/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0x7efc712ed760>timeout=201600uid=1000gid=425user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.vy5_p0_6:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueraiseExc=FalseprintOutput=False)
Using nspawn with args ['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.vy5_p0_6:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']
Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '39e11256265847559737fd951ee6dece', '-D', '/var/lib/mock/f38-build-49150172-5837861/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.vy5_p0_6:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;<mock-chroot>\\007"', '--setenv=PS1=<mock-chroot> \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -br --noclean --target noarch --nodeps /builddir/build/SPECS/python-rpmautospec.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False
Building target platforms: noarch
Building for target noarch
setting SOURCE_DATE_EPOCH=1708300800
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.TZZ8Eq
+ umask 022
+ cd /builddir/build/BUILD
+ cd /builddir/build/BUILD
+ rm -rf rpmautospec-0.6.2
+ /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/rpmautospec-0.6.2.tar.gz
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd rpmautospec-0.6.2
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ sed -i -e '/pytest-cov/d; /addopts.*--cov/d' pyproject.toml
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.2gEOzI
+ umask 022
+ cd /builddir/build/BUILD
+ cd rpmautospec-0.6.2
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
+ export CFLAGS
+ CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
+ export CXXFLAGS
+ FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules '
+ export FFLAGS
+ FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules '
+ export FCFLAGS
+ VALAFLAGS=-g
+ export VALAFLAGS
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
+ echo pyproject-rpm-macros
+ echo python3-devel
+ echo 'python3dist(pip) >= 19'
+ echo 'python3dist(packaging)'
+ '[' -f pyproject.toml ']'
+ echo '(python3dist(tomli) if python3-devel < 3.11)'
+ rm -rfv '*.dist-info/'
+ '[' -f /usr/bin/python3 ']'
+ mkdir -p /builddir/build/BUILD/.pyproject-builddir
+ echo -n
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ TMPDIR=/builddir/build/BUILD/.pyproject-builddir
+ RPM_TOXENV=py311
+ HOSTNAME=rpmbuild
+ /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/pyproject-wheeldir --output /builddir/build/BUILD/python-rpmautospec-0.6.2-1.fc38.noarch-pyproject-buildrequires
Handling poetry-core from build-system.requires
Requirement not satisfied: poetry-core
Exiting dependency generation pass: build backend
+ cat /builddir/build/BUILD/python-rpmautospec-0.6.2-1.fc38.noarch-pyproject-buildrequires
+ rm -rfv '*.dist-info/'
+ RPM_EC=0
++ jobs -p
+ exit 0
Wrote: /builddir/build/SRPMS/python-rpmautospec-0.6.2-1.fc38.buildreqs.nosrc.rpm
Child return code was: 11
Dynamic buildrequires detected
Going to install missing buildrequires. See root.log for details.
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-rpmautospec.spec'], chrootPath='/var/lib/mock/f38-build-49150172-5837861/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0x7efc712ed760>timeout=201600uid=1000gid=425user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.vy5_p0_6:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueraiseExc=FalseprintOutput=False)
Using nspawn with args ['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.vy5_p0_6:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']
Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', 'c55f693550ff4c94ac273bef1959721a', '-D', '/var/lib/mock/f38-build-49150172-5837861/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.vy5_p0_6:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;<mock-chroot>\\007"', '--setenv=PS1=<mock-chroot> \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -br --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-rpmautospec.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False
Building target platforms: noarch
Building for target noarch
setting SOURCE_DATE_EPOCH=1708300800
Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.m3240n
+ umask 022
+ cd /builddir/build/BUILD
+ cd rpmautospec-0.6.2
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
+ export CFLAGS
+ CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
+ export CXXFLAGS
+ FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules '
+ export FFLAGS
+ FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules '
+ export FCFLAGS
+ VALAFLAGS=-g
+ export VALAFLAGS
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
+ echo pyproject-rpm-macros
+ echo python3-devel
+ echo 'python3dist(pip) >= 19'
+ echo 'python3dist(packaging)'
+ '[' -f pyproject.toml ']'
+ echo '(python3dist(tomli) if python3-devel < 3.11)'
+ rm -rfv '*.dist-info/'
+ '[' -f /usr/bin/python3 ']'
+ mkdir -p /builddir/build/BUILD/.pyproject-builddir
+ echo -n
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ TMPDIR=/builddir/build/BUILD/.pyproject-builddir
+ RPM_TOXENV=py311
+ HOSTNAME=rpmbuild
+ /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/pyproject-wheeldir --output /builddir/build/BUILD/python-rpmautospec-0.6.2-1.fc38.noarch-pyproject-buildrequires
Handling poetry-core from build-system.requires
Requirement satisfied: poetry-core
   (installed: poetry-core 1.4.0)
Handling babel (>=2.8,<3.0) from hook generated metadata: Requires-Dist (rpmautospec)
Requirement not satisfied: babel (>=2.8,<3.0)
Handling pygit2 (>=1.4.0,<2.0.0) from hook generated metadata: Requires-Dist (rpmautospec)
Requirement not satisfied: pygit2 (>=1.4.0,<2.0.0)
Handling rpm from hook generated metadata: Requires-Dist (rpmautospec)
Requirement not satisfied: rpm
Handling rpmautospec_core (>=0.1.4,<0.2.0) from hook generated metadata: Requires-Dist (rpmautospec)
Requirement not satisfied: rpmautospec_core (>=0.1.4,<0.2.0)
+ cat /builddir/build/BUILD/python-rpmautospec-0.6.2-1.fc38.noarch-pyproject-buildrequires
+ rm -rfv rpmautospec-0.6.2.dist-info/
removed 'rpmautospec-0.6.2.dist-info/entry_points.txt'
removed 'rpmautospec-0.6.2.dist-info/WHEEL'
removed 'rpmautospec-0.6.2.dist-info/METADATA'
removed 'rpmautospec-0.6.2.dist-info/LICENSE'
removed directory 'rpmautospec-0.6.2.dist-info/'
+ RPM_EC=0
++ jobs -p
+ exit 0
Wrote: /builddir/build/SRPMS/python-rpmautospec-0.6.2-1.fc38.buildreqs.nosrc.rpm
Child return code was: 11
Dynamic buildrequires detected
Going to install missing buildrequires. See root.log for details.
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -br --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-rpmautospec.spec'], chrootPath='/var/lib/mock/f38-build-49150172-5837861/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0x7efc712ed760>timeout=201600uid=1000gid=425user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.vy5_p0_6:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueraiseExc=FalseprintOutput=False)
Using nspawn with args ['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.vy5_p0_6:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']
Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '30279eb406a64d78b60bfb9b522803a0', '-D', '/var/lib/mock/f38-build-49150172-5837861/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.vy5_p0_6:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;<mock-chroot>\\007"', '--setenv=PS1=<mock-chroot> \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -br --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-rpmautospec.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False
Building target platforms: noarch
Building for target noarch
setting SOURCE_DATE_EPOCH=1708300800
Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.74QYWp
+ umask 022
+ cd /builddir/build/BUILD
+ cd rpmautospec-0.6.2
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
+ export CFLAGS
+ CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
+ export CXXFLAGS
+ FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules '
+ export FFLAGS
+ FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules '
+ export FCFLAGS
+ VALAFLAGS=-g
+ export VALAFLAGS
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
+ echo pyproject-rpm-macros
+ echo python3-devel
+ echo 'python3dist(pip) >= 19'
+ echo 'python3dist(packaging)'
+ '[' -f pyproject.toml ']'
+ echo '(python3dist(tomli) if python3-devel < 3.11)'
+ rm -rfv '*.dist-info/'
+ '[' -f /usr/bin/python3 ']'
+ mkdir -p /builddir/build/BUILD/.pyproject-builddir
+ echo -n
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ TMPDIR=/builddir/build/BUILD/.pyproject-builddir
+ RPM_TOXENV=py311
+ HOSTNAME=rpmbuild
+ /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/pyproject-wheeldir --output /builddir/build/BUILD/python-rpmautospec-0.6.2-1.fc38.noarch-pyproject-buildrequires
Handling poetry-core from build-system.requires
Requirement satisfied: poetry-core
   (installed: poetry-core 1.4.0)
Handling babel (>=2.8,<3.0) from hook generated metadata: Requires-Dist (rpmautospec)
Requirement satisfied: babel (>=2.8,<3.0)
   (installed: babel 2.11.0)
Handling pygit2 (>=1.4.0,<2.0.0) from hook generated metadata: Requires-Dist (rpmautospec)
Requirement satisfied: pygit2 (>=1.4.0,<2.0.0)
   (installed: pygit2 1.12.2)
Handling rpm from hook generated metadata: Requires-Dist (rpmautospec)
Requirement satisfied: rpm
   (installed: rpm 4.18.2)
Handling rpmautospec_core (>=0.1.4,<0.2.0) from hook generated metadata: Requires-Dist (rpmautospec)
Requirement satisfied: rpmautospec_core (>=0.1.4,<0.2.0)
   (installed: rpmautospec_core 0.1.4)
+ cat /builddir/build/BUILD/python-rpmautospec-0.6.2-1.fc38.noarch-pyproject-buildrequires
+ rm -rfv rpmautospec-0.6.2.dist-info/
removed 'rpmautospec-0.6.2.dist-info/entry_points.txt'
removed 'rpmautospec-0.6.2.dist-info/WHEEL'
removed 'rpmautospec-0.6.2.dist-info/METADATA'
removed 'rpmautospec-0.6.2.dist-info/LICENSE'
removed directory 'rpmautospec-0.6.2.dist-info/'
+ RPM_EC=0
++ jobs -p
+ exit 0
Wrote: /builddir/build/SRPMS/python-rpmautospec-0.6.2-1.fc38.buildreqs.nosrc.rpm
Child return code was: 11
Dynamic buildrequires detected
Going to install missing buildrequires. See root.log for details.
ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --noclean --target noarch /builddir/build/SPECS/python-rpmautospec.spec'], chrootPath='/var/lib/mock/f38-build-49150172-5837861/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=<mockbuild.trace_decorator.getLog object at 0x7efc712ed760>timeout=201600uid=1000gid=425user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.vy5_p0_6:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']unshare_net=TrueprintOutput=False)
Using nspawn with args ['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.vy5_p0_6:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11']
Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '76909ff9fa3447f6b49fce5ba5224bf5', '-D', '/var/lib/mock/f38-build-49150172-5837861/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.vy5_p0_6:/etc/resolv.conf', '--bind=/dev/btrfs-control', '--bind=/dev/mapper/control', '--bind=/dev/fuse', '--bind=/dev/loop-control', '--bind=/dev/loop0', '--bind=/dev/loop1', '--bind=/dev/loop2', '--bind=/dev/loop3', '--bind=/dev/loop4', '--bind=/dev/loop5', '--bind=/dev/loop6', '--bind=/dev/loop7', '--bind=/dev/loop8', '--bind=/dev/loop9', '--bind=/dev/loop10', '--bind=/dev/loop11', '--console=pipe', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;<mock-chroot>\\007"', '--setenv=PS1=<mock-chroot> \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --noclean --target noarch /builddir/build/SPECS/python-rpmautospec.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;<mock-chroot>\\007"', 'PS1': '<mock-chroot> \\s-\\v\\$ ', 'LANG': 'C.UTF-8', 'SYSTEMD_NSPAWN_TMPFS_TMP': '0', 'SYSTEMD_SECCOMP': '0'} and shell False
Building target platforms: noarch
Building for target noarch
setting SOURCE_DATE_EPOCH=1708300800
Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.CJuvRr
+ umask 022
+ cd /builddir/build/BUILD
+ cd rpmautospec-0.6.2
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
+ export CFLAGS
+ CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
+ export CXXFLAGS
+ FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules '
+ export FFLAGS
+ FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules '
+ export FCFLAGS
+ VALAFLAGS=-g
+ export VALAFLAGS
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
+ echo pyproject-rpm-macros
+ echo python3-devel
+ echo 'python3dist(pip) >= 19'
+ echo 'python3dist(packaging)'
+ '[' -f pyproject.toml ']'
+ echo '(python3dist(tomli) if python3-devel < 3.11)'
+ rm -rfv '*.dist-info/'
+ '[' -f /usr/bin/python3 ']'
+ mkdir -p /builddir/build/BUILD/.pyproject-builddir
+ echo -n
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ TMPDIR=/builddir/build/BUILD/.pyproject-builddir
+ RPM_TOXENV=py311
+ HOSTNAME=rpmbuild
+ /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/pyproject-wheeldir --output /builddir/build/BUILD/python-rpmautospec-0.6.2-1.fc38.noarch-pyproject-buildrequires
Handling poetry-core from build-system.requires
Requirement satisfied: poetry-core
   (installed: poetry-core 1.4.0)
Handling babel (>=2.8,<3.0) from hook generated metadata: Requires-Dist (rpmautospec)
Requirement satisfied: babel (>=2.8,<3.0)
   (installed: babel 2.11.0)
Handling pygit2 (>=1.4.0,<2.0.0) from hook generated metadata: Requires-Dist (rpmautospec)
Requirement satisfied: pygit2 (>=1.4.0,<2.0.0)
   (installed: pygit2 1.12.2)
Handling rpm from hook generated metadata: Requires-Dist (rpmautospec)
Requirement satisfied: rpm
   (installed: rpm 4.18.2)
Handling rpmautospec_core (>=0.1.4,<0.2.0) from hook generated metadata: Requires-Dist (rpmautospec)
Requirement satisfied: rpmautospec_core (>=0.1.4,<0.2.0)
   (installed: rpmautospec_core 0.1.4)
+ cat /builddir/build/BUILD/python-rpmautospec-0.6.2-1.fc38.noarch-pyproject-buildrequires
+ rm -rfv rpmautospec-0.6.2.dist-info/
removed 'rpmautospec-0.6.2.dist-info/entry_points.txt'
removed 'rpmautospec-0.6.2.dist-info/WHEEL'
removed 'rpmautospec-0.6.2.dist-info/METADATA'
removed 'rpmautospec-0.6.2.dist-info/LICENSE'
removed directory 'rpmautospec-0.6.2.dist-info/'
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.Nimigl
+ umask 022
+ cd /builddir/build/BUILD
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
+ export CFLAGS
+ CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
+ export CXXFLAGS
+ FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules '
+ export FFLAGS
+ FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules '
+ export FCFLAGS
+ VALAFLAGS=-g
+ export VALAFLAGS
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
+ cd rpmautospec-0.6.2
+ mkdir -p /builddir/build/BUILD/rpmautospec-0.6.2/.pyproject-builddir
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ TMPDIR=/builddir/build/BUILD/rpmautospec-0.6.2/.pyproject-builddir
+ /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_wheel.py /builddir/build/BUILD/rpmautospec-0.6.2/pyproject-wheeldir
Processing /builddir/build/BUILD/rpmautospec-0.6.2
  Preparing metadata (pyproject.toml): started
  Running command Preparing metadata (pyproject.toml)
  Preparing metadata (pyproject.toml): finished with status 'done'
Building wheels for collected packages: rpmautospec
  Building wheel for rpmautospec (pyproject.toml): started
  Running command Building wheel for rpmautospec (pyproject.toml)
  Building wheel for rpmautospec (pyproject.toml): finished with status 'done'
  Created wheel for rpmautospec: filename=rpmautospec-0.6.2-py3-none-any.whl size=24856 sha256=de9c491c4bff936d823493305733a9f1369544496361b219787d59ac14189cc3
  Stored in directory: /builddir/.cache/pip/wheels/80/7c/4a/534ee48703d5f9e4827909a8c54bc45a58d9ff0a9e30ba549e
Successfully built rpmautospec
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.ZdA4yQ
+ umask 022
+ cd /builddir/build/BUILD
+ '[' /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch '!=' / ']'
+ rm -rf /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch
++ dirname /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch
+ mkdir -p /builddir/build/BUILDROOT
+ mkdir /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
+ export CFLAGS
+ CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
+ export CXXFLAGS
+ FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules '
+ export FFLAGS
+ FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules '
+ export FCFLAGS
+ VALAFLAGS=-g
+ export VALAFLAGS
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
+ cd rpmautospec-0.6.2
++ ls /builddir/build/BUILD/rpmautospec-0.6.2/pyproject-wheeldir/rpmautospec-0.6.2-py3-none-any.whl
++ xargs basename --multiple
++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/'
+ specifier=rpmautospec==0.6.2
+ '[' -z rpmautospec==0.6.2 ']'
+ TMPDIR=/builddir/build/BUILD/rpmautospec-0.6.2/.pyproject-builddir
+ /usr/bin/python3 -m pip install --root /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch --prefix /usr --no-deps --disable-pip-version-check --progress-bar off --verbose --ignore-installed --no-warn-script-location --no-index --no-cache-dir --find-links /builddir/build/BUILD/rpmautospec-0.6.2/pyproject-wheeldir rpmautospec==0.6.2
Using pip 22.3.1 from /usr/lib/python3.11/site-packages/pip (python 3.11)
Looking in links: /builddir/build/BUILD/rpmautospec-0.6.2/pyproject-wheeldir
Processing ./pyproject-wheeldir/rpmautospec-0.6.2-py3-none-any.whl
Installing collected packages: rpmautospec
  Creating /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch/usr/bin
  changing mode of /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch/usr/bin/rpmautospec to 755
Successfully installed rpmautospec-0.6.2
+ '[' -d /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch/usr/bin ']'
+ '[' -z sP ']'
+ shebang_flags=-kasP
+ /usr/bin/python3 -B /usr/lib/rpm/redhat/pathfix.py -pni /usr/bin/python3 -kasP /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch/usr/bin/rpmautospec
/builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch/usr/bin/rpmautospec: updating
+ rm -rfv /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch/usr/bin/__pycache__
+ rm -f /builddir/build/BUILD/python-rpmautospec-0.6.2-1.fc38.noarch-pyproject-ghost-distinfo
+ site_dirs=()
+ '[' -d /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch/usr/lib/python3.11/site-packages ']'
+ site_dirs+=("/usr/lib/python3.11/site-packages")
+ '[' /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch/usr/lib64/python3.11/site-packages '!=' /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch/usr/lib/python3.11/site-packages ']'
+ '[' -d /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch/usr/lib64/python3.11/site-packages ']'
+ for site_dir in ${site_dirs[@]}
+ for distinfo in /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch$site_dir/*.dist-info
+ echo '%ghost /usr/lib/python3.11/site-packages/rpmautospec-0.6.2.dist-info'
+ sed -i s/pip/rpm/ /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch/usr/lib/python3.11/site-packages/rpmautospec-0.6.2.dist-info/INSTALLER
+ PYTHONPATH=/usr/lib/rpm/redhat
+ /usr/bin/python3 -B /usr/lib/rpm/redhat/pyproject_preprocess_record.py --buildroot /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch --record /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch/usr/lib/python3.11/site-packages/rpmautospec-0.6.2.dist-info/RECORD --output /builddir/build/BUILD/python-rpmautospec-0.6.2-1.fc38.noarch-pyproject-record
+ rm -fv /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch/usr/lib/python3.11/site-packages/rpmautospec-0.6.2.dist-info/RECORD
removed '/builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch/usr/lib/python3.11/site-packages/rpmautospec-0.6.2.dist-info/RECORD'
+ rm -fv /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch/usr/lib/python3.11/site-packages/rpmautospec-0.6.2.dist-info/REQUESTED
removed '/builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch/usr/lib/python3.11/site-packages/rpmautospec-0.6.2.dist-info/REQUESTED'
++ wc -l /builddir/build/BUILD/python-rpmautospec-0.6.2-1.fc38.noarch-pyproject-ghost-distinfo
++ cut -f1 '-d '
+ lines=1
+ '[' 1 -ne 1 ']'
+ RPM_PERCENTAGES_COUNT=8
+ /usr/bin/python3 /usr/lib/rpm/redhat/pyproject_save_files.py --output-files /builddir/build/BUILD/python-rpmautospec-0.6.2-1.fc38.noarch-pyproject-files --output-modules /builddir/build/BUILD/python-rpmautospec-0.6.2-1.fc38.noarch-pyproject-modules --buildroot /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch --sitelib /usr/lib/python3.11/site-packages --sitearch /usr/lib64/python3.11/site-packages --python-version 3.11 --pyproject-record /builddir/build/BUILD/python-rpmautospec-0.6.2-1.fc38.noarch-pyproject-record --prefix /usr rpmautospec
+ sed -i -e 's|^\(.*/LICENSE\)|%license \1|g' /builddir/build/BUILD/python-rpmautospec-0.6.2-1.fc38.noarch-pyproject-files
+ mkdir -p /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch/usr/lib/rpm/macros.d
+ install -m 644 rpm/macros.d/macros.rpmautospec /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch/usr/lib/rpm/macros.d/
+ /usr/bin/find-debuginfo -j6 --strict-build-id -m -i --build-id-seed 0.6.2-1.fc38 --unique-debug-suffix -0.6.2-1.fc38.noarch --unique-debug-src-base python-rpmautospec-0.6.2-1.fc38.noarch --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 50000000 -S debugsourcefiles.list /builddir/build/BUILD/rpmautospec-0.6.2
find-debuginfo: starting
Extracting debug info from 0 files
Creating .debug symlinks for symlinks to ELF files
find: 'debug': No such file or directory
find-debuginfo: done
+ /usr/lib/rpm/check-buildroot
+ /usr/lib/rpm/redhat/brp-ldconfig
+ /usr/lib/rpm/brp-compress
+ /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip
+ /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip
+ /usr/lib/rpm/check-rpaths
+ /usr/lib/rpm/redhat/brp-mangle-shebangs
+ /usr/lib/rpm/brp-remove-la-files
+ env /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j6
Bytecompiling .py files below /builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch/usr/lib/python3.11 using python3.11
+ /usr/lib/rpm/redhat/brp-python-hardlink
Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.GpkSIM
+ umask 022
+ cd /builddir/build/BUILD
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
+ export CFLAGS
+ CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
+ export CXXFLAGS
+ FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules '
+ export FFLAGS
+ FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules '
+ export FCFLAGS
+ VALAFLAGS=-g
+ export VALAFLAGS
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ export LDFLAGS
+ LT_SYS_LIBRARY_PATH=/usr/lib:
+ export LT_SYS_LIBRARY_PATH
+ CC=gcc
+ export CC
+ CXX=g++
+ export CXX
+ cd rpmautospec-0.6.2
+ CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -m64  -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer '
+ LDFLAGS='-Wl,-z,relro -Wl,--as-needed  -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1  -Wl,--build-id=sha1  '
+ PATH=/builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin
+ PYTHONPATH=/builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch/usr/lib64/python3.11/site-packages:/builddir/build/BUILDROOT/python-rpmautospec-0.6.2-1.fc38.noarch/usr/lib/python3.11/site-packages
+ PYTHONDONTWRITEBYTECODE=1
+ PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/rpmautospec-0.6.2/.pyproject-builddir'
+ PYTEST_XDIST_AUTO_NUM_WORKERS=6
+ /usr/bin/pytest -v --numprocesses=auto
============================= test session starts ==============================
platform linux -- Python 3.11.7, pytest-7.2.2, pluggy-1.0.0 -- /usr/bin/python3
cachedir: .pytest_cache
rootdir: /builddir/build/BUILD/rpmautospec-0.6.2, configfile: pyproject.toml
plugins: xdist-3.1.0
gw0 I / gw1 I / gw2 I / gw3 I / gw4 I / gw5 I

[gw0] linux Python 3.11.7 cwd: /builddir/build/BUILD/rpmautospec-0.6.2

[gw1] linux Python 3.11.7 cwd: /builddir/build/BUILD/rpmautospec-0.6.2

[gw2] linux Python 3.11.7 cwd: /builddir/build/BUILD/rpmautospec-0.6.2

[gw3] linux Python 3.11.7 cwd: /builddir/build/BUILD/rpmautospec-0.6.2

[gw4] linux Python 3.11.7 cwd: /builddir/build/BUILD/rpmautospec-0.6.2

[gw5] linux Python 3.11.7 cwd: /builddir/build/BUILD/rpmautospec-0.6.2

[gw0] Python 3.11.7 (main, Dec 18 2023, 00:00:00) [GCC 13.2.1 20231011 (Red Hat 13.2.1-4)]

[gw1] Python 3.11.7 (main, Dec 18 2023, 00:00:00) [GCC 13.2.1 20231011 (Red Hat 13.2.1-4)]

[gw2] Python 3.11.7 (main, Dec 18 2023, 00:00:00) [GCC 13.2.1 20231011 (Red Hat 13.2.1-4)]

[gw3] Python 3.11.7 (main, Dec 18 2023, 00:00:00) [GCC 13.2.1 20231011 (Red Hat 13.2.1-4)]

[gw5] Python 3.11.7 (main, Dec 18 2023, 00:00:00) [GCC 13.2.1 20231011 (Red Hat 13.2.1-4)]

[gw4] Python 3.11.7 (main, Dec 18 2023, 00:00:00) [GCC 13.2.1 20231011 (Red Hat 13.2.1-4)]
gw0 [5186] / gw1 [5186] / gw2 [5186] / gw3 [5186] / gw4 [5186] / gw5 [5186]
scheduling tests via LoadScheduling
tests/test_rpmmacros.py::test_autorelease[False-None-None-False-None-False] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test___init__[not a regular file] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [  0%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test___init__[not a regular file] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_packager[without-exception] 
[gw0] [  0%] PASSED tests/test_rpmmacros.py::test_autorelease[False-None-None-False-None-False] 
tests/test_rpmmacros.py::test_autorelease[False-None-None-False-None-True] 
[gw1] [  0%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_packager[without-exception] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_packager[with-exception] 
[gw0] [  0%] PASSED tests/test_rpmmacros.py::test_autorelease[False-None-None-False-None-True] 
tests/test_rpmmacros.py::test_autorelease[False-None-None-False-10-False] 
[gw3] [  0%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [  0%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [  0%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_packager[with-exception] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-autorelease-normal] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [  0%] PASSED tests/test_rpmmacros.py::test_autorelease[False-None-None-False-10-False] 
[gw1] [  0%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-autorelease-normal] 
tests/test_rpmmacros.py::test_autorelease[False-None-None-False-10-True] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-autorelease-with-name] 
[gw0] [  0%] PASSED tests/test_rpmmacros.py::test_autorelease[False-None-None-False-10-True] 
tests/test_rpmmacros.py::test_autorelease[False-None-None-True-None-False] 
[gw4] [  0%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [  0%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [  0%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-autorelease-with-name] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-autorelease-specfile-missing] 
[gw0] [  0%] PASSED tests/test_rpmmacros.py::test_autorelease[False-None-None-True-None-False] 
tests/test_rpmmacros.py::test_autorelease[False-None-None-True-None-True] 
[gw1] [  0%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-autorelease-specfile-missing] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-autorelease-specfile-broken] 
[gw0] [  0%] PASSED tests/test_rpmmacros.py::test_autorelease[False-None-None-True-None-True] 
tests/test_rpmmacros.py::test_autorelease[False-None-None-True-10-False] 
[gw4] [  0%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [  0%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [  0%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-autorelease-specfile-broken] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-autorelease-specfile-broken-without-log-error] 
[gw0] [  0%] PASSED tests/test_rpmmacros.py::test_autorelease[False-None-None-True-10-False] 
tests/test_rpmmacros.py::test_autorelease[False-None-None-True-10-True] 
[gw0] [  0%] PASSED tests/test_rpmmacros.py::test_autorelease[False-None-None-True-10-True] 
tests/test_rpmmacros.py::test_autorelease[False-None-19700101-False-None-False] 
[gw1] [  0%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-autorelease-specfile-broken-without-log-error] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-autorelease-base-normal] 
[gw4] [  0%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [  0%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [  0%] PASSED tests/test_rpmmacros.py::test_autorelease[False-None-19700101-False-None-False] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/test_rpmmacros.py::test_autorelease[False-None-19700101-False-None-True] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [  0%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-autorelease-base-normal] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-autorelease-base-with-name] 
[gw0] [  0%] PASSED tests/test_rpmmacros.py::test_autorelease[False-None-19700101-False-None-True] 
tests/test_rpmmacros.py::test_autorelease[False-None-19700101-False-10-False] 
[gw3] [  0%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [  0%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [  0%] PASSED tests/test_rpmmacros.py::test_autorelease[False-None-19700101-False-10-False] 
[gw1] [  0%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-autorelease-base-with-name] 
tests/test_rpmmacros.py::test_autorelease[False-None-19700101-False-10-True] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-autorelease-base-specfile-missing] 
[gw1] [  0%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-autorelease-base-specfile-missing] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-autorelease-base-specfile-broken] 
[gw0] [  0%] PASSED tests/test_rpmmacros.py::test_autorelease[False-None-19700101-False-10-True] 
tests/test_rpmmacros.py::test_autorelease[False-None-19700101-True-None-False] 
[gw0] [  0%] PASSED tests/test_rpmmacros.py::test_autorelease[False-None-19700101-True-None-False] 
tests/test_rpmmacros.py::test_autorelease[False-None-19700101-True-None-True] 
[gw3] [  0%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [  0%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-autorelease-base-specfile-broken] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-autorelease-base-specfile-broken-without-log-error] 
[gw4] [  0%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [  0%] PASSED tests/test_rpmmacros.py::test_autorelease[False-None-19700101-True-None-True] 
tests/test_rpmmacros.py::test_autorelease[False-None-19700101-True-10-False] 
[gw1] [  0%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-autorelease-base-specfile-broken-without-log-error] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-manual-normal] 
[gw0] [  0%] PASSED tests/test_rpmmacros.py::test_autorelease[False-None-19700101-True-10-False] 
tests/test_rpmmacros.py::test_autorelease[False-None-19700101-True-10-True] 
[gw1] [  0%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-manual-normal] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-manual-with-name] 
[gw0] [  0%] PASSED tests/test_rpmmacros.py::test_autorelease[False-None-19700101-True-10-True] 
tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-None-False-None-False] 
[gw1] [  0%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-manual-with-name] 
[gw3] [  0%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [  0%] PASSED tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-None-False-None-False] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-manual-specfile-missing] 
tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-None-False-None-True] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [  0%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-manual-specfile-missing] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-manual-specfile-broken] 
[gw0] [  0%] PASSED tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-None-False-None-True] 
tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-None-False-10-False] 
[gw4] [  0%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [  0%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-manual-specfile-broken] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-manual-specfile-broken-without-log-error] 
[gw0] [  0%] PASSED tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-None-False-10-False] 
tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-None-False-10-True] 
[gw1] [  0%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-manual-specfile-broken-without-log-error] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-autorelease-normal] 
[gw0] [  1%] PASSED tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-None-False-10-True] 
tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-None-True-None-False] 
[gw3] [  1%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [  1%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-autorelease-normal] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-autorelease-with-name] 
[gw0] [  1%] PASSED tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-None-True-None-False] 
tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-None-True-None-True] 
[gw0] [  1%] PASSED tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-None-True-None-True] 
[gw4] [  1%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [  1%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-autorelease-with-name] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-autorelease-specfile-missing] 
tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-None-True-10-False] 
[gw1] [  1%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-autorelease-specfile-missing] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-autorelease-specfile-broken] 
[gw0] [  1%] PASSED tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-None-True-10-False] 
tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-None-True-10-True] 
[gw1] [  1%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-autorelease-specfile-broken] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-autorelease-specfile-broken-without-log-error] 
[gw0] [  1%] PASSED tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-None-True-10-True] 
tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-19700101-False-None-False] 
[gw3] [  1%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [  1%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-autorelease-specfile-broken-without-log-error] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-autorelease-base-normal] 
[gw0] [  1%] PASSED tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-19700101-False-None-False] 
tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-19700101-False-None-True] 
[gw4] [  1%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [  1%] PASSED tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-19700101-False-None-True] 
tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-19700101-False-10-False] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [  1%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [  1%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-autorelease-base-normal] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-autorelease-base-with-name] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [  1%] PASSED tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-19700101-False-10-False] 
tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-19700101-False-10-True] 
[gw1] [  1%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-autorelease-base-with-name] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-autorelease-base-specfile-missing] 
[gw0] [  1%] PASSED tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-19700101-False-10-True] 
tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-19700101-True-None-False] 
[gw3] [  1%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [  1%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-autorelease-base-specfile-missing] 
[gw0] [  1%] PASSED tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-19700101-True-None-False] 
tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-19700101-True-None-True] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-autorelease-base-specfile-broken] 
[gw0] [  1%] PASSED tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-19700101-True-None-True] 
[gw4] [  1%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [  1%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-autorelease-base-specfile-broken] 
tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-19700101-True-10-False] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-autorelease-base-specfile-broken-without-log-error] 
[gw5] [  1%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [  1%] PASSED tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-19700101-True-10-False] 
tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-19700101-True-10-True] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [  1%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-autorelease-base-specfile-broken-without-log-error] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-manual-normal] 
[gw0] [  1%] PASSED tests/test_rpmmacros.py::test_autorelease[False-ilikeunsortableversions-19700101-True-10-True] 
tests/test_rpmmacros.py::test_autorelease[True-None-None-False-None-False] 
[gw0] [  1%] PASSED tests/test_rpmmacros.py::test_autorelease[True-None-None-False-None-False] 
tests/test_rpmmacros.py::test_autorelease[True-None-None-False-None-True] 
[gw1] [  1%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-manual-normal] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-manual-with-name] 
[gw3] [  1%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [  1%] PASSED tests/test_rpmmacros.py::test_autorelease[True-None-None-False-None-True] 
tests/test_rpmmacros.py::test_autorelease[True-None-None-False-10-False] 
[gw1] [  1%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-manual-with-name] 
[gw0] [  1%] PASSED tests/test_rpmmacros.py::test_autorelease[True-None-None-False-10-False] 
[gw4] [  1%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-manual-specfile-missing] 
tests/test_rpmmacros.py::test_autorelease[True-None-None-False-10-True] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [  1%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-manual-specfile-missing] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-manual-specfile-broken] 
[gw0] [  1%] PASSED tests/test_rpmmacros.py::test_autorelease[True-None-None-False-10-True] 
tests/test_rpmmacros.py::test_autorelease[True-None-None-True-None-False] 
[gw0] [  1%] PASSED tests/test_rpmmacros.py::test_autorelease[True-None-None-True-None-False] 
[gw1] [  1%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-manual-specfile-broken] 
tests/test_rpmmacros.py::test_autorelease[True-None-None-True-None-True] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-manual-specfile-broken-without-log-error] 
[gw3] [  1%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [  1%] PASSED tests/test_rpmmacros.py::test_autorelease[True-None-None-True-None-True] 
tests/test_rpmmacros.py::test_autorelease[True-None-None-True-10-False] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [  1%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[without-prep-manual-specfile-broken-without-log-error] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-autorelease-normal] 
[gw4] [  1%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [  1%] PASSED tests/test_rpmmacros.py::test_autorelease[True-None-None-True-10-False] 
tests/test_rpmmacros.py::test_autorelease[True-None-None-True-10-True] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [  1%] PASSED tests/test_rpmmacros.py::test_autorelease[True-None-None-True-10-True] 
tests/test_rpmmacros.py::test_autorelease[True-None-19700101-False-None-False] 
[gw3] [  1%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [  1%] PASSED tests/test_rpmmacros.py::test_autorelease[True-None-19700101-False-None-False] 
[gw1] [  1%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-autorelease-normal] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-autorelease-with-name] 
tests/test_rpmmacros.py::test_autorelease[True-None-19700101-False-None-True] 
[gw4] [  1%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-None-19700101-False-None-True] 
tests/test_rpmmacros.py::test_autorelease[True-None-19700101-False-10-False] 
[gw1] [  2%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-autorelease-with-name] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-None-19700101-False-10-False] 
tests/test_rpmmacros.py::test_autorelease[True-None-19700101-False-10-True] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-autorelease-specfile-missing] 
[gw1] [  2%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-autorelease-specfile-missing] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-autorelease-specfile-broken] 
[gw3] [  2%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-None-19700101-False-10-True] 
tests/test_rpmmacros.py::test_autorelease[True-None-19700101-True-None-False] 
[gw4] [  2%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-None-19700101-True-None-False] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/test_rpmmacros.py::test_autorelease[True-None-19700101-True-None-True] 
[gw1] [  2%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-autorelease-specfile-broken] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-autorelease-specfile-broken-without-log-error] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-None-19700101-True-None-True] 
tests/test_rpmmacros.py::test_autorelease[True-None-19700101-True-10-False] 
[gw1] [  2%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-autorelease-specfile-broken-without-log-error] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-autorelease-base-normal] 
[gw3] [  2%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-None-19700101-True-10-False] 
tests/test_rpmmacros.py::test_autorelease[True-None-19700101-True-10-True] 
[gw1] [  2%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-autorelease-base-normal] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-autorelease-base-with-name] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-None-19700101-True-10-True] 
tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-None-False-None-False] 
[gw4] [  2%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-None-False-None-False] 
tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-None-False-None-True] 
[gw1] [  2%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-autorelease-base-with-name] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-autorelease-base-specfile-missing] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-None-False-None-True] 
tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-None-False-10-False] 
[gw3] [  2%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [  2%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-autorelease-base-specfile-missing] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-autorelease-base-specfile-broken] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-None-False-10-False] 
tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-None-False-10-True] 
[gw4] [  2%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [  2%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-autorelease-base-specfile-broken] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-None-False-10-True] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-autorelease-base-specfile-broken-without-log-error] 
tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-None-True-None-False] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-None-True-None-False] 
tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-None-True-None-True] 
[gw1] [  2%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-autorelease-base-specfile-broken-without-log-error] 
[gw2] [  2%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-manual-normal] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [  2%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-None-True-None-True] 
tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-None-True-10-False] 
[gw4] [  2%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [  2%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-manual-normal] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-manual-with-name] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-None-True-10-False] 
tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-None-True-10-True] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-None-True-10-True] 
tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-19700101-False-None-False] 
[gw1] [  2%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-manual-with-name] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-manual-specfile-missing] 
[gw1] [  2%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-manual-specfile-missing] 
[gw3] [  2%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-19700101-False-None-False] 
tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-19700101-False-None-True] 
[gw4] [  2%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-manual-specfile-broken] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [  2%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [  2%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-manual-specfile-broken] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-manual-specfile-broken-without-log-error] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-19700101-False-None-True] 
tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-19700101-False-10-False] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-19700101-False-10-False] 
tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-19700101-False-10-True] 
[gw1] [  2%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpm_verflags[with-prep-inadequate-manual-specfile-broken-without-log-error] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpmverflags_for_commit[normal] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-19700101-False-10-True] 
tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-19700101-True-None-False] 
[gw1] [  2%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpmverflags_for_commit[normal] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpmverflags_for_commit[no-spec-file] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-19700101-True-None-False] 
tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-19700101-True-None-True] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-19700101-True-None-True] 
[gw1] [  2%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpmverflags_for_commit[no-spec-file] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpmverflags_for_commit[needs-full-repo] 
tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-19700101-True-10-False] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-19700101-True-10-False] 
tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-19700101-True-10-True] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autorelease[True-ilikeunsortableversions-19700101-True-10-True] 
tests/test_rpmmacros.py::test_autochangelog[None-None] 
[gw0] [  2%] PASSED tests/test_rpmmacros.py::test_autochangelog[None-None] 
tests/test_rpmmacros.py::test_autochangelog[None-2] 
[gw0] [  3%] PASSED tests/test_rpmmacros.py::test_autochangelog[None-2] 
tests/test_rpmmacros.py::test_autochangelog[Foo Bar <foo@bar.com>-None] 
[gw0] [  3%] PASSED tests/test_rpmmacros.py::test_autochangelog[Foo Bar <foo@bar.com>-None] 
tests/test_rpmmacros.py::test_autochangelog[Foo Bar <foo@bar.com>-2] 
[gw0] [  3%] PASSED tests/test_rpmmacros.py::test_autochangelog[Foo Bar <foo@bar.com>-2] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-1-True-True] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-1-True-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-1-True-False] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-1-True-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-1-False-True] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-1-False-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-1-False-False] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-1-False-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-2-True-True] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-2-True-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-2-True-False] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-2-True-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-2-False-True] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-2-False-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-2-False-False] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-2-False-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-3-True-True] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-3-True-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-3-True-False] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-3-True-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-3-False-True] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-3-False-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-3-False-False] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-3-False-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-4-True-True] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-4-True-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-4-True-False] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-4-True-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-4-False-True] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-4-False-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-4-False-False] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_commitlog_to_changelog_items[commitlog-4-False-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-True-False-True] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-True-False-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-True-False-epoch-version] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-True-False-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-True-False-False] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-True-False-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-True-True-True] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-True-True-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-True-True-epoch-version] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-True-True-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-True-True-False] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-True-True-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-False-False-True] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-False-False-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-False-False-epoch-version] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-False-False-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-False-False-False] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-False-False-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-False-True-True] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-False-True-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-False-True-epoch-version] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-False-True-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-False-True-False] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-True-False-True-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-True-False-True] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-True-False-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-True-False-epoch-version] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-True-False-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-True-False-False] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-True-False-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-True-True-True] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-True-True-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-True-True-epoch-version] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-True-True-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-True-True-False] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-True-True-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-False-False-True] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-False-False-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-False-False-epoch-version] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-False-False-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-False-False-False] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-False-False-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-False-True-True] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-False-True-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-False-True-epoch-version] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-False-True-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-False-True-False] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-1-False-False-True-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-True-False-True] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-True-False-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-True-False-epoch-version] 
[gw1] [  3%] FAILED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpmverflags_for_commit[needs-full-repo] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpmverflags_for_commit_cache[normal] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-True-False-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-True-False-False] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-True-False-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-True-True-True] 
[gw1] [  3%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpmverflags_for_commit_cache[normal] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-True-True-True] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpmverflags_for_commit_cache[needs-full-repo] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-True-True-epoch-version] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-True-True-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-True-True-False] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-True-True-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-False-False-True] 
[gw0] [  3%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-False-False-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-False-False-epoch-version] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-False-False-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-False-False-False] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-False-False-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-False-True-True] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-False-True-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-False-True-epoch-version] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-False-True-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-False-True-False] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-True-False-True-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-True-False-True] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-True-False-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-True-False-epoch-version] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-True-False-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-True-False-False] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-True-False-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-True-True-True] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-True-True-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-True-True-epoch-version] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-True-True-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-True-True-False] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-True-True-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-False-False-True] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-False-False-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-False-False-epoch-version] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-False-False-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-False-False-False] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-False-False-False] 
[gw1] [  4%] FAILED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpmverflags_for_commit_cache[needs-full-repo] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__merge_info[normal] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-False-True-True] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-False-True-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-False-True-epoch-version] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-False-True-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-False-True-False] 
[gw1] [  4%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__merge_info[normal] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__merge_info[key-error] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-2-False-False-True-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-True-False-True] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-True-False-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-True-False-epoch-version] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-True-False-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-True-False-False] 
[gw1] [  4%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__merge_info[key-error] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-True-False-False] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test_run[without-commit] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-True-True-True] 
[gw2] [  4%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-True-True-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-True-True-epoch-version] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-True-True-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-True-True-False] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-True-True-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-False-False-True] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-False-False-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-False-False-epoch-version] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-False-False-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-False-False-False] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-False-False-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-False-True-True] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-False-True-True] 
[gw4] [  4%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-False-True-epoch-version] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-False-True-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-False-True-False] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-True-False-True-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-True-False-True] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-True-False-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-True-False-epoch-version] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-True-False-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-True-False-False] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-True-False-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-True-True-True] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-True-True-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-True-True-epoch-version] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-True-True-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-True-True-False] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-True-True-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-False-False-True] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-False-False-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-False-False-epoch-version] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-False-False-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-False-False-False] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-False-False-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-False-True-True] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-False-True-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-False-True-epoch-version] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-False-True-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-False-True-False] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-3-False-False-True-False] 
[gw1] [  4%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test_run[without-commit] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-True-False-True] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test_run[with-commit] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-True-False-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-True-False-epoch-version] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-True-False-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-True-False-False] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-True-False-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-True-True-True] 
[gw0] [  4%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-True-True-True] 
[gw3] [  4%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-True-True-epoch-version] 
[gw0] [  5%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-True-True-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-True-True-False] 
[gw0] [  5%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-True-True-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-False-False-True] 
[gw0] [  5%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-False-False-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-False-False-epoch-version] 
[gw0] [  5%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-False-False-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-False-False-False] 
[gw0] [  5%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-False-False-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-False-True-True] 
[gw0] [  5%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-False-True-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-False-True-epoch-version] 
[gw0] [  5%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-False-True-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-False-True-False] 
[gw0] [  5%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-True-False-True-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-True-False-True] 
[gw0] [  5%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-True-False-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-True-False-epoch-version] 
[gw0] [  5%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-True-False-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-True-False-False] 
[gw0] [  5%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-True-False-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-True-True-True] 
[gw0] [  5%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-True-True-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-True-True-epoch-version] 
[gw0] [  5%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-True-True-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-True-True-False] 
[gw0] [  5%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-True-True-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-False-False-True] 
[gw0] [  5%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-False-False-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-False-False-epoch-version] 
[gw1] [  5%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test_run[with-commit] 
[gw0] [  5%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-False-False-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-False-False-False] 
[gw0] [  5%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-False-False-False] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test_run[all-results] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-False-True-True] 
[gw0] [  5%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-False-True-True] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-False-True-epoch-version] 
[gw0] [  5%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-False-True-epoch-version] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-False-True-False] 
[gw0] [  5%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format[commitlog-4-False-False-True-False] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format_error[string] 
[gw5] [  5%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [  5%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format_error[string] 
tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format_error[list] 
[gw0] [  5%] PASSED tests/rpmautospec/test_changelog.py::TestChangelogEntry::test_format_error[list] 
tests/rpmautospec/test_cli.py::test_setup_logging[CRITICAL] 
[gw0] [  5%] PASSED tests/rpmautospec/test_cli.py::test_setup_logging[CRITICAL] 
tests/rpmautospec/test_cli.py::test_setup_logging[WARNING] 
[gw0] [  5%] PASSED tests/rpmautospec/test_cli.py::test_setup_logging[WARNING] 
tests/rpmautospec/test_cli.py::test_setup_logging[INFO] 
[gw0] [  5%] PASSED tests/rpmautospec/test_cli.py::test_setup_logging[INFO] 
tests/rpmautospec/test_cli.py::test_setup_logging[DEBUG] 
[gw0] [  5%] PASSED tests/rpmautospec/test_cli.py::test_setup_logging[DEBUG] 
tests/rpmautospec/test_cli.py::test_handle_expected_exceptions[None] 
[gw0] [  5%] PASSED tests/rpmautospec/test_cli.py::test_handle_expected_exceptions[None] 
tests/rpmautospec/test_cli.py::test_handle_expected_exceptions[BrokenPipeError] 
[gw0] [  5%] PASSED tests/rpmautospec/test_cli.py::test_handle_expected_exceptions[BrokenPipeError] 
tests/rpmautospec/test_cli.py::test_handle_expected_exceptions[OSError] 
[gw0] [  5%] PASSED tests/rpmautospec/test_cli.py::test_handle_expected_exceptions[OSError] 
tests/rpmautospec/test_cli.py::test_main_nothing 
[gw1] [  5%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test_run[all-results] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test_run[locale-set] 
[gw1] [  5%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test_run[locale-set] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test_run[without-repo] 
[gw1] [  5%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test_run[without-repo] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test_run[with-merge] 
[gw1] [  5%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test_run[with-merge] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test_run[missing-specfile] 
[gw1] [  5%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test_run[missing-specfile] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test_run[missing-specfile-missing-default-signature] 
[gw2] [  5%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [  5%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test_run[missing-specfile-missing-default-signature] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test_run[dirty] 
[gw4] [  5%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [  5%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [  5%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test_run[dirty] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test_run[dirty-missing-default-signature] 
[gw0] [  5%] PASSED tests/rpmautospec/test_cli.py::test_main_nothing 
tests/rpmautospec/test_cli.py::test_main_help 
[gw5] [  5%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [  5%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test_run[dirty-missing-default-signature] 
tests/rpmautospec/subcommands/test_changelog.py::test_register_subcommand 
[gw1] [  5%] PASSED tests/rpmautospec/subcommands/test_changelog.py::test_register_subcommand 
tests/rpmautospec/subcommands/test_changelog.py::test__coerce_to_str[str] 
[gw1] [  5%] PASSED tests/rpmautospec/subcommands/test_changelog.py::test__coerce_to_str[str] 
tests/rpmautospec/subcommands/test_changelog.py::test__coerce_to_str[bytes] 
[gw1] [  5%] PASSED tests/rpmautospec/subcommands/test_changelog.py::test__coerce_to_str[bytes] 
tests/rpmautospec/subcommands/test_changelog.py::test_collate_changelog 
[gw1] [  5%] PASSED tests/rpmautospec/subcommands/test_changelog.py::test_collate_changelog 
tests/rpmautospec/subcommands/test_changelog.py::test_produce_changelog 
[gw1] [  5%] PASSED tests/rpmautospec/subcommands/test_changelog.py::test_produce_changelog 
tests/rpmautospec/subcommands/test_changelog.py::test_produce_changelog_error 
[gw1] [  5%] PASSED tests/rpmautospec/subcommands/test_changelog.py::test_produce_changelog_error 
tests/rpmautospec/subcommands/test_changelog.py::test_main 
[gw1] [  5%] PASSED tests/rpmautospec/subcommands/test_changelog.py::test_main 
tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_init_invalid_path 
[gw1] [  5%] PASSED tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_init_invalid_path 
tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_init_not_regular_file 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_init_not_regular_file 
tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_init_changelog_exists 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_init_changelog_exists 
tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_init_modified_spec_file 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_init_modified_spec_file 
tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_init_dirty_tree 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_init_dirty_tree 
tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_init_new_file 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_init_new_file 
tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_init_spec_file_untracked 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_init_spec_file_untracked 
tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[made-commit-converted-release-not-for-git] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[made-commit-converted-release-not-for-git] 
tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[made-commit-converted-release-for-git] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[made-commit-converted-release-for-git] 
tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[made-commit-converted-changelog-not-for-git] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[made-commit-converted-changelog-not-for-git] 
tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[made-commit-converted-changelog-for-git] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[made-commit-converted-changelog-for-git] 
tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[made-commit-converted-release-converted-changelog-not-for-git] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[made-commit-converted-release-converted-changelog-not-for-git] 
tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[made-commit-converted-release-converted-changelog-for-git] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[made-commit-converted-release-converted-changelog-for-git] 
tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[not-made-commit-converted-release-not-for-git] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[not-made-commit-converted-release-not-for-git] 
tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[not-made-commit-converted-release-for-git] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[not-made-commit-converted-release-for-git] 
tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[not-made-commit-converted-changelog-not-for-git] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[not-made-commit-converted-changelog-not-for-git] 
tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[not-made-commit-converted-changelog-for-git] 
[gw2] [  6%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[not-made-commit-converted-changelog-for-git] 
tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[not-made-commit-converted-release-converted-changelog-not-for-git] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[not-made-commit-converted-release-converted-changelog-not-for-git] 
tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[not-made-commit-converted-release-converted-changelog-for-git] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_describe_changes[not-made-commit-converted-release-converted-changelog-for-git] 
[gw4] [  6%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [  6%] PASSED tests/rpmautospec/test_cli.py::test_main_help 
tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_commit[without-message-Release: 1-%changelog\n* Wed Jan 24 2024 Road Runner <roadrunner@desert.place> 1-1\n- Meep meep!\n] 
tests/rpmautospec/test_cli.py::test_main_convert[release-changelog] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [  6%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_commit[without-message-Release: 1-%changelog\n* Wed Jan 24 2024 Road Runner <roadrunner@desert.place> 1-1\n- Meep meep!\n] 
tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_commit[with-message-Release: 1-%changelog\n* Wed Jan 24 2024 Road Runner <roadrunner@desert.place> 1-1\n- Meep meep!\n] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::TestPkgConverter::test_commit[with-message-Release: 1-%changelog\n* Wed Jan 24 2024 Road Runner <roadrunner@desert.place> 1-1\n- Meep meep!\n] 
tests/rpmautospec/subcommands/test_convert.py::test_register_subcommand 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::test_register_subcommand 
tests/rpmautospec/subcommands/test_convert.py::test_main_invalid_args 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::test_main_invalid_args 
tests/rpmautospec/subcommands/test_convert.py::test_main_valid_args 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::test_main_valid_args 
tests/rpmautospec/subcommands/test_convert.py::test_autorelease[regular] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::test_autorelease[regular] 
tests/rpmautospec/subcommands/test_convert.py::test_autorelease[whitespace] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::test_autorelease[whitespace] 
tests/rpmautospec/subcommands/test_convert.py::test_autorelease[case] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::test_autorelease[case] 
tests/rpmautospec/subcommands/test_convert.py::test_autorelease_already_converted 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::test_autorelease_already_converted 
tests/rpmautospec/subcommands/test_convert.py::test_autorelease_invalid[missing] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::test_autorelease_invalid[missing] 
tests/rpmautospec/subcommands/test_convert.py::test_autorelease_invalid[multiple] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::test_autorelease_invalid[multiple] 
tests/rpmautospec/subcommands/test_convert.py::test_autochangelog[regular] 
[gw5] [  6%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::test_autochangelog[regular] 
tests/rpmautospec/subcommands/test_convert.py::test_autochangelog[case+whitespace] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::test_autochangelog[case+whitespace] 
tests/rpmautospec/subcommands/test_convert.py::test_autochangelog[regular+newlines] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::test_autochangelog[regular+newlines] 
tests/rpmautospec/subcommands/test_convert.py::test_autochangelog_already_converted 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::test_autochangelog_already_converted 
tests/rpmautospec/subcommands/test_convert.py::test_autochangelog_invalid[missing] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::test_autochangelog_invalid[missing] 
tests/rpmautospec/subcommands/test_convert.py::test_autochangelog_invalid[multiple] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::test_autochangelog_invalid[multiple] 
tests/rpmautospec/subcommands/test_convert.py::test_commit_no_repo 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::test_commit_no_repo 
tests/rpmautospec/subcommands/test_convert.py::test_commit[changelog-release1] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::test_commit[changelog-release1] 
tests/rpmautospec/subcommands/test_convert.py::test_commit[changelog-autorelease] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::test_commit[changelog-autorelease] 
tests/rpmautospec/subcommands/test_convert.py::test_commit[autochangelog-release1] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::test_commit[autochangelog-release1] 
tests/rpmautospec/subcommands/test_convert.py::test_commit[autochangelog-autorelease] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_convert.py::test_commit[autochangelog-autorelease] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_register_subcommand 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_register_subcommand 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [  6%] PASSED tests/rpmautospec/test_cli.py::test_main_convert[release-changelog] 
tests/rpmautospec/test_cli.py::test_main_convert[autorelease-changelog] 
[gw2] [  6%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [  6%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [  6%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [  6%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [  6%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [  7%] PASSED tests/rpmautospec/test_cli.py::test_main_convert[autorelease-changelog] 
tests/rpmautospec/test_cli.py::test_main_convert[release-autochangelog] 
[gw4] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [  7%] PASSED tests/rpmautospec/test_cli.py::test_main_convert[release-autochangelog] 
tests/rpmautospec/test_cli.py::test_main_convert[norelease-changelog-failure] 
[gw4] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [  7%] PASSED tests/rpmautospec/test_cli.py::test_main_convert[norelease-changelog-failure] 
tests/rpmautospec/test_cli.py::test_main_convert[doublerelease-changelog-failure] 
[gw5] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [  7%] PASSED tests/rpmautospec/test_cli.py::test_main_convert[doublerelease-changelog-failure] 
tests/rpmautospec/test_cli.py::test_main_convert[release-nochangelog-failure] 
[gw4] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [  7%] PASSED tests/rpmautospec/test_cli.py::test_main_convert[release-nochangelog-failure] 
tests/rpmautospec/test_cli.py::test_main_convert[release-doublechangelog-failure] 
[gw4] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [  7%] PASSED tests/rpmautospec/test_cli.py::test_main_convert[release-doublechangelog-failure] 
tests/rpmautospec/test_exc.py::TestRpmautospecException::test___init__ 
[gw0] [  7%] PASSED tests/rpmautospec/test_exc.py::TestRpmautospecException::test___init__ 
tests/rpmautospec/test_exc.py::TestRpmautospecException::test___str__ 
[gw0] [  7%] PASSED tests/rpmautospec/test_exc.py::TestRpmautospecException::test___str__ 
tests/rpmautospec/test_magic_comments.py::test_parse_magic_comments[commit-1] 
[gw0] [  7%] PASSED tests/rpmautospec/test_magic_comments.py::test_parse_magic_comments[commit-1] 
tests/rpmautospec/test_magic_comments.py::test_parse_magic_comments[commit-2] 
[gw0] [  7%] PASSED tests/rpmautospec/test_magic_comments.py::test_parse_magic_comments[commit-2] 
tests/rpmautospec/test_magic_comments.py::test_parse_magic_comments[commit-3] 
[gw0] [  7%] PASSED tests/rpmautospec/test_magic_comments.py::test_parse_magic_comments[commit-3] 
tests/rpmautospec/test_magic_comments.py::test_parse_magic_comments[commit-4] 
[gw0] [  7%] PASSED tests/rpmautospec/test_magic_comments.py::test_parse_magic_comments[commit-4] 
tests/rpmautospec/test_pager.py::test_page[enabled-withenv] 
[gw0] [  7%] PASSED tests/rpmautospec/test_pager.py::test_page[enabled-withenv] 
tests/rpmautospec/test_pager.py::test_page[enabled-withoutenv] 
[gw0] [  7%] PASSED tests/rpmautospec/test_pager.py::test_page[enabled-withoutenv] 
tests/rpmautospec/test_pager.py::test_page[disabled] 
[gw0] [  7%] PASSED tests/rpmautospec/test_pager.py::test_page[disabled] 
tests/rpmautospec/test_pkg_history.py::test__checkout_tree_files 
[gw0] [  7%] FAILED tests/rpmautospec/test_pkg_history.py::test__checkout_tree_files 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test___init__[str, is file] 
[gw2] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [  7%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test___init__[str, is file] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test___init__[str, is dir] 
[gw0] [  7%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test___init__[str, is dir] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test___init__[path, is file] 
[gw0] [  7%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test___init__[path, is file] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test___init__[path, is file, wrong extension] 
[gw4] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [  7%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test___init__[path, is file, wrong extension] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test___init__[path, is dir] 
[gw0] [  7%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test___init__[path, is dir] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test___init__[doesn't exist] 
[gw0] [  7%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test___init__[doesn't exist] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test___init__[spec doesn't exist, is dir] 
[gw0] [  7%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test___init__[spec doesn't exist, is dir] 
tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test___init__[no git repo] 
[gw0] [  7%] PASSED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test___init__[no git repo] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [  7%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [  8%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [  9%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 10%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 11%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 12%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 13%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 14%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 15%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 16%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 17%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 18%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 19%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 20%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 21%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 22%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 23%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 24%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 25%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 26%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 27%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 28%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 29%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 30%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 31%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-unchanged-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 32%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 33%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 34%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 35%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 36%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 37%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 38%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 39%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 40%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 41%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 42%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 43%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 44%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 45%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 46%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 47%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-with braces-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 48%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 49%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 50%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 51%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 52%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 53%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 54%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 55%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 56%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 57%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 58%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 59%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 60%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 61%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 62%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 63%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 64%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 65%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-optional-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 66%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 67%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 68%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 69%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 70%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 71%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 72%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 73%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 74%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 75%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 76%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 77%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 77%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 77%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 77%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 78%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 78%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 78%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 78%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 79%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 79%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 79%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 79%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 79%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 80%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 80%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 80%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 80%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 80%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 80%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 80%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 80%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 80%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 80%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 81%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 81%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 81%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 81%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 81%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 81%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 81%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 81%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 81%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 81%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 81%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 81%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 81%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 81%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 81%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 81%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 81%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 81%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 81%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 81%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 81%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 82%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 82%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 82%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 82%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 82%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 82%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 82%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 83%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 83%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 83%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 83%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 83%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 83%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 83%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 83%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 83%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 84%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 84%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 84%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 84%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 84%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-manual-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 84%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 84%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 84%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 84%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 84%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 85%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 85%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 85%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 85%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 85%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 85%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 85%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 85%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 85%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 86%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 86%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 87%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 87%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 87%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 87%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 87%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 87%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 87%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 87%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 87%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 87%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 87%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 87%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 88%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 88%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 88%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 88%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 88%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 88%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 88%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 88%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 88%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 89%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 89%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 89%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 89%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 89%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 89%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 89%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 89%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 89%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 90%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 90%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 90%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 90%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 90%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 90%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 90%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 90%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 90%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 90%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 90%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 90%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 90%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 90%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 90%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 90%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 91%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 91%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 91%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 91%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 91%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 91%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 91%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 91%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 91%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 91%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 91%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 91%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 91%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 91%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 91%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 91%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 91%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 91%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 92%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 92%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 92%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 92%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 92%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 92%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 92%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 92%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 92%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 92%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 92%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 93%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 93%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 93%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 93%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 93%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 93%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 93%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 93%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 93%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 93%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 93%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 93%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 93%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 93%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 93%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 93%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 93%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 93%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 93%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 93%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 93%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 93%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 94%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 94%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 94%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 94%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 94%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 94%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 94%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 94%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 94%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 94%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 94%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 95%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 95%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 95%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 95%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 95%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 95%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 95%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 95%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 95%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 95%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 95%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 96%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw1] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 96%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 96%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 96%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 96%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 96%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 96%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 96%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 96%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 96%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 96%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 96%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 96%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 96%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 96%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 96%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 96%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 96%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 97%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 97%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 97%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 97%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 97%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw4] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw1] [ 97%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 97%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 97%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 97%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 97%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw5] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 97%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 97%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 97%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 97%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 97%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 98%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw1] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw5] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 98%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 98%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 98%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw5] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw4] [ 98%] FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw0] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw3] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw4] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw1] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw5] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw2] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 98%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw0] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw2] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw3] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw5] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw3] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw1] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw4] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw5] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw3] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw2] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw0] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
[gw0] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] 
[gw2] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
[gw2] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
[gw0] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
[gw3] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
[gw2] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_main[locale-unset] 
[gw2] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-C] 
[gw0] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_main[locale-C] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_main[locale-de] 
[gw1] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
[gw4] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-without-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
[gw1] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] 
tests/rpmautospec/subcommands/test_release.py::TestRelease::test_calculate_release_error 
[gw1] [ 99%] PASSED tests/rpmautospec/subcommands/test_release.py::TestRelease::test_calculate_release_error 
[gw5] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-False-with-bump-release-dirty-worktree-with-overwrite-specfile-locale-de] 
tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw4] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] 
tests/rpmautospec/subcommands/test_release.py::TestRelease::test_calculate_release_number 
[gw4] [ 99%] PASSED tests/rpmautospec/subcommands/test_release.py::TestRelease::test_calculate_release_number 
[gw5] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[epel8-unchanged-unchanged-False-True-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] 
[gw3] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_main[locale-unset] 
tests/rpmautospec/subcommands/test_release.py::TestRelease::test_register_subcommand 
[gw3] [ 99%] PASSED tests/rpmautospec/subcommands/test_release.py::TestRelease::test_register_subcommand 
[gw0] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_main[locale-de] 
tests/rpmautospec/subcommands/test_release.py::TestRelease::test_calculate_release[main] 
[gw2] [ 99%] PASSED tests/rpmautospec/subcommands/test_process_distgit.py::test_main[locale-C] 
tests/rpmautospec/subcommands/test_release.py::TestRelease::test_calculate_release[calculate_release] 
[gw0] [ 99%] PASSED tests/rpmautospec/subcommands/test_release.py::TestRelease::test_calculate_release[main] 
[gw2] [100%] PASSED tests/rpmautospec/subcommands/test_release.py::TestRelease::test_calculate_release[calculate_release] 
=================================== FAILURES ===================================
__ TestPkgHistoryProcessor.test__get_rpmverflags_for_commit[needs-full-repo] ___
[gw1] linux -- Python 3.11.7 /usr/bin/python3
self = <tests.rpmautospec.test_pkg_history.TestPkgHistoryProcessor object at 0x7f2a7d85b310>
testcase = 'needs-full-repo'
specfile = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test__get_rpmverflags_for_comm2/test/test.spec')
repo = pygit2.Repository('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test__get_rpmverflags_for_comm2/test/.git/')
processor = <rpmautospec.pkg_history.PkgHistoryProcessor object at 0x7f2a7c5cd790>
    @pytest.mark.parametrize(
        "testcase",
        ("normal", "no-spec-file", "needs-full-repo"),
    )
    def test__get_rpmverflags_for_commit(self, testcase, specfile, repo, processor):
        head_commit = repo[repo.head.target]
    
        no_spec_file = "no-spec-file" in testcase
        needs_full_repo = "needs-full-repo" in testcase
    
        if no_spec_file:
            index = repo.index
            index.remove(specfile.name)
            index.write()
    
            tree = index.write_tree()
    
            parent, ref = repo.resolve_refish(repo.head.name)
    
            head_commit = repo[
                repo.create_commit(
                    ref.name,
                    repo.default_signature,
                    repo.default_signature,
                    "Be gone, spec file!",
                    tree,
                    [parent.oid],
                )
            ]
    
        with mock.patch.object(
            processor, "_get_rpmverflags", wraps=processor._get_rpmverflags
        ) as _get_rpmverflags, mock.patch.object(
            pkg_history, "_checkout_tree_files", side_effect=pkg_history._checkout_tree_files
        ) as _checkout_tree_files:
            side_effect = [mock.DEFAULT]
            if needs_full_repo:
                side_effect.insert(0, {"error": "specfile-parse-error"})
            _get_rpmverflags.side_effect = side_effect
    
            calls_in_order = mock.Mock()
            calls_in_order.attach_mock(_get_rpmverflags, "_get_rpmverflags")
            calls_in_order.attach_mock(_checkout_tree_files, "_checkout_tree_files")
    
>           result = processor._get_rpmverflags_for_commit(head_commit)
tests/rpmautospec/test_pkg_history.py:288: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1189: in _execute_mock_call
    result = effect(*args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:10a0dea9ca8c7971a84dd24fd775a5f2c3576cdd}>
tree = <pygit2.Object{tree:6b05a71faa46f45b0e2eb546f8a7a85af5c43869}>
topdir = PosixPath('/tmp/rpmautospec-i1rshafu'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
_ TestPkgHistoryProcessor.test__get_rpmverflags_for_commit_cache[needs-full-repo] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
self = <tests.rpmautospec.test_pkg_history.TestPkgHistoryProcessor object at 0x7f2a7d773290>
testcase = 'needs-full-repo'
repo = pygit2.Repository('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test__get_rpmverflags_for_comm4/test/.git/')
processor = <rpmautospec.pkg_history.PkgHistoryProcessor object at 0x7f2a7c31c850>
    @pytest.mark.parametrize("testcase", ("normal", "needs-full-repo"))
    def test__get_rpmverflags_for_commit_cache(self, testcase, repo, processor):
        head_commit = repo[repo.head.target]
    
        with mock.patch.object(processor, "_get_rpmverflags") as _get_rpmverflags:
            _get_rpmverflags.return_value = retval = {}
    
            if testcase == "needs-full-repo":
                retval["error"] = "specfile-parse-error"
    
>           assert processor._get_rpmverflags_for_commit(head_commit) is retval
tests/rpmautospec/test_pkg_history.py:319: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:67337ca21cde3669296cff6399237d57c83848c1}>
tree = <pygit2.Object{tree:6b05a71faa46f45b0e2eb546f8a7a85af5c43869}>
topdir = PosixPath('/tmp/rpmautospec-bbjfgr0e'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
__________________________ test__checkout_tree_files ___________________________
[gw0] linux -- Python 3.11.7 /usr/bin/python3
repopath = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test__checkout_tree_files0/test')
specfile = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test__checkout_tree_files0/test/test.spec')
repo = pygit2.Repository('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test__checkout_tree_files0/test/.git/')
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test__checkout_tree_files0')
    def test__checkout_tree_files(repopath, specfile, repo, tmp_path):
        # Add a symlink in a new commit
        symlink = repopath / "symlink"
        symlink.symlink_to(specfile.name)
    
        index = repo.index
        index.add(symlink.name)
        index.write()
    
        tree = index.write_tree()
    
        parent, ref = repo.resolve_refish(repo.head.name)
    
        oid = repo.create_commit(
            ref.name,
            repo.default_signature,
            repo.default_signature,
            "Added a symlink!",
            tree,
            [parent.id],
        )
    
        head_commit = repo[oid]
    
        # Now check out the files elsewhere
        elsewhere = tmp_path / "elsewhere"
    
>       pkg_history._checkout_tree_files(head_commit, head_commit.tree, elsewhere)
tests/rpmautospec/test_pkg_history.py:43: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:a1b7c251a281d42d352cba845b817e1c1da7c53e}>
tree = <pygit2.Object{tree:f4ab26864fe877e580bfcdae67e0ada92c553620}>
topdir = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test__checkout_tree_files0/elsewhere')
reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
_ test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b0')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:614d3558448b3f644cd521d89f60199c6d67cb4d}>
tree = <pygit2.Object{tree:0db487c1667266d1c3127872e03efee987766479}>
topdir = PosixPath('/tmp/rpmautospec-mfvlovyv'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 614d355] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b1')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:614d3558448b3f644cd521d89f60199c6d67cb4d}>
tree = <pygit2.Object{tree:0db487c1667266d1c3127872e03efee987766479}>
topdir = PosixPath('/tmp/rpmautospec-uwb4_epn'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 614d355] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b2')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:614d3558448b3f644cd521d89f60199c6d67cb4d}>
tree = <pygit2.Object{tree:0db487c1667266d1c3127872e03efee987766479}>
topdir = PosixPath('/tmp/rpmautospec-e4x38yr4'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 614d355] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b3')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:614d3558448b3f644cd521d89f60199c6d67cb4d}>
tree = <pygit2.Object{tree:0db487c1667266d1c3127872e03efee987766479}>
topdir = PosixPath('/tmp/rpmautospec-ru2tn1ns'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 614d355] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b4')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:614d3558448b3f644cd521d89f60199c6d67cb4d}>
tree = <pygit2.Object{tree:0db487c1667266d1c3127872e03efee987766479}>
topdir = PosixPath('/tmp/rpmautospec-qthv2ik4'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 614d355] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b0')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ade823a1446fd1d904765415c2f7401fe21d2a16}>
tree = <pygit2.Object{tree:0b50502fc0c2866aa3f77f9855a5c54a78e0329d}>
topdir = PosixPath('/tmp/rpmautospec-4v95skfv'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide ade823a] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b5')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:614d3558448b3f644cd521d89f60199c6d67cb4d}>
tree = <pygit2.Object{tree:0db487c1667266d1c3127872e03efee987766479}>
topdir = PosixPath('/tmp/rpmautospec-u0tlmxjt'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 614d355] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b1')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ade823a1446fd1d904765415c2f7401fe21d2a16}>
tree = <pygit2.Object{tree:0b50502fc0c2866aa3f77f9855a5c54a78e0329d}>
topdir = PosixPath('/tmp/rpmautospec-moysntq0'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide ade823a] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b2')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ade823a1446fd1d904765415c2f7401fe21d2a16}>
tree = <pygit2.Object{tree:0b50502fc0c2866aa3f77f9855a5c54a78e0329d}>
topdir = PosixPath('/tmp/rpmautospec-x_05mv7v'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide ade823a] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b12')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:76deb8fb121cafe89702029903b1b9b4577a35c3}>
tree = <pygit2.Object{tree:0db487c1667266d1c3127872e03efee987766479}>
topdir = PosixPath('/tmp/rpmautospec-x43a18l9'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 76deb8f] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b13')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:76deb8fb121cafe89702029903b1b9b4577a35c3}>
tree = <pygit2.Object{tree:0db487c1667266d1c3127872e03efee987766479}>
topdir = PosixPath('/tmp/rpmautospec-r06666ak'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 76deb8f] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b14')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:76deb8fb121cafe89702029903b1b9b4577a35c3}>
tree = <pygit2.Object{tree:0db487c1667266d1c3127872e03efee987766479}>
topdir = PosixPath('/tmp/rpmautospec-gxg03jgg'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 76deb8f] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b15')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:76deb8fb121cafe89702029903b1b9b4577a35c3}>
tree = <pygit2.Object{tree:0db487c1667266d1c3127872e03efee987766479}>
topdir = PosixPath('/tmp/rpmautospec-2rkln4rc'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 76deb8f] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b16')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:76deb8fb121cafe89702029903b1b9b4577a35c3}>
tree = <pygit2.Object{tree:0db487c1667266d1c3127872e03efee987766479}>
topdir = PosixPath('/tmp/rpmautospec-m5a8oa2f'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 76deb8f] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b33')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:06c2a4ceb4912b5b3041a3223554b9338d830c76}>
tree = <pygit2.Object{tree:0aff845f3e77ed3ac7749bab1526c9180e671fa1}>
topdir = PosixPath('/tmp/rpmautospec-ldui0_ni'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 06c2a4c] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b17')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:76deb8fb121cafe89702029903b1b9b4577a35c3}>
tree = <pygit2.Object{tree:0db487c1667266d1c3127872e03efee987766479}>
topdir = PosixPath('/tmp/rpmautospec-3pcyd9vx'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 76deb8f] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b34')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:06c2a4ceb4912b5b3041a3223554b9338d830c76}>
tree = <pygit2.Object{tree:0aff845f3e77ed3ac7749bab1526c9180e671fa1}>
topdir = PosixPath('/tmp/rpmautospec-lefgnfyh'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 06c2a4c] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b35')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:06c2a4ceb4912b5b3041a3223554b9338d830c76}>
tree = <pygit2.Object{tree:0aff845f3e77ed3ac7749bab1526c9180e671fa1}>
topdir = PosixPath('/tmp/rpmautospec-104nm_wl'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 06c2a4c] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b36')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:06c2a4ceb4912b5b3041a3223554b9338d830c76}>
tree = <pygit2.Object{tree:0aff845f3e77ed3ac7749bab1526c9180e671fa1}>
topdir = PosixPath('/tmp/rpmautospec-bbife5km'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 06c2a4c] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b37')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:06c2a4ceb4912b5b3041a3223554b9338d830c76}>
tree = <pygit2.Object{tree:0aff845f3e77ed3ac7749bab1526c9180e671fa1}>
topdir = PosixPath('/tmp/rpmautospec-mo3s31c2'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 06c2a4c] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b1')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:e93a24efda2d8be8bfbf376db5190ed3e22f6501}>
tree = <pygit2.Object{tree:1ad13ebdfc6c0a07f8077904e81c1efde7e242ce}>
topdir = PosixPath('/tmp/rpmautospec-aerwts6b'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide e93a24e] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b2')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:e93a24efda2d8be8bfbf376db5190ed3e22f6501}>
tree = <pygit2.Object{tree:1ad13ebdfc6c0a07f8077904e81c1efde7e242ce}>
topdir = PosixPath('/tmp/rpmautospec-zge7gdy7'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide e93a24e] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b38')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:06c2a4ceb4912b5b3041a3223554b9338d830c76}>
tree = <pygit2.Object{tree:0aff845f3e77ed3ac7749bab1526c9180e671fa1}>
topdir = PosixPath('/tmp/rpmautospec-2_trmohy'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 06c2a4c] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b3')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:e93a24efda2d8be8bfbf376db5190ed3e22f6501}>
tree = <pygit2.Object{tree:1ad13ebdfc6c0a07f8077904e81c1efde7e242ce}>
topdir = PosixPath('/tmp/rpmautospec-f8jnfqfp'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide e93a24e] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b4')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:e93a24efda2d8be8bfbf376db5190ed3e22f6501}>
tree = <pygit2.Object{tree:1ad13ebdfc6c0a07f8077904e81c1efde7e242ce}>
topdir = PosixPath('/tmp/rpmautospec-f40x_xe0'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide e93a24e] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b5')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:e93a24efda2d8be8bfbf376db5190ed3e22f6501}>
tree = <pygit2.Object{tree:1ad13ebdfc6c0a07f8077904e81c1efde7e242ce}>
topdir = PosixPath('/tmp/rpmautospec-wact4jrb'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide e93a24e] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b6')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:e93a24efda2d8be8bfbf376db5190ed3e22f6501}>
tree = <pygit2.Object{tree:1ad13ebdfc6c0a07f8077904e81c1efde7e242ce}>
topdir = PosixPath('/tmp/rpmautospec-w6pzt76s'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide e93a24e] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b41')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:8b8da5d2ed3f6670e6dc630135443d0071d0592f}>
tree = <pygit2.Object{tree:048244d3983a94659af10437c3d0abc91985eda6}>
topdir = PosixPath('/tmp/rpmautospec-zarsmcnp'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 8b8da5d] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b25')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:eaa8278ac392883922b43ad71e9b59dfaaeb8d59}>
tree = <pygit2.Object{tree:0aff845f3e77ed3ac7749bab1526c9180e671fa1}>
topdir = PosixPath('/tmp/rpmautospec-6fnfll6k'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide eaa8278] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b42')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:8b8da5d2ed3f6670e6dc630135443d0071d0592f}>
tree = <pygit2.Object{tree:048244d3983a94659af10437c3d0abc91985eda6}>
topdir = PosixPath('/tmp/rpmautospec-20v1zbd1'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 8b8da5d] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b26')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:eaa8278ac392883922b43ad71e9b59dfaaeb8d59}>
tree = <pygit2.Object{tree:0aff845f3e77ed3ac7749bab1526c9180e671fa1}>
topdir = PosixPath('/tmp/rpmautospec-agg52eiw'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide eaa8278] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b43')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:8b8da5d2ed3f6670e6dc630135443d0071d0592f}>
tree = <pygit2.Object{tree:048244d3983a94659af10437c3d0abc91985eda6}>
topdir = PosixPath('/tmp/rpmautospec-6hpn3hh6'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 8b8da5d] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b27')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:eaa8278ac392883922b43ad71e9b59dfaaeb8d59}>
tree = <pygit2.Object{tree:0aff845f3e77ed3ac7749bab1526c9180e671fa1}>
topdir = PosixPath('/tmp/rpmautospec-8mxyeuwi'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide eaa8278] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b44')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:8b8da5d2ed3f6670e6dc630135443d0071d0592f}>
tree = <pygit2.Object{tree:048244d3983a94659af10437c3d0abc91985eda6}>
topdir = PosixPath('/tmp/rpmautospec-rs81iopd'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 8b8da5d] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b28')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:eaa8278ac392883922b43ad71e9b59dfaaeb8d59}>
tree = <pygit2.Object{tree:0aff845f3e77ed3ac7749bab1526c9180e671fa1}>
topdir = PosixPath('/tmp/rpmautospec-fo84ygta'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide eaa8278] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b45')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:8b8da5d2ed3f6670e6dc630135443d0071d0592f}>
tree = <pygit2.Object{tree:048244d3983a94659af10437c3d0abc91985eda6}>
topdir = PosixPath('/tmp/rpmautospec-ts02nokb'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 8b8da5d] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b29')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:eaa8278ac392883922b43ad71e9b59dfaaeb8d59}>
tree = <pygit2.Object{tree:0aff845f3e77ed3ac7749bab1526c9180e671fa1}>
topdir = PosixPath('/tmp/rpmautospec-fnhwkv25'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide eaa8278] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b46')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:8b8da5d2ed3f6670e6dc630135443d0071d0592f}>
tree = <pygit2.Object{tree:048244d3983a94659af10437c3d0abc91985eda6}>
topdir = PosixPath('/tmp/rpmautospec-ux6kr6c1'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 8b8da5d] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b30')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:eaa8278ac392883922b43ad71e9b59dfaaeb8d59}>
tree = <pygit2.Object{tree:0aff845f3e77ed3ac7749bab1526c9180e671fa1}>
topdir = PosixPath('/tmp/rpmautospec-fvk5egwc'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide eaa8278] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b13')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:70caaa5cffcf24c6e69e302a2a74e219aad1f947}>
tree = <pygit2.Object{tree:1ad13ebdfc6c0a07f8077904e81c1efde7e242ce}>
topdir = PosixPath('/tmp/rpmautospec-0x61p82r'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 70caaa5] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b14')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:70caaa5cffcf24c6e69e302a2a74e219aad1f947}>
tree = <pygit2.Object{tree:1ad13ebdfc6c0a07f8077904e81c1efde7e242ce}>
topdir = PosixPath('/tmp/rpmautospec-gstkg7k7'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 70caaa5] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b15')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:70caaa5cffcf24c6e69e302a2a74e219aad1f947}>
tree = <pygit2.Object{tree:1ad13ebdfc6c0a07f8077904e81c1efde7e242ce}>
topdir = PosixPath('/tmp/rpmautospec-ycxdzvuk'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 70caaa5] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b16')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:70caaa5cffcf24c6e69e302a2a74e219aad1f947}>
tree = <pygit2.Object{tree:1ad13ebdfc6c0a07f8077904e81c1efde7e242ce}>
topdir = PosixPath('/tmp/rpmautospec-m3pmk0bo'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 70caaa5] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b10')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:a713684a25b6264455b22ba5cf9594baf51cf4a9}>
tree = <pygit2.Object{tree:edfac6850707f3d3f22b30499ce25e217b2341b2}>
topdir = PosixPath('/tmp/rpmautospec-fdyujnwi'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide a713684] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b17')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:70caaa5cffcf24c6e69e302a2a74e219aad1f947}>
tree = <pygit2.Object{tree:1ad13ebdfc6c0a07f8077904e81c1efde7e242ce}>
topdir = PosixPath('/tmp/rpmautospec-o7ubegd4'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 70caaa5] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b11')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:a713684a25b6264455b22ba5cf9594baf51cf4a9}>
tree = <pygit2.Object{tree:edfac6850707f3d3f22b30499ce25e217b2341b2}>
topdir = PosixPath('/tmp/rpmautospec-wzlunalt'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide a713684] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog case insensitive', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b18')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:70caaa5cffcf24c6e69e302a2a74e219aad1f947}>
tree = <pygit2.Object{tree:1ad13ebdfc6c0a07f8077904e81c1efde7e242ce}>
topdir = PosixPath('/tmp/rpmautospec-w6q4zsrt'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 70caaa5] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b12')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:a713684a25b6264455b22ba5cf9594baf51cf4a9}>
tree = <pygit2.Object{tree:edfac6850707f3d3f22b30499ce25e217b2341b2}>
topdir = PosixPath('/tmp/rpmautospec-axqru0ba'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide a713684] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b27')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7b1b9eef41255af62e1945d823b08ecd2b8b2d65}>
tree = <pygit2.Object{tree:0b50502fc0c2866aa3f77f9855a5c54a78e0329d}>
topdir = PosixPath('/tmp/rpmautospec-xl9n83at'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 7b1b9ee] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b13')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:a713684a25b6264455b22ba5cf9594baf51cf4a9}>
tree = <pygit2.Object{tree:edfac6850707f3d3f22b30499ce25e217b2341b2}>
topdir = PosixPath('/tmp/rpmautospec-u_5w7346'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide a713684] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b28')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7b1b9eef41255af62e1945d823b08ecd2b8b2d65}>
tree = <pygit2.Object{tree:0b50502fc0c2866aa3f77f9855a5c54a78e0329d}>
topdir = PosixPath('/tmp/rpmautospec-gbwg95wl'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 7b1b9ee] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b14')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:a713684a25b6264455b22ba5cf9594baf51cf4a9}>
tree = <pygit2.Object{tree:edfac6850707f3d3f22b30499ce25e217b2341b2}>
topdir = PosixPath('/tmp/rpmautospec-ipso3mp9'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide a713684] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b29')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7b1b9eef41255af62e1945d823b08ecd2b8b2d65}>
tree = <pygit2.Object{tree:0b50502fc0c2866aa3f77f9855a5c54a78e0329d}>
topdir = PosixPath('/tmp/rpmautospec-_t0ti027'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 7b1b9ee] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b15')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:a713684a25b6264455b22ba5cf9594baf51cf4a9}>
tree = <pygit2.Object{tree:edfac6850707f3d3f22b30499ce25e217b2341b2}>
topdir = PosixPath('/tmp/rpmautospec-nh43lclb'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide a713684] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b30')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7b1b9eef41255af62e1945d823b08ecd2b8b2d65}>
tree = <pygit2.Object{tree:0b50502fc0c2866aa3f77f9855a5c54a78e0329d}>
topdir = PosixPath('/tmp/rpmautospec-y1_bpuxk'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 7b1b9ee] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b31')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7b1b9eef41255af62e1945d823b08ecd2b8b2d65}>
tree = <pygit2.Object{tree:0b50502fc0c2866aa3f77f9855a5c54a78e0329d}>
topdir = PosixPath('/tmp/rpmautospec-pjsf8mbg'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 7b1b9ee] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b32')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7b1b9eef41255af62e1945d823b08ecd2b8b2d65}>
tree = <pygit2.Object{tree:0b50502fc0c2866aa3f77f9855a5c54a78e0329d}>
topdir = PosixPath('/tmp/rpmautospec-tinixfvb'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 7b1b9ee] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b63')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:160d4d40a70302b4652145b96cc2c3792a6d1025}>
tree = <pygit2.Object{tree:e5174f1d62049bf15cd53b0da316ee84bb1c9fbb}>
topdir = PosixPath('/tmp/rpmautospec-60djpkel'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 160d4d4] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b64')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:160d4d40a70302b4652145b96cc2c3792a6d1025}>
tree = <pygit2.Object{tree:e5174f1d62049bf15cd53b0da316ee84bb1c9fbb}>
topdir = PosixPath('/tmp/rpmautospec-ov0ivtib'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 160d4d4] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b76')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:9d49c5bfb00ddf9c3ba66376a6ed67055cacaf29}>
tree = <pygit2.Object{tree:901543aac0498fb8130391f2306a8ce1108fcb3f}>
topdir = PosixPath('/tmp/rpmautospec-x1u4hbdq'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 9d49c5b] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b77')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:9d49c5bfb00ddf9c3ba66376a6ed67055cacaf29}>
tree = <pygit2.Object{tree:901543aac0498fb8130391f2306a8ce1108fcb3f}>
topdir = PosixPath('/tmp/rpmautospec-h7h7f270'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 9d49c5b] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b65')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:160d4d40a70302b4652145b96cc2c3792a6d1025}>
tree = <pygit2.Object{tree:e5174f1d62049bf15cd53b0da316ee84bb1c9fbb}>
topdir = PosixPath('/tmp/rpmautospec-8tckgv7t'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 160d4d4] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b66')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:160d4d40a70302b4652145b96cc2c3792a6d1025}>
tree = <pygit2.Object{tree:e5174f1d62049bf15cd53b0da316ee84bb1c9fbb}>
topdir = PosixPath('/tmp/rpmautospec-6793m8c7'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 160d4d4] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b78')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:9d49c5bfb00ddf9c3ba66376a6ed67055cacaf29}>
tree = <pygit2.Object{tree:901543aac0498fb8130391f2306a8ce1108fcb3f}>
topdir = PosixPath('/tmp/rpmautospec-8rlqh9b0'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 9d49c5b] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b67')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:160d4d40a70302b4652145b96cc2c3792a6d1025}>
tree = <pygit2.Object{tree:e5174f1d62049bf15cd53b0da316ee84bb1c9fbb}>
topdir = PosixPath('/tmp/rpmautospec-lp5yytj4'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 160d4d4] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b79')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:9d49c5bfb00ddf9c3ba66376a6ed67055cacaf29}>
tree = <pygit2.Object{tree:901543aac0498fb8130391f2306a8ce1108fcb3f}>
topdir = PosixPath('/tmp/rpmautospec-ln4lp8_w'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 9d49c5b] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b68')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:160d4d40a70302b4652145b96cc2c3792a6d1025}>
tree = <pygit2.Object{tree:e5174f1d62049bf15cd53b0da316ee84bb1c9fbb}>
topdir = PosixPath('/tmp/rpmautospec-0gmyjx3u'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 160d4d4] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b80')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:9d49c5bfb00ddf9c3ba66376a6ed67055cacaf29}>
tree = <pygit2.Object{tree:901543aac0498fb8130391f2306a8ce1108fcb3f}>
topdir = PosixPath('/tmp/rpmautospec-1u4n_h8w'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 9d49c5b] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b22')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:29e88f7e2a5560868f4c9f00e3abba58eae6a23e}>
tree = <pygit2.Object{tree:048244d3983a94659af10437c3d0abc91985eda6}>
topdir = PosixPath('/tmp/rpmautospec-fc20x39q'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 29e88f7] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b22')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:c2dbed61baeff73da35d11712ad32cb435a6dd89}>
tree = <pygit2.Object{tree:edfac6850707f3d3f22b30499ce25e217b2341b2}>
topdir = PosixPath('/tmp/rpmautospec-b2307_se'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide c2dbed6] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b23')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:29e88f7e2a5560868f4c9f00e3abba58eae6a23e}>
tree = <pygit2.Object{tree:048244d3983a94659af10437c3d0abc91985eda6}>
topdir = PosixPath('/tmp/rpmautospec-hh7w7564'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 29e88f7] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b81')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:9d49c5bfb00ddf9c3ba66376a6ed67055cacaf29}>
tree = <pygit2.Object{tree:901543aac0498fb8130391f2306a8ce1108fcb3f}>
topdir = PosixPath('/tmp/rpmautospec-l15ldbmc'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 9d49c5b] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b23')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:c2dbed61baeff73da35d11712ad32cb435a6dd89}>
tree = <pygit2.Object{tree:edfac6850707f3d3f22b30499ce25e217b2341b2}>
topdir = PosixPath('/tmp/rpmautospec-383j1zil'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide c2dbed6] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b24')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:29e88f7e2a5560868f4c9f00e3abba58eae6a23e}>
tree = <pygit2.Object{tree:048244d3983a94659af10437c3d0abc91985eda6}>
topdir = PosixPath('/tmp/rpmautospec-200sf09i'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 29e88f7] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b24')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:c2dbed61baeff73da35d11712ad32cb435a6dd89}>
tree = <pygit2.Object{tree:edfac6850707f3d3f22b30499ce25e217b2341b2}>
topdir = PosixPath('/tmp/rpmautospec-uwkeb164'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide c2dbed6] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b60')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:0dad0e2e0657f1d0219952afef952262ad3b1977}>
tree = <pygit2.Object{tree:0530f6d450d0abcf4107ce4f396e18f4d2118e95}>
topdir = PosixPath('/tmp/rpmautospec-d8wlrm95'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 0dad0e2] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b25')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:29e88f7e2a5560868f4c9f00e3abba58eae6a23e}>
tree = <pygit2.Object{tree:048244d3983a94659af10437c3d0abc91985eda6}>
topdir = PosixPath('/tmp/rpmautospec-c01ugoxa'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 29e88f7] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b25')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:c2dbed61baeff73da35d11712ad32cb435a6dd89}>
tree = <pygit2.Object{tree:edfac6850707f3d3f22b30499ce25e217b2341b2}>
topdir = PosixPath('/tmp/rpmautospec-dvjks7x7'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide c2dbed6] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b61')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:0dad0e2e0657f1d0219952afef952262ad3b1977}>
tree = <pygit2.Object{tree:0530f6d450d0abcf4107ce4f396e18f4d2118e95}>
topdir = PosixPath('/tmp/rpmautospec-nowm_e3z'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 0dad0e2] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b26')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:29e88f7e2a5560868f4c9f00e3abba58eae6a23e}>
tree = <pygit2.Object{tree:048244d3983a94659af10437c3d0abc91985eda6}>
topdir = PosixPath('/tmp/rpmautospec-5h6k7k3w'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 29e88f7] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b39')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ade823a1446fd1d904765415c2f7401fe21d2a16}>
tree = <pygit2.Object{tree:0b50502fc0c2866aa3f77f9855a5c54a78e0329d}>
topdir = PosixPath('/tmp/rpmautospec-hy3_220c'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide ade823a] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b26')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:c2dbed61baeff73da35d11712ad32cb435a6dd89}>
tree = <pygit2.Object{tree:edfac6850707f3d3f22b30499ce25e217b2341b2}>
topdir = PosixPath('/tmp/rpmautospec-73e44h8p'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide c2dbed6] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b27')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:29e88f7e2a5560868f4c9f00e3abba58eae6a23e}>
tree = <pygit2.Object{tree:048244d3983a94659af10437c3d0abc91985eda6}>
topdir = PosixPath('/tmp/rpmautospec-1pzy0wwy'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 29e88f7] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b40')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ade823a1446fd1d904765415c2f7401fe21d2a16}>
tree = <pygit2.Object{tree:0b50502fc0c2866aa3f77f9855a5c54a78e0329d}>
topdir = PosixPath('/tmp/rpmautospec-4lrd8jku'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide ade823a] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b62')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:0dad0e2e0657f1d0219952afef952262ad3b1977}>
tree = <pygit2.Object{tree:0530f6d450d0abcf4107ce4f396e18f4d2118e95}>
topdir = PosixPath('/tmp/rpmautospec-8dc5an23'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 0dad0e2] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'changelog trailing garbage', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b27')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:c2dbed61baeff73da35d11712ad32cb435a6dd89}>
tree = <pygit2.Object{tree:edfac6850707f3d3f22b30499ce25e217b2341b2}>
topdir = PosixPath('/tmp/rpmautospec-0921yefz'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide c2dbed6] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b63')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:0dad0e2e0657f1d0219952afef952262ad3b1977}>
tree = <pygit2.Object{tree:0530f6d450d0abcf4107ce4f396e18f4d2118e95}>
topdir = PosixPath('/tmp/rpmautospec-jcxxzs76'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 0dad0e2] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'unchanged', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b41')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ade823a1446fd1d904765415c2f7401fe21d2a16}>
tree = <pygit2.Object{tree:0b50502fc0c2866aa3f77f9855a5c54a78e0329d}>
topdir = PosixPath('/tmp/rpmautospec-rwo7mrbg'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide ade823a] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b64')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:0dad0e2e0657f1d0219952afef952262ad3b1977}>
tree = <pygit2.Object{tree:0530f6d450d0abcf4107ce4f396e18f4d2118e95}>
topdir = PosixPath('/tmp/rpmautospec-c0y58inr'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 0dad0e2] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b75')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:e246e873dc120e838c865fa2e38d101b609215ad}>
tree = <pygit2.Object{tree:e5174f1d62049bf15cd53b0da316ee84bb1c9fbb}>
topdir = PosixPath('/tmp/rpmautospec-sif2zp6m'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide e246e87] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b45')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ed0d75ba6d17e5cd238a24dddea341b4c92688c2}>
tree = <pygit2.Object{tree:ecdfdb8b8182f3d6df476f819d48c7c8d5100c9e}>
topdir = PosixPath('/tmp/rpmautospec-jt9kgvl7'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide ed0d75b] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b65')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:0dad0e2e0657f1d0219952afef952262ad3b1977}>
tree = <pygit2.Object{tree:0530f6d450d0abcf4107ce4f396e18f4d2118e95}>
topdir = PosixPath('/tmp/rpmautospec-xvt1y_ke'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 0dad0e2] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b76')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:e246e873dc120e838c865fa2e38d101b609215ad}>
tree = <pygit2.Object{tree:e5174f1d62049bf15cd53b0da316ee84bb1c9fbb}>
topdir = PosixPath('/tmp/rpmautospec-u_al19ec'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide e246e87] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b46')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ed0d75ba6d17e5cd238a24dddea341b4c92688c2}>
tree = <pygit2.Object{tree:ecdfdb8b8182f3d6df476f819d48c7c8d5100c9e}>
topdir = PosixPath('/tmp/rpmautospec-3zfmtwjl'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide ed0d75b] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b77')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:e246e873dc120e838c865fa2e38d101b609215ad}>
tree = <pygit2.Object{tree:e5174f1d62049bf15cd53b0da316ee84bb1c9fbb}>
topdir = PosixPath('/tmp/rpmautospec-bressb8v'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide e246e87] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b47')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ed0d75ba6d17e5cd238a24dddea341b4c92688c2}>
tree = <pygit2.Object{tree:ecdfdb8b8182f3d6df476f819d48c7c8d5100c9e}>
topdir = PosixPath('/tmp/rpmautospec-4vr6nhh1'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide ed0d75b] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b78')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:e246e873dc120e838c865fa2e38d101b609215ad}>
tree = <pygit2.Object{tree:e5174f1d62049bf15cd53b0da316ee84bb1c9fbb}>
topdir = PosixPath('/tmp/rpmautospec-wr_rerke'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide e246e87] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b48')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ed0d75ba6d17e5cd238a24dddea341b4c92688c2}>
tree = <pygit2.Object{tree:ecdfdb8b8182f3d6df476f819d48c7c8d5100c9e}>
topdir = PosixPath('/tmp/rpmautospec-ofpqa3qa'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide ed0d75b] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b49')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ed0d75ba6d17e5cd238a24dddea341b4c92688c2}>
tree = <pygit2.Object{tree:ecdfdb8b8182f3d6df476f819d48c7c8d5100c9e}>
topdir = PosixPath('/tmp/rpmautospec-f6zr1drz'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide ed0d75b] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b79')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:e246e873dc120e838c865fa2e38d101b609215ad}>
tree = <pygit2.Object{tree:e5174f1d62049bf15cd53b0da316ee84bb1c9fbb}>
topdir = PosixPath('/tmp/rpmautospec-rv1s_a8p'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide e246e87] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b34')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7cf7aba68f5f4fc0e55a522f829c15bc2f3f2910}>
tree = <pygit2.Object{tree:0530f6d450d0abcf4107ce4f396e18f4d2118e95}>
topdir = PosixPath('/tmp/rpmautospec-fm36i4nm'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 7cf7aba] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b109')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:d28e8c3a956472ecdb55e9becec6cbd8a9781f05}>
tree = <pygit2.Object{tree:5679dc84caa5e5334600786b2864799e21a5570f}>
topdir = PosixPath('/tmp/rpmautospec-r1jqa938'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide d28e8c3] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b50')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ed0d75ba6d17e5cd238a24dddea341b4c92688c2}>
tree = <pygit2.Object{tree:ecdfdb8b8182f3d6df476f819d48c7c8d5100c9e}>
topdir = PosixPath('/tmp/rpmautospec-0_22lqpc'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide ed0d75b] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b80')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:e246e873dc120e838c865fa2e38d101b609215ad}>
tree = <pygit2.Object{tree:e5174f1d62049bf15cd53b0da316ee84bb1c9fbb}>
topdir = PosixPath('/tmp/rpmautospec-2umo2ui8'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide e246e87] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b35')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7cf7aba68f5f4fc0e55a522f829c15bc2f3f2910}>
tree = <pygit2.Object{tree:0530f6d450d0abcf4107ce4f396e18f4d2118e95}>
topdir = PosixPath('/tmp/rpmautospec-b8ougvrz'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 7cf7aba] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b72')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7cf7aba68f5f4fc0e55a522f829c15bc2f3f2910}>
tree = <pygit2.Object{tree:0530f6d450d0abcf4107ce4f396e18f4d2118e95}>
topdir = PosixPath('/tmp/rpmautospec-xe_8aqrc'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 7cf7aba] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b73')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7cf7aba68f5f4fc0e55a522f829c15bc2f3f2910}>
tree = <pygit2.Object{tree:0530f6d450d0abcf4107ce4f396e18f4d2118e95}>
topdir = PosixPath('/tmp/rpmautospec-f4jzhpl0'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 7cf7aba] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b56')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ecbc6215c90532020cb84c784d6b10fcdb36ef0d}>
tree = <pygit2.Object{tree:901543aac0498fb8130391f2306a8ce1108fcb3f}>
topdir = PosixPath('/tmp/rpmautospec-jotmld3j'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide ecbc621] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b74')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7cf7aba68f5f4fc0e55a522f829c15bc2f3f2910}>
tree = <pygit2.Object{tree:0530f6d450d0abcf4107ce4f396e18f4d2118e95}>
topdir = PosixPath('/tmp/rpmautospec-5m2baaos'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 7cf7aba] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b57')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ecbc6215c90532020cb84c784d6b10fcdb36ef0d}>
tree = <pygit2.Object{tree:901543aac0498fb8130391f2306a8ce1108fcb3f}>
topdir = PosixPath('/tmp/rpmautospec-e0mbwgf4'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide ecbc621] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'trailing line', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b75')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7cf7aba68f5f4fc0e55a522f829c15bc2f3f2910}>
tree = <pygit2.Object{tree:0530f6d450d0abcf4107ce4f396e18f4d2118e95}>
topdir = PosixPath('/tmp/rpmautospec-gwtqp_4i'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 7cf7aba] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b58')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ecbc6215c90532020cb84c784d6b10fcdb36ef0d}>
tree = <pygit2.Object{tree:901543aac0498fb8130391f2306a8ce1108fcb3f}>
topdir = PosixPath('/tmp/rpmautospec-au3nf4qz'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide ecbc621] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b57')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ae0c856958f74cb0d88b9b8e9d9d3ac1b2b95e19}>
tree = <pygit2.Object{tree:ecdfdb8b8182f3d6df476f819d48c7c8d5100c9e}>
topdir = PosixPath('/tmp/rpmautospec-nvah88vc'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide ae0c856] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b59')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ecbc6215c90532020cb84c784d6b10fcdb36ef0d}>
tree = <pygit2.Object{tree:901543aac0498fb8130391f2306a8ce1108fcb3f}>
topdir = PosixPath('/tmp/rpmautospec-2utauh7x'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide ecbc621] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b58')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ae0c856958f74cb0d88b9b8e9d9d3ac1b2b95e19}>
tree = <pygit2.Object{tree:ecdfdb8b8182f3d6df476f819d48c7c8d5100c9e}>
topdir = PosixPath('/tmp/rpmautospec-1w7891vt'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide ae0c856] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b60')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ecbc6215c90532020cb84c784d6b10fcdb36ef0d}>
tree = <pygit2.Object{tree:901543aac0498fb8130391f2306a8ce1108fcb3f}>
topdir = PosixPath('/tmp/rpmautospec-lhfpsmg8'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide ecbc621] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b83')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:3cfe486c02fbc528de3907fdeff2a6bb35cfdd3a}>
tree = <pygit2.Object{tree:5679dc84caa5e5334600786b2864799e21a5570f}>
topdir = PosixPath('/tmp/rpmautospec-i03j82ev'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 3cfe486] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b59')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ae0c856958f74cb0d88b9b8e9d9d3ac1b2b95e19}>
tree = <pygit2.Object{tree:ecdfdb8b8182f3d6df476f819d48c7c8d5100c9e}>
topdir = PosixPath('/tmp/rpmautospec-cyl3kt72'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide ae0c856] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b61')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ecbc6215c90532020cb84c784d6b10fcdb36ef0d}>
tree = <pygit2.Object{tree:901543aac0498fb8130391f2306a8ce1108fcb3f}>
topdir = PosixPath('/tmp/rpmautospec-j40czkwa'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide ecbc621] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 15 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b84')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:3cfe486c02fbc528de3907fdeff2a6bb35cfdd3a}>
tree = <pygit2.Object{tree:5679dc84caa5e5334600786b2864799e21a5570f}>
topdir = PosixPath('/tmp/rpmautospec-4ocs2dpe'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 3cfe486] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b60')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ae0c856958f74cb0d88b9b8e9d9d3ac1b2b95e19}>
tree = <pygit2.Object{tree:ecdfdb8b8182f3d6df476f819d48c7c8d5100c9e}>
topdir = PosixPath('/tmp/rpmautospec-yst2xb2h'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide ae0c856] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b85')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:3cfe486c02fbc528de3907fdeff2a6bb35cfdd3a}>
tree = <pygit2.Object{tree:5679dc84caa5e5334600786b2864799e21a5570f}>
topdir = PosixPath('/tmp/rpmautospec-zip1wkgv'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 3cfe486] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b61')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ae0c856958f74cb0d88b9b8e9d9d3ac1b2b95e19}>
tree = <pygit2.Object{tree:ecdfdb8b8182f3d6df476f819d48c7c8d5100c9e}>
topdir = PosixPath('/tmp/rpmautospec-zby1ob20'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide ae0c856] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b132')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7aceab2fdd9a7f9c214110d177e283742d7827de}>
tree = <pygit2.Object{tree:0275bb9092cd8dcdc791e0f063a7bcec6c684dda}>
topdir = PosixPath('/tmp/rpmautospec-uj7mldtm'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 7aceab2] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b100')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:a9118ee6d51d6ffe237e94e209f7d3ec062b45b9}>
tree = <pygit2.Object{tree:126db085302286750016d4e966f4d1ac2aa0cbc8}>
topdir = PosixPath('/tmp/rpmautospec-u793u1n9'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide a9118ee] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b133')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7aceab2fdd9a7f9c214110d177e283742d7827de}>
tree = <pygit2.Object{tree:0275bb9092cd8dcdc791e0f063a7bcec6c684dda}>
topdir = PosixPath('/tmp/rpmautospec-mnr5zrfe'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 7aceab2] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b86')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:3cfe486c02fbc528de3907fdeff2a6bb35cfdd3a}>
tree = <pygit2.Object{tree:5679dc84caa5e5334600786b2864799e21a5570f}>
topdir = PosixPath('/tmp/rpmautospec-6wosup4_'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 3cfe486] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'line in between', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b62')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:ae0c856958f74cb0d88b9b8e9d9d3ac1b2b95e19}>
tree = <pygit2.Object{tree:ecdfdb8b8182f3d6df476f819d48c7c8d5100c9e}>
topdir = PosixPath('/tmp/rpmautospec-jkwijc5k'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide ae0c856] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b101')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:a9118ee6d51d6ffe237e94e209f7d3ec062b45b9}>
tree = <pygit2.Object{tree:126db085302286750016d4e966f4d1ac2aa0cbc8}>
topdir = PosixPath('/tmp/rpmautospec-05kay_2j'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide a9118ee] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b87')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:3cfe486c02fbc528de3907fdeff2a6bb35cfdd3a}>
tree = <pygit2.Object{tree:5679dc84caa5e5334600786b2864799e21a5570f}>
topdir = PosixPath('/tmp/rpmautospec-yl5te5un'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 3cfe486] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b134')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7aceab2fdd9a7f9c214110d177e283742d7827de}>
tree = <pygit2.Object{tree:0275bb9092cd8dcdc791e0f063a7bcec6c684dda}>
topdir = PosixPath('/tmp/rpmautospec-yok_bqdo'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 7aceab2] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b88')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:3cfe486c02fbc528de3907fdeff2a6bb35cfdd3a}>
tree = <pygit2.Object{tree:5679dc84caa5e5334600786b2864799e21a5570f}>
topdir = PosixPath('/tmp/rpmautospec-d7ir_ida'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 3cfe486] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b102')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:a9118ee6d51d6ffe237e94e209f7d3ec062b45b9}>
tree = <pygit2.Object{tree:126db085302286750016d4e966f4d1ac2aa0cbc8}>
topdir = PosixPath('/tmp/rpmautospec-ktneqpv_'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide a9118ee] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b135')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7aceab2fdd9a7f9c214110d177e283742d7827de}>
tree = <pygit2.Object{tree:0275bb9092cd8dcdc791e0f063a7bcec6c684dda}>
topdir = PosixPath('/tmp/rpmautospec-dek8pgd1'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 7aceab2] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b103')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:a9118ee6d51d6ffe237e94e209f7d3ec062b45b9}>
tree = <pygit2.Object{tree:126db085302286750016d4e966f4d1ac2aa0cbc8}>
topdir = PosixPath('/tmp/rpmautospec-jmgq_scy'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide a9118ee] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b104')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:a9118ee6d51d6ffe237e94e209f7d3ec062b45b9}>
tree = <pygit2.Object{tree:126db085302286750016d4e966f4d1ac2aa0cbc8}>
topdir = PosixPath('/tmp/rpmautospec-j1atoscj'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide a9118ee] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b82')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:3be6083b45b4002757cc3cc1be79b73275ca8419}>
tree = <pygit2.Object{tree:e6d6e52b5960932444e2f5d2fee2b5ea8cc7a1db}>
topdir = PosixPath('/tmp/rpmautospec-5pph16ew'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 3be6083] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 17 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b105')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:a9118ee6d51d6ffe237e94e209f7d3ec062b45b9}>
tree = <pygit2.Object{tree:126db085302286750016d4e966f4d1ac2aa0cbc8}>
topdir = PosixPath('/tmp/rpmautospec-2byq48h0'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide a9118ee] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b74')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:2b36b80116d89178dfce94a004be70890e46b0aa}>
tree = <pygit2.Object{tree:0275bb9092cd8dcdc791e0f063a7bcec6c684dda}>
topdir = PosixPath('/tmp/rpmautospec-xl9uneq_'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 2b36b80] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b83')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:3be6083b45b4002757cc3cc1be79b73275ca8419}>
tree = <pygit2.Object{tree:e6d6e52b5960932444e2f5d2fee2b5ea8cc7a1db}>
topdir = PosixPath('/tmp/rpmautospec-e3r1ovhg'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 3be6083] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 17 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b75')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:2b36b80116d89178dfce94a004be70890e46b0aa}>
tree = <pygit2.Object{tree:0275bb9092cd8dcdc791e0f063a7bcec6c684dda}>
topdir = PosixPath('/tmp/rpmautospec-10jov7ts'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 2b36b80] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b84')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:3be6083b45b4002757cc3cc1be79b73275ca8419}>
tree = <pygit2.Object{tree:e6d6e52b5960932444e2f5d2fee2b5ea8cc7a1db}>
topdir = PosixPath('/tmp/rpmautospec-6r4_xwfo'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 3be6083] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 17 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b76')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:2b36b80116d89178dfce94a004be70890e46b0aa}>
tree = <pygit2.Object{tree:0275bb9092cd8dcdc791e0f063a7bcec6c684dda}>
topdir = PosixPath('/tmp/rpmautospec-tpinlwvz'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 2b36b80] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b85')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:3be6083b45b4002757cc3cc1be79b73275ca8419}>
tree = <pygit2.Object{tree:e6d6e52b5960932444e2f5d2fee2b5ea8cc7a1db}>
topdir = PosixPath('/tmp/rpmautospec-hwr1_a6o'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 3be6083] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 17 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b77')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:2b36b80116d89178dfce94a004be70890e46b0aa}>
tree = <pygit2.Object{tree:0275bb9092cd8dcdc791e0f063a7bcec6c684dda}>
topdir = PosixPath('/tmp/rpmautospec-nkqtnfas'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 2b36b80] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b86')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:3be6083b45b4002757cc3cc1be79b73275ca8419}>
tree = <pygit2.Object{tree:e6d6e52b5960932444e2f5d2fee2b5ea8cc7a1db}>
topdir = PosixPath('/tmp/rpmautospec-szhwqany'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 3be6083] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 17 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b78')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:2b36b80116d89178dfce94a004be70890e46b0aa}>
tree = <pygit2.Object{tree:0275bb9092cd8dcdc791e0f063a7bcec6c684dda}>
topdir = PosixPath('/tmp/rpmautospec-_ghr9ino'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 2b36b80] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b75')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:f22d1c5b08efda265a49fa6941c22bb4efc23eda}>
tree = <pygit2.Object{tree:2a26baf0bc8c5e39e27d8a2a6ff2889c842b23b4}>
topdir = PosixPath('/tmp/rpmautospec-6e9aosaz'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide f22d1c5] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b95')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:d28e8c3a956472ecdb55e9becec6cbd8a9781f05}>
tree = <pygit2.Object{tree:5679dc84caa5e5334600786b2864799e21a5570f}>
topdir = PosixPath('/tmp/rpmautospec-9gq6dpe4'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide d28e8c3] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b87')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:3be6083b45b4002757cc3cc1be79b73275ca8419}>
tree = <pygit2.Object{tree:e6d6e52b5960932444e2f5d2fee2b5ea8cc7a1db}>
topdir = PosixPath('/tmp/rpmautospec-p3k0o5lo'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 3be6083] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 17 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b79')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:2b36b80116d89178dfce94a004be70890e46b0aa}>
tree = <pygit2.Object{tree:0275bb9092cd8dcdc791e0f063a7bcec6c684dda}>
topdir = PosixPath('/tmp/rpmautospec-1omr9mu8'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 2b36b80] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b76')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:f22d1c5b08efda265a49fa6941c22bb4efc23eda}>
tree = <pygit2.Object{tree:2a26baf0bc8c5e39e27d8a2a6ff2889c842b23b4}>
topdir = PosixPath('/tmp/rpmautospec-_ugv2jwl'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide f22d1c5] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b96')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:d28e8c3a956472ecdb55e9becec6cbd8a9781f05}>
tree = <pygit2.Object{tree:5679dc84caa5e5334600786b2864799e21a5570f}>
topdir = PosixPath('/tmp/rpmautospec-xh42gumd'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide d28e8c3] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b77')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:f22d1c5b08efda265a49fa6941c22bb4efc23eda}>
tree = <pygit2.Object{tree:2a26baf0bc8c5e39e27d8a2a6ff2889c842b23b4}>
topdir = PosixPath('/tmp/rpmautospec-7n8_57id'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide f22d1c5] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b97')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:d28e8c3a956472ecdb55e9becec6cbd8a9781f05}>
tree = <pygit2.Object{tree:5679dc84caa5e5334600786b2864799e21a5570f}>
topdir = PosixPath('/tmp/rpmautospec-l_mnddde'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide d28e8c3] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b78')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:f22d1c5b08efda265a49fa6941c22bb4efc23eda}>
tree = <pygit2.Object{tree:2a26baf0bc8c5e39e27d8a2a6ff2889c842b23b4}>
topdir = PosixPath('/tmp/rpmautospec-3uo__hqh'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide f22d1c5] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b98')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:d28e8c3a956472ecdb55e9becec6cbd8a9781f05}>
tree = <pygit2.Object{tree:5679dc84caa5e5334600786b2864799e21a5570f}>
topdir = PosixPath('/tmp/rpmautospec-43si7k9b'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide d28e8c3] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b112')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:39c6bc9e93084844ac1b07fa076ed478db205226}>
tree = <pygit2.Object{tree:126db085302286750016d4e966f4d1ac2aa0cbc8}>
topdir = PosixPath('/tmp/rpmautospec-37g7w_if'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 39c6bc9] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b79')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:f22d1c5b08efda265a49fa6941c22bb4efc23eda}>
tree = <pygit2.Object{tree:2a26baf0bc8c5e39e27d8a2a6ff2889c842b23b4}>
topdir = PosixPath('/tmp/rpmautospec-dnt700wd'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide f22d1c5] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b99')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:d28e8c3a956472ecdb55e9becec6cbd8a9781f05}>
tree = <pygit2.Object{tree:5679dc84caa5e5334600786b2864799e21a5570f}>
topdir = PosixPath('/tmp/rpmautospec-tyh_yyr_'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide d28e8c3] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b80')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:f22d1c5b08efda265a49fa6941c22bb4efc23eda}>
tree = <pygit2.Object{tree:2a26baf0bc8c5e39e27d8a2a6ff2889c842b23b4}>
topdir = PosixPath('/tmp/rpmautospec-onm8n9zc'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide f22d1c5] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b113')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:39c6bc9e93084844ac1b07fa076ed478db205226}>
tree = <pygit2.Object{tree:126db085302286750016d4e966f4d1ac2aa0cbc8}>
topdir = PosixPath('/tmp/rpmautospec-76_pwerr'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 39c6bc9] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b114')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:39c6bc9e93084844ac1b07fa076ed478db205226}>
tree = <pygit2.Object{tree:126db085302286750016d4e966f4d1ac2aa0cbc8}>
topdir = PosixPath('/tmp/rpmautospec-m0zlko0t'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 39c6bc9] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b170')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:e7ce9569f3086708e8dd3a8dec7c8172c8076135}>
tree = <pygit2.Object{tree:b86e9ef84a084187f5b13e428fd57e527c24079d}>
topdir = PosixPath('/tmp/rpmautospec-03rss3jo'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide e7ce956] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b115')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:39c6bc9e93084844ac1b07fa076ed478db205226}>
tree = <pygit2.Object{tree:126db085302286750016d4e966f4d1ac2aa0cbc8}>
topdir = PosixPath('/tmp/rpmautospec-ihid7py1'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 39c6bc9] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b171')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:e7ce9569f3086708e8dd3a8dec7c8172c8076135}>
tree = <pygit2.Object{tree:b86e9ef84a084187f5b13e428fd57e527c24079d}>
topdir = PosixPath('/tmp/rpmautospec-mw6tgm5k'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide e7ce956] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b111')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7efe7757e87da74b870761014ed48a62e4824006}>
tree = <pygit2.Object{tree:b86e9ef84a084187f5b13e428fd57e527c24079d}>
topdir = PosixPath('/tmp/rpmautospec-jas0ocss'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 7efe775] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b94')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:fb0e9aaed25c94bee7d0e40e1ce0270d0a88e255}>
tree = <pygit2.Object{tree:e6d6e52b5960932444e2f5d2fee2b5ea8cc7a1db}>
topdir = PosixPath('/tmp/rpmautospec-ygjus5sl'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide fb0e9aa] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 17 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b116')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:39c6bc9e93084844ac1b07fa076ed478db205226}>
tree = <pygit2.Object{tree:126db085302286750016d4e966f4d1ac2aa0cbc8}>
topdir = PosixPath('/tmp/rpmautospec-tjddlv6d'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 39c6bc9] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b86')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7aceab2fdd9a7f9c214110d177e283742d7827de}>
tree = <pygit2.Object{tree:0275bb9092cd8dcdc791e0f063a7bcec6c684dda}>
topdir = PosixPath('/tmp/rpmautospec-0zngqis5'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 7aceab2] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b172')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:e7ce9569f3086708e8dd3a8dec7c8172c8076135}>
tree = <pygit2.Object{tree:b86e9ef84a084187f5b13e428fd57e527c24079d}>
topdir = PosixPath('/tmp/rpmautospec-x_a7sl4y'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide e7ce956] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b95')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:fb0e9aaed25c94bee7d0e40e1ce0270d0a88e255}>
tree = <pygit2.Object{tree:e6d6e52b5960932444e2f5d2fee2b5ea8cc7a1db}>
topdir = PosixPath('/tmp/rpmautospec-uwsh3qjk'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide fb0e9aa] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 17 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b112')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7efe7757e87da74b870761014ed48a62e4824006}>
tree = <pygit2.Object{tree:b86e9ef84a084187f5b13e428fd57e527c24079d}>
topdir = PosixPath('/tmp/rpmautospec-crw_fncl'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 7efe775] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b117')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:39c6bc9e93084844ac1b07fa076ed478db205226}>
tree = <pygit2.Object{tree:126db085302286750016d4e966f4d1ac2aa0cbc8}>
topdir = PosixPath('/tmp/rpmautospec-dfvem150'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 39c6bc9] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 3 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'with braces', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b87')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7aceab2fdd9a7f9c214110d177e283742d7827de}>
tree = <pygit2.Object{tree:0275bb9092cd8dcdc791e0f063a7bcec6c684dda}>
topdir = PosixPath('/tmp/rpmautospec-u56xwt5m'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 7aceab2] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b173')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:e7ce9569f3086708e8dd3a8dec7c8172c8076135}>
tree = <pygit2.Object{tree:b86e9ef84a084187f5b13e428fd57e527c24079d}>
topdir = PosixPath('/tmp/rpmautospec-cv_lco55'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide e7ce956] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b113')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7efe7757e87da74b870761014ed48a62e4824006}>
tree = <pygit2.Object{tree:b86e9ef84a084187f5b13e428fd57e527c24079d}>
topdir = PosixPath('/tmp/rpmautospec-ew0v5v7a'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 7efe775] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b96')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:fb0e9aaed25c94bee7d0e40e1ce0270d0a88e255}>
tree = <pygit2.Object{tree:e6d6e52b5960932444e2f5d2fee2b5ea8cc7a1db}>
topdir = PosixPath('/tmp/rpmautospec-nun_ztrx'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide fb0e9aa] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 17 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b174')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:e7ce9569f3086708e8dd3a8dec7c8172c8076135}>
tree = <pygit2.Object{tree:b86e9ef84a084187f5b13e428fd57e527c24079d}>
topdir = PosixPath('/tmp/rpmautospec-i3vxha5o'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide e7ce956] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b114')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7efe7757e87da74b870761014ed48a62e4824006}>
tree = <pygit2.Object{tree:b86e9ef84a084187f5b13e428fd57e527c24079d}>
topdir = PosixPath('/tmp/rpmautospec-qsntlh5y'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 7efe775] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b97')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:fb0e9aaed25c94bee7d0e40e1ce0270d0a88e255}>
tree = <pygit2.Object{tree:e6d6e52b5960932444e2f5d2fee2b5ea8cc7a1db}>
topdir = PosixPath('/tmp/rpmautospec-73w1xrtt'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide fb0e9aa] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 17 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b115')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7efe7757e87da74b870761014ed48a62e4824006}>
tree = <pygit2.Object{tree:b86e9ef84a084187f5b13e428fd57e527c24079d}>
topdir = PosixPath('/tmp/rpmautospec-ms32tai7'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 7efe775] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b98')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:fb0e9aaed25c94bee7d0e40e1ce0270d0a88e255}>
tree = <pygit2.Object{tree:e6d6e52b5960932444e2f5d2fee2b5ea8cc7a1db}>
topdir = PosixPath('/tmp/rpmautospec-m111qveq'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide fb0e9aa] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 17 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b87')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:da045386652c75de34dd2d7a40d8e295f0d4ffa8}>
tree = <pygit2.Object{tree:2a26baf0bc8c5e39e27d8a2a6ff2889c842b23b4}>
topdir = PosixPath('/tmp/rpmautospec-r931pfuw'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide da04538] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b116')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:7efe7757e87da74b870761014ed48a62e4824006}>
tree = <pygit2.Object{tree:b86e9ef84a084187f5b13e428fd57e527c24079d}>
topdir = PosixPath('/tmp/rpmautospec-lryozg9v'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 7efe775] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'missing', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b99')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:fb0e9aaed25c94bee7d0e40e1ce0270d0a88e255}>
tree = <pygit2.Object{tree:e6d6e52b5960932444e2f5d2fee2b5ea8cc7a1db}>
topdir = PosixPath('/tmp/rpmautospec-z2jwe_df'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide fb0e9aa] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 17 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b88')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:da045386652c75de34dd2d7a40d8e295f0d4ffa8}>
tree = <pygit2.Object{tree:2a26baf0bc8c5e39e27d8a2a6ff2889c842b23b4}>
topdir = PosixPath('/tmp/rpmautospec-7lwfjj5m'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide da04538] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b89')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:da045386652c75de34dd2d7a40d8e295f0d4ffa8}>
tree = <pygit2.Object{tree:2a26baf0bc8c5e39e27d8a2a6ff2889c842b23b4}>
topdir = PosixPath('/tmp/rpmautospec-0viuot9j'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide da04538] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b90')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:da045386652c75de34dd2d7a40d8e295f0d4ffa8}>
tree = <pygit2.Object{tree:2a26baf0bc8c5e39e27d8a2a6ff2889c842b23b4}>
topdir = PosixPath('/tmp/rpmautospec-qf0fnr3f'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide da04538] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b91')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:da045386652c75de34dd2d7a40d8e295f0d4ffa8}>
tree = <pygit2.Object{tree:2a26baf0bc8c5e39e27d8a2a6ff2889c842b23b4}>
topdir = PosixPath('/tmp/rpmautospec-8bwsgtnc'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide da04538] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b126')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:b4d40a6610b94099a9a8a87d01e77ad8f827a05d}>
tree = <pygit2.Object{tree:ff62e8185eba2e3b2bb2e0309d2e21985ee05fc1}>
topdir = PosixPath('/tmp/rpmautospec-k38_bmjr'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b4d40a6] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b125')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:6e48e05855cd1ac674ae501d79083b0bdcf0e663}>
tree = <pygit2.Object{tree:ff62e8185eba2e3b2bb2e0309d2e21985ee05fc1}>
topdir = PosixPath('/tmp/rpmautospec-h63fvabf'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 6e48e05] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b92')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:da045386652c75de34dd2d7a40d8e295f0d4ffa8}>
tree = <pygit2.Object{tree:2a26baf0bc8c5e39e27d8a2a6ff2889c842b23b4}>
topdir = PosixPath('/tmp/rpmautospec-93lw3nr6'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide da04538] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b127')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:b4d40a6610b94099a9a8a87d01e77ad8f827a05d}>
tree = <pygit2.Object{tree:ff62e8185eba2e3b2bb2e0309d2e21985ee05fc1}>
topdir = PosixPath('/tmp/rpmautospec-2ap_c9s5'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b4d40a6] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b126')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:6e48e05855cd1ac674ae501d79083b0bdcf0e663}>
tree = <pygit2.Object{tree:ff62e8185eba2e3b2bb2e0309d2e21985ee05fc1}>
topdir = PosixPath('/tmp/rpmautospec-an5www2x'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 6e48e05] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b128')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:b4d40a6610b94099a9a8a87d01e77ad8f827a05d}>
tree = <pygit2.Object{tree:ff62e8185eba2e3b2bb2e0309d2e21985ee05fc1}>
topdir = PosixPath('/tmp/rpmautospec-uly_zick'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b4d40a6] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b127')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:6e48e05855cd1ac674ae501d79083b0bdcf0e663}>
tree = <pygit2.Object{tree:ff62e8185eba2e3b2bb2e0309d2e21985ee05fc1}>
topdir = PosixPath('/tmp/rpmautospec-31ukhjow'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 6e48e05] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b129')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:b4d40a6610b94099a9a8a87d01e77ad8f827a05d}>
tree = <pygit2.Object{tree:ff62e8185eba2e3b2bb2e0309d2e21985ee05fc1}>
topdir = PosixPath('/tmp/rpmautospec-09an7t56'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b4d40a6] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b128')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:6e48e05855cd1ac674ae501d79083b0bdcf0e663}>
tree = <pygit2.Object{tree:ff62e8185eba2e3b2bb2e0309d2e21985ee05fc1}>
topdir = PosixPath('/tmp/rpmautospec-tg4mb1tz'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 6e48e05] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b130')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:b4d40a6610b94099a9a8a87d01e77ad8f827a05d}>
tree = <pygit2.Object{tree:ff62e8185eba2e3b2bb2e0309d2e21985ee05fc1}>
topdir = PosixPath('/tmp/rpmautospec-oyoix43p'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b4d40a6] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'optional', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b123')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:e7ce9569f3086708e8dd3a8dec7c8172c8076135}>
tree = <pygit2.Object{tree:b86e9ef84a084187f5b13e428fd57e527c24079d}>
topdir = PosixPath('/tmp/rpmautospec-fkrrng83'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide e7ce956] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 2 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b129')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:6e48e05855cd1ac674ae501d79083b0bdcf0e663}>
tree = <pygit2.Object{tree:ff62e8185eba2e3b2bb2e0309d2e21985ee05fc1}>
topdir = PosixPath('/tmp/rpmautospec-u548gvdf'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 6e48e05] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b131')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:b4d40a6610b94099a9a8a87d01e77ad8f827a05d}>
tree = <pygit2.Object{tree:ff62e8185eba2e3b2bb2e0309d2e21985ee05fc1}>
topdir = PosixPath('/tmp/rpmautospec-68ahzl51'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b4d40a6] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b200')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:53a21bb03a8db338f974ae6e7b29703b9199179e}>
tree = <pygit2.Object{tree:5c371e3b2b295db257b834b4a3d8ae2c4e24f5cd}>
topdir = PosixPath('/tmp/rpmautospec-hohuic8o'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 53a21bb] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 4 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b201')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:53a21bb03a8db338f974ae6e7b29703b9199179e}>
tree = <pygit2.Object{tree:5c371e3b2b295db257b834b4a3d8ae2c4e24f5cd}>
topdir = PosixPath('/tmp/rpmautospec-k7qxw83w'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 53a21bb] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 4 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b202')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:53a21bb03a8db338f974ae6e7b29703b9199179e}>
tree = <pygit2.Object{tree:5c371e3b2b295db257b834b4a3d8ae2c4e24f5cd}>
topdir = PosixPath('/tmp/rpmautospec-cv7pyuqh'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 53a21bb] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 4 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b127')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:0e3fe7bc8348cff3b970a1a1e8e6e11162ee9881}>
tree = <pygit2.Object{tree:5c371e3b2b295db257b834b4a3d8ae2c4e24f5cd}>
topdir = PosixPath('/tmp/rpmautospec-l6alegzi'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 0e3fe7b] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 4 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b203')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:53a21bb03a8db338f974ae6e7b29703b9199179e}>
tree = <pygit2.Object{tree:5c371e3b2b295db257b834b4a3d8ae2c4e24f5cd}>
topdir = PosixPath('/tmp/rpmautospec-qlrojyij'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 53a21bb] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 4 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b124')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:21cd0d72ffd8f6f84d8084f4cbae7d99ba31346d}>
tree = <pygit2.Object{tree:e3f4628bd12f20729b8a58c4bc1c3fb021fe507e}>
topdir = PosixPath('/tmp/rpmautospec-awho7sp9'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 21cd0d7] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b128')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:0e3fe7bc8348cff3b970a1a1e8e6e11162ee9881}>
tree = <pygit2.Object{tree:5c371e3b2b295db257b834b4a3d8ae2c4e24f5cd}>
topdir = PosixPath('/tmp/rpmautospec-n8f54tm_'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 0e3fe7b] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 4 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b204')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:53a21bb03a8db338f974ae6e7b29703b9199179e}>
tree = <pygit2.Object{tree:5c371e3b2b295db257b834b4a3d8ae2c4e24f5cd}>
topdir = PosixPath('/tmp/rpmautospec-jz0ppj73'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 53a21bb] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 4 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b125')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:21cd0d72ffd8f6f84d8084f4cbae7d99ba31346d}>
tree = <pygit2.Object{tree:e3f4628bd12f20729b8a58c4bc1c3fb021fe507e}>
topdir = PosixPath('/tmp/rpmautospec-u3z505ui'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 21cd0d7] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b129')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:0e3fe7bc8348cff3b970a1a1e8e6e11162ee9881}>
tree = <pygit2.Object{tree:5c371e3b2b295db257b834b4a3d8ae2c4e24f5cd}>
topdir = PosixPath('/tmp/rpmautospec-r4zuk232'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 0e3fe7b] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 4 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b112')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:2181b384ea30e3654e3ac6b88a078939233bc00b}>
tree = <pygit2.Object{tree:e3f4628bd12f20729b8a58c4bc1c3fb021fe507e}>
topdir = PosixPath('/tmp/rpmautospec-zo9rb6ck'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 2181b38] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b126')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:21cd0d72ffd8f6f84d8084f4cbae7d99ba31346d}>
tree = <pygit2.Object{tree:e3f4628bd12f20729b8a58c4bc1c3fb021fe507e}>
topdir = PosixPath('/tmp/rpmautospec-o93s58pk'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 21cd0d7] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b205')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:53a21bb03a8db338f974ae6e7b29703b9199179e}>
tree = <pygit2.Object{tree:5c371e3b2b295db257b834b4a3d8ae2c4e24f5cd}>
topdir = PosixPath('/tmp/rpmautospec-93y71qvh'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 53a21bb] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 4 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b130')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:0e3fe7bc8348cff3b970a1a1e8e6e11162ee9881}>
tree = <pygit2.Object{tree:5c371e3b2b295db257b834b4a3d8ae2c4e24f5cd}>
topdir = PosixPath('/tmp/rpmautospec-vtrxeh4i'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 0e3fe7b] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 4 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b127')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:21cd0d72ffd8f6f84d8084f4cbae7d99ba31346d}>
tree = <pygit2.Object{tree:e3f4628bd12f20729b8a58c4bc1c3fb021fe507e}>
topdir = PosixPath('/tmp/rpmautospec-7bi5984j'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 21cd0d7] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b113')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:2181b384ea30e3654e3ac6b88a078939233bc00b}>
tree = <pygit2.Object{tree:e3f4628bd12f20729b8a58c4bc1c3fb021fe507e}>
topdir = PosixPath('/tmp/rpmautospec-al36hk3j'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 2181b38] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b131')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:0e3fe7bc8348cff3b970a1a1e8e6e11162ee9881}>
tree = <pygit2.Object{tree:5c371e3b2b295db257b834b4a3d8ae2c4e24f5cd}>
topdir = PosixPath('/tmp/rpmautospec-1rbsduog'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 0e3fe7b] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 4 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b128')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:21cd0d72ffd8f6f84d8084f4cbae7d99ba31346d}>
tree = <pygit2.Object{tree:e3f4628bd12f20729b8a58c4bc1c3fb021fe507e}>
topdir = PosixPath('/tmp/rpmautospec-rwax90ew'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 21cd0d7] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b114')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:2181b384ea30e3654e3ac6b88a078939233bc00b}>
tree = <pygit2.Object{tree:e3f4628bd12f20729b8a58c4bc1c3fb021fe507e}>
topdir = PosixPath('/tmp/rpmautospec-hx1je07i'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 2181b38] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw0] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw0/test_process_distgit_rawhide_b138')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:6e48e05855cd1ac674ae501d79083b0bdcf0e663}>
tree = <pygit2.Object{tree:ff62e8185eba2e3b2bb2e0309d2e21985ee05fc1}>
topdir = PosixPath('/tmp/rpmautospec-_a3ea758'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 6e48e05] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 4 insertions(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw2] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'manual', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw2/test_process_distgit_rawhide_b132')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:0e3fe7bc8348cff3b970a1a1e8e6e11162ee9881}>
tree = <pygit2.Object{tree:5c371e3b2b295db257b834b4a3d8ae2c4e24f5cd}>
topdir = PosixPath('/tmp/rpmautospec-vu56cd29'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 0e3fe7b] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 4 insertions(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = False
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b129')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:21cd0d72ffd8f6f84d8084f4cbae7d99ba31346d}>
tree = <pygit2.Object{tree:e3f4628bd12f20729b8a58c4bc1c3fb021fe507e}>
topdir = PosixPath('/tmp/rpmautospec-_p5_f17i'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide 21cd0d7] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b115')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:2181b384ea30e3654e3ac6b88a078939233bc00b}>
tree = <pygit2.Object{tree:e3f4628bd12f20729b8a58c4bc1c3fb021fe507e}>
topdir = PosixPath('/tmp/rpmautospec-0h8kp685'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 2181b38] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b116')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:2181b384ea30e3654e3ac6b88a078939233bc00b}>
tree = <pygit2.Object{tree:e3f4628bd12f20729b8a58c4bc1c3fb021fe507e}>
topdir = PosixPath('/tmp/rpmautospec-7n3r81nj'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 2181b38] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = False
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b117')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:2181b384ea30e3654e3ac6b88a078939233bc00b}>
tree = <pygit2.Object{tree:e3f4628bd12f20729b8a58c4bc1c3fb021fe507e}>
topdir = PosixPath('/tmp/rpmautospec-tz8akiuk'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 2181b38] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 2 deletions(-)
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b155')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:cbf3ed2a1e92dae15cb53d80c38019a146d57897}>
tree = <pygit2.Object{tree:5db5721f4f3260d1f2f1cecf065750face70ff2f}>
topdir = PosixPath('/tmp/rpmautospec-kxj69u_u'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide cbf3ed2] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw1] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw1/test_process_distgit_rawhide_b118')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:cbf3ed2a1e92dae15cb53d80c38019a146d57897}>
tree = <pygit2.Object{tree:5db5721f4f3260d1f2f1cecf065750face70ff2f}>
topdir = PosixPath('/tmp/rpmautospec-dmkdhrlz'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide cbf3ed2] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b217')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:53788b00f0c3037ebf8a624c863437b289015913}>
tree = <pygit2.Object{tree:5db5721f4f3260d1f2f1cecf065750face70ff2f}>
topdir = PosixPath('/tmp/rpmautospec-iil42jse'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 53788b0] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b156')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:cbf3ed2a1e92dae15cb53d80c38019a146d57897}>
tree = <pygit2.Object{tree:5db5721f4f3260d1f2f1cecf065750face70ff2f}>
topdir = PosixPath('/tmp/rpmautospec-4ff_olhe'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide cbf3ed2] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b218')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:53788b00f0c3037ebf8a624c863437b289015913}>
tree = <pygit2.Object{tree:5db5721f4f3260d1f2f1cecf065750face70ff2f}>
topdir = PosixPath('/tmp/rpmautospec-708i03dq'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 53788b0] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b157')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:cbf3ed2a1e92dae15cb53d80c38019a146d57897}>
tree = <pygit2.Object{tree:5db5721f4f3260d1f2f1cecf065750face70ff2f}>
topdir = PosixPath('/tmp/rpmautospec-kqgjw43o'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide cbf3ed2] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b158')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:cbf3ed2a1e92dae15cb53d80c38019a146d57897}>
tree = <pygit2.Object{tree:5db5721f4f3260d1f2f1cecf065750face70ff2f}>
topdir = PosixPath('/tmp/rpmautospec-cqncbhhm'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide cbf3ed2] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = False, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b219')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:53788b00f0c3037ebf8a624c863437b289015913}>
tree = <pygit2.Object{tree:5db5721f4f3260d1f2f1cecf065750face70ff2f}>
topdir = PosixPath('/tmp/rpmautospec-q3lwhlaw'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 53788b0] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de] _
[gw5] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'de_DE.UTF-8', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw5/test_process_distgit_rawhide_b135')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:53788b00f0c3037ebf8a624c863437b289015913}>
tree = <pygit2.Object{tree:5db5721f4f3260d1f2f1cecf065750face70ff2f}>
topdir = PosixPath('/tmp/rpmautospec-optmptvz'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 53788b0] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = False, overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b220')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:53788b00f0c3037ebf8a624c863437b289015913}>
tree = <pygit2.Object{tree:5db5721f4f3260d1f2f1cecf065750face70ff2f}>
topdir = PosixPath('/tmp/rpmautospec-x4qz4a1f'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 53788b0] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw3] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = True
is_processed = False, bump_release = 0
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw3/test_process_distgit_rawhide_b159')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:cbf3ed2a1e92dae15cb53d80c38019a146d57897}>
tree = <pygit2.Object{tree:5db5721f4f3260d1f2f1cecf065750face70ff2f}>
topdir = PosixPath('/tmp/rpmautospec-yqtwzlsh'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide cbf3ed2] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
_ test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C] _
[gw4] linux -- Python 3.11.7 /usr/bin/python3
override_locale = 'C', overwrite_specfile = True, branch = 'rawhide'
dirty_worktree = False, autorelease_case = 'broken'
autochangelog_case = 'nochangelog', remove_changelog_file = True
is_processed = False, bump_release = 15
locale = <module 'locale' from '/usr/lib64/python3.11/locale.py'>
tmp_path = PosixPath('/tmp/pytest-of-mockbuild/pytest-0/popen-gw4/test_process_distgit_rawhide_b221')
    @pytest.mark.parametrize(
        "override_locale", (False, "C", "de_DE.UTF-8"), ids=("locale-unset", "locale-C", "locale-de")
    )
    @pytest.mark.parametrize(
        "overwrite_specfile",
        (False, True),
        ids=("without-overwrite-specfile", "with-overwrite-specfile"),
    )
    @pytest.mark.parametrize("dirty_worktree", (False, True), ids=("clean-worktree", "dirty-worktree"))
    @pytest.mark.parametrize("bump_release", (0, 15), ids=("without-bump-release", "with-bump-release"))
    @pytest.mark.parametrize(
        "branch, autorelease_case, autochangelog_case, remove_changelog_file, is_processed",
        _generate_branch_testcase_combinations(),
    )
    def test_process_distgit(
        override_locale,
        overwrite_specfile,
        branch,
        dirty_worktree,
        autorelease_case,
        autochangelog_case,
        remove_changelog_file,
        is_processed,
        bump_release,
        locale,
        tmp_path,
    ):
        """Test the process_distgit() function"""
        if override_locale:
            locale.setlocale(locale.LC_ALL, override_locale)
    
        unpacked_repo_dir, test_spec_file_path = gen_testrepo(tmp_path, branch)
    
        if bump_release:
            commit_timestamp = check_output(
                ["git", "log", "-1", "--pretty=format:%cI"],
                cwd=unpacked_repo_dir,
                encoding="ascii",
            ).strip()
            # Set name and email explicitly so CI doesn't trip over them being unset.
            env = os.environ | {
                "GIT_COMMITTER_NAME": "Test User",
                "GIT_COMMITTER_EMAIL": "<test@example.com>",
                "GIT_COMMITTER_DATE": commit_timestamp,
            }
            latest_commit_log = check_output(
                ["git", "log", "-1", "--pretty=format:%B"],
                cwd=unpacked_repo_dir,
                encoding="utf-8",
            )
            amended_commit_log = latest_commit_log + f"\n\n[bump release: {bump_release}]\n"
            run(
                ["git", "commit", "--amend", "--no-edit", "-m", amended_commit_log],
                cwd=unpacked_repo_dir,
                env=env,
            )
    
        if autorelease_case != "unchanged" or autochangelog_case != "unchanged" or is_processed:
            fuzz_spec_file(
                test_spec_file_path,
                autorelease_case,
                autochangelog_case,
                remove_changelog_file,
                is_processed,
            )
    
        if remove_changelog_file:
            (unpacked_repo_dir / "changelog").unlink()
    
        if (
            autorelease_case != "unchanged"
            or autochangelog_case != "unchanged"
            or remove_changelog_file
        ) and not dirty_worktree:
            run_git_amend(unpacked_repo_dir)
    
        if overwrite_specfile:
            target_spec_file_path = None
        else:
            target_spec_file_path = tmp_path / "test-this-specfile-please.spec"
    
        orig_test_spec_file_stat = test_spec_file_path.stat()
    
        if autorelease_case == "broken" and not is_processed:
            catch_exception = pytest.raises(
                SpecParseFailure, match=rf"Couldn’t parse spec file {test_spec_file_path.name}"
            )
        else:
            catch_exception = nullcontext()
    
        # Set restrictive umask to check that file mode is preserved.
        old_umask = os.umask(0o077)
        real_cls = process_distgit.PkgHistoryProcessor
        processor_run = None
        with mock.patch(
            "rpmautospec.subcommands.process_distgit.PkgHistoryProcessor",
        ) as processor_cls:
    
            def wrap_cls(*args, **kwargs):
                nonlocal processor_run
                obj = real_cls(*args, **kwargs)
                processor_run = obj.run = mock.Mock(wraps=obj.run)
                return obj
    
            processor_cls.side_effect = wrap_cls
            with catch_exception as excinfo:
>               retval = process_distgit.process_distgit(
                    unpacked_repo_dir, target_spec_file_path, enable_caching=False
                )
tests/rpmautospec/subcommands/test_process_distgit.py:328: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
rpmautospec/subcommands/process_distgit.py:96: in process_distgit
    result = processor.run(visitors=visitors)
/usr/lib64/python3.11/unittest/mock.py:1124: in __call__
    return self._mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1128: in _mock_call
    return self._execute_mock_call(*args, **kwargs)
/usr/lib64/python3.11/unittest/mock.py:1198: in _execute_mock_call
    return self._mock_wraps(*args, **kwargs)
rpmautospec/pkg_history.py:715: in run
    visited_results = self._run_on_history(head, visitors=visitors, seed_info=seed_info)
rpmautospec/pkg_history.py:596: in _run_on_history
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:596: in <listcomp>
    commit_coroutines_info[commit] = [next(c) for c in coroutines]
rpmautospec/pkg_history.py:246: in release_number_visitor
    verflags = self._get_rpmverflags_for_commit(commit)
rpmautospec/pkg_history.py:229: in _get_rpmverflags_for_commit
    _checkout_tree_files(commit, commit.tree, workdir)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
commit = <pygit2.Object{commit:53788b00f0c3037ebf8a624c863437b289015913}>
tree = <pygit2.Object{tree:5db5721f4f3260d1f2f1cecf065750face70ff2f}>
topdir = PosixPath('/tmp/rpmautospec-9dd6cm3n'), reldir = PurePosixPath('.')
    def _checkout_tree_files(
        commit: pygit2.Commit, tree: pygit2.Tree, topdir: Path, reldir: PurePath = PurePath(".")
    ) -> None:
        """Check out files, but don’t manipulate git status.
    
        :param commit:  The GIT commit being processed.
        :param tree:    The (sub)tree to check out files for.
        :param topdir:  The top directory for the contents to be checked out.
        :param reldir:  The relative directory being processed.
        """
        curdir = topdir / reldir
        curdir.mkdir(parents=True, exist_ok=True)
        for entry in tree:
            relpath = reldir / entry.name
            if isinstance(entry, pygit2.Tree):
                _checkout_tree_files(commit, entry, topdir, relpath)
            else:  # isinstance(entry, pygit2.Blob)
                fpath = curdir / entry.name
                if stat.S_ISLNK(entry.filemode):
                    fpath.symlink_to(entry.data)
                else:  # stat.S_ISREG(entry.filemode)
>                   with pygit2.BlobIO(entry, as_path=str(relpath), commit_id=commit.id) as f:
E                   AttributeError: module 'pygit2' has no attribute 'BlobIO'
rpmautospec/pkg_history.py:46: AttributeError
----------------------------- Captured stdout call -----------------------------
[rawhide b6cd817] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 1 file changed, 1 insertion(+), 1 deletion(-)
[rawhide 53788b0] use autorelease instead of autorel
 Author: Stephen Coady <scoady@redhat.com>
 Date: Mon Apr 26 12:30:48 2021 +0100
 2 files changed, 1 insertion(+), 16 deletions(-)
 delete mode 100644 changelog
----------------------------- Captured stderr call -----------------------------
Already on 'rawhide'
=============================== warnings summary ===============================
../../../../usr/lib/python3.11/site-packages/_pytest/config/__init__.py:1296
../../../../usr/lib/python3.11/site-packages/_pytest/config/__init__.py:1296
../../../../usr/lib/python3.11/site-packages/_pytest/config/__init__.py:1296
../../../../usr/lib/python3.11/site-packages/_pytest/config/__init__.py:1296
../../../../usr/lib/python3.11/site-packages/_pytest/config/__init__.py:1296
../../../../usr/lib/python3.11/site-packages/_pytest/config/__init__.py:1296
../../../../usr/lib/python3.11/site-packages/_pytest/config/__init__.py:1296
  /usr/lib/python3.11/site-packages/_pytest/config/__init__.py:1296: PytestConfigWarning: Unknown config option: tmp_path_retention_policy
  
    self._warn_or_fail_if_strict(f"Unknown config option: {key}\n")
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpmverflags_for_commit[needs-full-repo]
FAILED tests/rpmautospec/test_pkg_history.py::TestPkgHistoryProcessor::test__get_rpmverflags_for_commit_cache[needs-full-repo]
FAILED tests/rpmautospec/test_pkg_history.py::test__checkout_tree_files - Att...
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog case insensitive-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-changelog trailing garbage-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-unchanged-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-trailing line-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-line in between-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-with braces-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-missing-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
=========== 243 failed, 4943 passed, 7 warnings in 141.83s (0:02:21) ===========
RPM build errors:
error: Bad exit status from /var/tmp/rpm-tmp.GpkSIM (%check)
    Bad exit status from /var/tmp/rpm-tmp.GpkSIM (%check)
Child return code was: 1
EXCEPTION: [Error('Command failed: \n # /usr/bin/systemd-nspawn -q -M 76909ff9fa3447f6b49fce5ba5224bf5 -D /var/lib/mock/f38-build-49150172-5837861/root -a -u mockbuild --capability=cap_ipc_lock --bind=/tmp/mock-resolv.vy5_p0_6:/etc/resolv.conf --bind=/dev/btrfs-control --bind=/dev/mapper/control --bind=/dev/fuse --bind=/dev/loop-control --bind=/dev/loop0 --bind=/dev/loop1 --bind=/dev/loop2 --bind=/dev/loop3 --bind=/dev/loop4 --bind=/dev/loop5 --bind=/dev/loop6 --bind=/dev/loop7 --bind=/dev/loop8 --bind=/dev/loop9 --bind=/dev/loop10 --bind=/dev/loop11 --console=pipe --setenv=TERM=vt100 --setenv=SHELL=/bin/bash --setenv=HOME=/builddir --setenv=HOSTNAME=mock --setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin \'--setenv=PROMPT_COMMAND=printf "\\033]0;<mock-chroot>\\007"\' \'--setenv=PS1=<mock-chroot> \\s-\\v\\$ \' --setenv=LANG=C.UTF-8 --resolv-conf=off bash --login -c \'/usr/bin/rpmbuild -ba --noprep --noclean --target noarch /builddir/build/SPECS/python-rpmautospec.spec\'\n', 1)]
Traceback (most recent call last):
  File "/usr/lib/python3.12/site-packages/mockbuild/trace_decorator.py", line 93, in trace
    result = func(*args, **kw)
             ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.12/site-packages/mockbuild/util.py", line 612, in do_with_status
    raise exception.Error("Command failed: \n # %s\n%s" % (cmd_pretty(command, env), output), child.returncode)
mockbuild.exception.Error: Command failed: 
 # /usr/bin/systemd-nspawn -q -M 76909ff9fa3447f6b49fce5ba5224bf5 -D /var/lib/mock/f38-build-49150172-5837861/root -a -u mockbuild --capability=cap_ipc_lock --bind=/tmp/mock-resolv.vy5_p0_6:/etc/resolv.conf --bind=/dev/btrfs-control --bind=/dev/mapper/control --bind=/dev/fuse --bind=/dev/loop-control --bind=/dev/loop0 --bind=/dev/loop1 --bind=/dev/loop2 --bind=/dev/loop3 --bind=/dev/loop4 --bind=/dev/loop5 --bind=/dev/loop6 --bind=/dev/loop7 --bind=/dev/loop8 --bind=/dev/loop9 --bind=/dev/loop10 --bind=/dev/loop11 --console=pipe --setenv=TERM=vt100 --setenv=SHELL=/bin/bash --setenv=HOME=/builddir --setenv=HOSTNAME=mock --setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin '--setenv=PROMPT_COMMAND=printf "\033]0;<mock-chroot>\007"' '--setenv=PS1=<mock-chroot> \s-\v\$ ' --setenv=LANG=C.UTF-8 --resolv-conf=off bash --login -c '/usr/bin/rpmbuild -ba --noprep --noclean --target noarch /builddir/build/SPECS/python-rpmautospec.spec'



Extracted relevant lines:
e-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-optional-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-False-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-manual-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-False-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-without-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-de]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-unset]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-without-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
FAILED tests/rpmautospec/subcommands/test_process_distgit.py::test_process_distgit[rawhide-broken-nochangelog-True-False-with-bump-release-clean-worktree-with-overwrite-specfile-locale-C]
=========== 243 failed, 4943 passed, 7 warnings in 141.83s (0:02:21) ===========
EXCEPTION: [Error('Command failed: 
Traceback (most recent call last):
    raise exception.Error("Command failed: 
 # %s
%s" % (cmd_pretty(command, env), output), child.returncode)
mockbuild.exception.Error: Command failed: