Mock Version: 5.5 Mock Version: 5.5 Mock Version: 5.5 ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --noclean --target noarch --nodeps /builddir/build/SPECS/python-docx.spec'], chrootPath='/var/lib/mock/f41-build-side-2-python-2723998-30729/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=864000uid=997gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.hra15heb:/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.hra15heb:/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', '8b01e1b32bc64cdfb5c34140375aa231', '-D', '/var/lib/mock/f41-build-side-2-python-2723998-30729/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.hra15heb:/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;\\007"', '--setenv=PS1= \\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-docx.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\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=1721347200 Wrote: /builddir/build/SRPMS/python-docx-1.1.2-3.fc41.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-docx.spec'], chrootPath='/var/lib/mock/f41-build-side-2-python-2723998-30729/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=864000uid=997gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.hra15heb:/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.hra15heb:/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', '11dafb5428434f8781408d3b6a6e5c4b', '-D', '/var/lib/mock/f41-build-side-2-python-2723998-30729/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.hra15heb:/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;\\007"', '--setenv=PS1= \\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-docx.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\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=1721347200 Executing(%mkbuilddir): /bin/sh -e /var/tmp/rpm-tmp.FdM8zP + umask 022 + cd /builddir/build/BUILD/python-docx-1.1.2-build + test -d /builddir/build/BUILD/python-docx-1.1.2-build + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w /builddir/build/BUILD/python-docx-1.1.2-build + /usr/bin/rm -rf /builddir/build/BUILD/python-docx-1.1.2-build + /usr/bin/mkdir -p /builddir/build/BUILD/python-docx-1.1.2-build + /usr/bin/mkdir -p /builddir/build/BUILD/python-docx-1.1.2-build/SPECPARTS + RPM_EC=0 ++ jobs -p + exit 0 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.F5nR1x + umask 022 + cd /builddir/build/BUILD/python-docx-1.1.2-build + cd /builddir/build/BUILD/python-docx-1.1.2-build + rm -rf python_docx-1.1.2 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/python_docx-1.1.2.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd python_docx-1.1.2 + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + sed -r -i 's/^(pytest-coverage|ruff)\b/# &/' requirements-test.txt + rm -rvf docs/_themes removed 'docs/_themes/armstrong/static/rtd.css_t' removed directory 'docs/_themes/armstrong/static' removed 'docs/_themes/armstrong/layout.html' removed 'docs/_themes/armstrong/rtd-themes.conf' removed 'docs/_themes/armstrong/theme.conf' removed 'docs/_themes/armstrong/LICENSE' removed 'docs/_themes/armstrong/theme.conf.orig' removed directory 'docs/_themes/armstrong' removed directory 'docs/_themes' + sed -r -i s/armstrong/alabaster/ docs/conf.py + echo 'intersphinx_mapping.clear()' + dos2unix --keepdate docs/dev/analysis/features/table/cell-merge.rst dos2unix: converting file docs/dev/analysis/features/table/cell-merge.rst to Unix format... + sed -r -i 's/^([[:blank:]]*)("error",)$/\1# \2/' pyproject.toml + RPM_EC=0 ++ jobs -p + exit 0 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.m9qGaw + umask 022 + cd /builddir/build/BUILD/python-docx-1.1.2-build + cd python_docx-1.1.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 -fasynchronous-unwind-tables -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 -fasynchronous-unwind-tables -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 -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 -fasynchronous-unwind-tables -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 -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 -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + export RUSTFLAGS + 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/python-docx-1.1.2-build/python_docx-1.1.2/.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 -fasynchronous-unwind-tables -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/python-docx-1.1.2-build/python_docx-1.1.2/.pyproject-builddir + RPM_TOXENV=py313 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/pyproject-wheeldir --output /builddir/build/BUILD/python-docx-1.1.2-build/python-docx-1.1.2-3.fc41.noarch-pyproject-buildrequires requirements-test.txt Handling lxml>=3.1.0 from requirements file requirements-test.txt Requirement not satisfied: lxml>=3.1.0 Handling typing-extensions from requirements file requirements-test.txt Requirement not satisfied: typing-extensions Handling behave>=1.2.3 from requirements file requirements-test.txt Requirement not satisfied: behave>=1.2.3 Handling pyparsing>=2.0.1 from requirements file requirements-test.txt Requirement not satisfied: pyparsing>=2.0.1 Handling pytest>=2.5 from requirements file requirements-test.txt Requirement not satisfied: pytest>=2.5 Handling pytest-xdist from requirements file requirements-test.txt Requirement not satisfied: pytest-xdist Exiting dependency generation pass: all requirements files + cat /builddir/build/BUILD/python-docx-1.1.2-build/python-docx-1.1.2-3.fc41.noarch-pyproject-buildrequires + rm -rfv '*.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-docx-1.1.2-3.fc41.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-docx.spec'], chrootPath='/var/lib/mock/f41-build-side-2-python-2723998-30729/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=864000uid=997gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.hra15heb:/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.hra15heb:/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', '24b65fd0fd1346bbba81c1d89cf70d69', '-D', '/var/lib/mock/f41-build-side-2-python-2723998-30729/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.hra15heb:/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;\\007"', '--setenv=PS1= \\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-docx.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\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=1721347200 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.GYxHM5 + umask 022 + cd /builddir/build/BUILD/python-docx-1.1.2-build + cd python_docx-1.1.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 -fasynchronous-unwind-tables -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 -fasynchronous-unwind-tables -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 -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 -fasynchronous-unwind-tables -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 -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 -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + export RUSTFLAGS + 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/python-docx-1.1.2-build/python_docx-1.1.2/.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 -fasynchronous-unwind-tables -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/python-docx-1.1.2-build/python_docx-1.1.2/.pyproject-builddir + RPM_TOXENV=py313 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/pyproject-wheeldir --output /builddir/build/BUILD/python-docx-1.1.2-build/python-docx-1.1.2-3.fc41.noarch-pyproject-buildrequires requirements-test.txt Handling lxml>=3.1.0 from requirements file requirements-test.txt Requirement satisfied: lxml>=3.1.0 (installed: lxml 5.2.1) Handling typing-extensions from requirements file requirements-test.txt Requirement satisfied: typing-extensions (installed: typing-extensions 4.12.2) Handling behave>=1.2.3 from requirements file requirements-test.txt Requirement satisfied: behave>=1.2.3 (installed: behave 1.2.6) Handling pyparsing>=2.0.1 from requirements file requirements-test.txt Requirement satisfied: pyparsing>=2.0.1 (installed: pyparsing 3.1.2) Handling pytest>=2.5 from requirements file requirements-test.txt Requirement satisfied: pytest>=2.5 (installed: pytest 7.4.3) Handling pytest-xdist from requirements file requirements-test.txt Requirement satisfied: pytest-xdist (installed: pytest-xdist 3.6.1) Handling setuptools>=61.0.0 from build-system.requires Requirement not satisfied: setuptools>=61.0.0 Exiting dependency generation pass: build backend + cat /builddir/build/BUILD/python-docx-1.1.2-build/python-docx-1.1.2-3.fc41.noarch-pyproject-buildrequires + rm -rfv '*.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-docx-1.1.2-3.fc41.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-docx.spec'], chrootPath='/var/lib/mock/f41-build-side-2-python-2723998-30729/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=864000uid=997gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.hra15heb:/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.hra15heb:/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', 'a25e00a24263410abde789e186b97f14', '-D', '/var/lib/mock/f41-build-side-2-python-2723998-30729/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.hra15heb:/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;\\007"', '--setenv=PS1= \\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-docx.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\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=1721347200 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.jmafmK + umask 022 + cd /builddir/build/BUILD/python-docx-1.1.2-build + cd python_docx-1.1.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 -fasynchronous-unwind-tables -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 -fasynchronous-unwind-tables -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 -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 -fasynchronous-unwind-tables -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 -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 -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + export RUSTFLAGS + 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/python-docx-1.1.2-build/python_docx-1.1.2/.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 -fasynchronous-unwind-tables -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/python-docx-1.1.2-build/python_docx-1.1.2/.pyproject-builddir + RPM_TOXENV=py313 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/pyproject-wheeldir --output /builddir/build/BUILD/python-docx-1.1.2-build/python-docx-1.1.2-3.fc41.noarch-pyproject-buildrequires requirements-test.txt Handling lxml>=3.1.0 from requirements file requirements-test.txt Requirement satisfied: lxml>=3.1.0 (installed: lxml 5.2.1) Handling typing-extensions from requirements file requirements-test.txt Requirement satisfied: typing-extensions (installed: typing-extensions 4.12.2) Handling behave>=1.2.3 from requirements file requirements-test.txt Requirement satisfied: behave>=1.2.3 (installed: behave 1.2.6) Handling pyparsing>=2.0.1 from requirements file requirements-test.txt Requirement satisfied: pyparsing>=2.0.1 (installed: pyparsing 3.1.2) Handling pytest>=2.5 from requirements file requirements-test.txt Requirement satisfied: pytest>=2.5 (installed: pytest 7.4.3) Handling pytest-xdist from requirements file requirements-test.txt Requirement satisfied: pytest-xdist (installed: pytest-xdist 3.6.1) Handling setuptools>=61.0.0 from build-system.requires Requirement satisfied: setuptools>=61.0.0 (installed: setuptools 69.2.0) No `packages` or `py_modules` configuration, performing automatic discovery. `src-layout` detected -- analysing ./src discovered packages -- ['docx', 'docx.dml', 'docx.drawing', 'docx.parts', 'docx.oxml', 'docx.styles', 'docx.templates', 'docx.enum', 'docx.text', 'docx.opc', 'docx.image', 'docx.oxml.text', 'docx.templates.default-docx-template', 'docx.templates.default-docx-template.word', 'docx.templates.default-docx-template.customXml', 'docx.templates.default-docx-template._rels', 'docx.templates.default-docx-template.docProps', 'docx.templates.default-docx-template.word.theme', 'docx.templates.default-docx-template.word._rels', 'docx.templates.default-docx-template.customXml._rels', 'docx.opc.parts'] discovered py_modules -- [] running egg_info writing src/python_docx.egg-info/PKG-INFO writing dependency_links to src/python_docx.egg-info/dependency_links.txt writing requirements to src/python_docx.egg-info/requires.txt writing top-level names to src/python_docx.egg-info/top_level.txt reading manifest file 'src/python_docx.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'README.rst' no previously-included directories found matching 'docs/.build' warning: no previously-included files matching '.DS_Store' found anywhere in distribution warning: no previously-included files matching '__pycache__' found anywhere in distribution warning: no previously-included files matching '*.py[co]' found anywhere in distribution adding license file 'LICENSE' writing manifest file 'src/python_docx.egg-info/SOURCES.txt' Handling wheel from get_requires_for_build_wheel Requirement not satisfied: wheel Exiting dependency generation pass: get_requires_for_build_wheel + cat /builddir/build/BUILD/python-docx-1.1.2-build/python-docx-1.1.2-3.fc41.noarch-pyproject-buildrequires + rm -rfv '*.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-docx-1.1.2-3.fc41.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-docx.spec'], chrootPath='/var/lib/mock/f41-build-side-2-python-2723998-30729/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=864000uid=997gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.hra15heb:/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.hra15heb:/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', 'f14bc3cd733e460b986b817aa4598bb8', '-D', '/var/lib/mock/f41-build-side-2-python-2723998-30729/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.hra15heb:/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;\\007"', '--setenv=PS1= \\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-docx.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\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=1721347200 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.gePmX7 + umask 022 + cd /builddir/build/BUILD/python-docx-1.1.2-build + cd python_docx-1.1.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 -fasynchronous-unwind-tables -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 -fasynchronous-unwind-tables -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 -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 -fasynchronous-unwind-tables -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 -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 -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + export RUSTFLAGS + 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/python-docx-1.1.2-build/python_docx-1.1.2/.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 -fasynchronous-unwind-tables -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/python-docx-1.1.2-build/python_docx-1.1.2/.pyproject-builddir + RPM_TOXENV=py313 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/pyproject-wheeldir --output /builddir/build/BUILD/python-docx-1.1.2-build/python-docx-1.1.2-3.fc41.noarch-pyproject-buildrequires requirements-test.txt Handling lxml>=3.1.0 from requirements file requirements-test.txt Requirement satisfied: lxml>=3.1.0 (installed: lxml 5.2.1) Handling typing-extensions from requirements file requirements-test.txt Requirement satisfied: typing-extensions (installed: typing-extensions 4.12.2) Handling behave>=1.2.3 from requirements file requirements-test.txt Requirement satisfied: behave>=1.2.3 (installed: behave 1.2.6) Handling pyparsing>=2.0.1 from requirements file requirements-test.txt Requirement satisfied: pyparsing>=2.0.1 (installed: pyparsing 3.1.2) Handling pytest>=2.5 from requirements file requirements-test.txt Requirement satisfied: pytest>=2.5 (installed: pytest 7.4.3) Handling pytest-xdist from requirements file requirements-test.txt Requirement satisfied: pytest-xdist (installed: pytest-xdist 3.6.1) Handling setuptools>=61.0.0 from build-system.requires Requirement satisfied: setuptools>=61.0.0 (installed: setuptools 69.2.0) No `packages` or `py_modules` configuration, performing automatic discovery. `src-layout` detected -- analysing ./src discovered packages -- ['docx', 'docx.dml', 'docx.drawing', 'docx.parts', 'docx.oxml', 'docx.styles', 'docx.templates', 'docx.enum', 'docx.text', 'docx.opc', 'docx.image', 'docx.oxml.text', 'docx.templates.default-docx-template', 'docx.templates.default-docx-template.word', 'docx.templates.default-docx-template.customXml', 'docx.templates.default-docx-template._rels', 'docx.templates.default-docx-template.docProps', 'docx.templates.default-docx-template.word.theme', 'docx.templates.default-docx-template.word._rels', 'docx.templates.default-docx-template.customXml._rels', 'docx.opc.parts'] discovered py_modules -- [] running egg_info writing src/python_docx.egg-info/PKG-INFO writing dependency_links to src/python_docx.egg-info/dependency_links.txt writing requirements to src/python_docx.egg-info/requires.txt writing top-level names to src/python_docx.egg-info/top_level.txt reading manifest file 'src/python_docx.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'README.rst' no previously-included directories found matching 'docs/.build' warning: no previously-included files matching '.DS_Store' found anywhere in distribution warning: no previously-included files matching '__pycache__' found anywhere in distribution warning: no previously-included files matching '*.py[co]' found anywhere in distribution adding license file 'LICENSE' writing manifest file 'src/python_docx.egg-info/SOURCES.txt' Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.43.0) running dist_info creating python_docx.egg-info writing python_docx.egg-info/PKG-INFO writing dependency_links to python_docx.egg-info/dependency_links.txt writing requirements to python_docx.egg-info/requires.txt writing top-level names to python_docx.egg-info/top_level.txt writing manifest file 'python_docx.egg-info/SOURCES.txt' reading manifest file 'python_docx.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'README.rst' no previously-included directories found matching 'docs/.build' warning: no previously-included files matching '.DS_Store' found anywhere in distribution warning: no previously-included files matching '__pycache__' found anywhere in distribution warning: no previously-included files matching '*.py[co]' found anywhere in distribution adding license file 'LICENSE' writing manifest file 'python_docx.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/python_docx-1.1.2.dist-info' Handling lxml >=3.1.0 from hook generated metadata: Requires-Dist (python-docx) Requirement satisfied: lxml >=3.1.0 (installed: lxml 5.2.1) Handling typing-extensions >=4.9.0 from hook generated metadata: Requires-Dist (python-docx) Requirement satisfied: typing-extensions >=4.9.0 (installed: typing-extensions 4.12.2) + cat /builddir/build/BUILD/python-docx-1.1.2-build/python-docx-1.1.2-3.fc41.noarch-pyproject-buildrequires + rm -rfv python_docx-1.1.2.dist-info/ removed 'python_docx-1.1.2.dist-info/METADATA' removed 'python_docx-1.1.2.dist-info/top_level.txt' removed 'python_docx-1.1.2.dist-info/LICENSE' removed directory 'python_docx-1.1.2.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-docx-1.1.2-3.fc41.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 --nodeps /builddir/build/SPECS/python-docx.spec'], chrootPath='/var/lib/mock/f41-build-side-2-python-2723998-30729/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=864000uid=997gid=135user='mockbuild'nspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.hra15heb:/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.hra15heb:/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', 'd332e38344f84f10a3fe982a9a10e9e6', '-D', '/var/lib/mock/f41-build-side-2-python-2723998-30729/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.hra15heb:/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;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=C.UTF-8', '--resolv-conf=off', 'bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-docx.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\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=1721347200 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.2XqG9L + umask 022 + cd /builddir/build/BUILD/python-docx-1.1.2-build + cd python_docx-1.1.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 -fasynchronous-unwind-tables -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 -fasynchronous-unwind-tables -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 -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 -fasynchronous-unwind-tables -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 -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 -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + export RUSTFLAGS + 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/python-docx-1.1.2-build/python_docx-1.1.2/.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 -fasynchronous-unwind-tables -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/python-docx-1.1.2-build/python_docx-1.1.2/.pyproject-builddir + RPM_TOXENV=py313 + HOSTNAME=rpmbuild + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_buildrequires.py --generate-extras --python3_pkgversion 3 --wheeldir /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/pyproject-wheeldir --output /builddir/build/BUILD/python-docx-1.1.2-build/python-docx-1.1.2-3.fc41.noarch-pyproject-buildrequires requirements-test.txt Handling lxml>=3.1.0 from requirements file requirements-test.txt Requirement satisfied: lxml>=3.1.0 (installed: lxml 5.2.1) Handling typing-extensions from requirements file requirements-test.txt Requirement satisfied: typing-extensions (installed: typing-extensions 4.12.2) Handling behave>=1.2.3 from requirements file requirements-test.txt Requirement satisfied: behave>=1.2.3 (installed: behave 1.2.6) Handling pyparsing>=2.0.1 from requirements file requirements-test.txt Requirement satisfied: pyparsing>=2.0.1 (installed: pyparsing 3.1.2) Handling pytest>=2.5 from requirements file requirements-test.txt Requirement satisfied: pytest>=2.5 (installed: pytest 7.4.3) Handling pytest-xdist from requirements file requirements-test.txt Requirement satisfied: pytest-xdist (installed: pytest-xdist 3.6.1) Handling setuptools>=61.0.0 from build-system.requires Requirement satisfied: setuptools>=61.0.0 (installed: setuptools 69.2.0) No `packages` or `py_modules` configuration, performing automatic discovery. `src-layout` detected -- analysing ./src discovered packages -- ['docx', 'docx.dml', 'docx.drawing', 'docx.parts', 'docx.oxml', 'docx.styles', 'docx.templates', 'docx.enum', 'docx.text', 'docx.opc', 'docx.image', 'docx.oxml.text', 'docx.templates.default-docx-template', 'docx.templates.default-docx-template.word', 'docx.templates.default-docx-template.customXml', 'docx.templates.default-docx-template._rels', 'docx.templates.default-docx-template.docProps', 'docx.templates.default-docx-template.word.theme', 'docx.templates.default-docx-template.word._rels', 'docx.templates.default-docx-template.customXml._rels', 'docx.opc.parts'] discovered py_modules -- [] running egg_info writing src/python_docx.egg-info/PKG-INFO writing dependency_links to src/python_docx.egg-info/dependency_links.txt writing requirements to src/python_docx.egg-info/requires.txt writing top-level names to src/python_docx.egg-info/top_level.txt reading manifest file 'src/python_docx.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'README.rst' no previously-included directories found matching 'docs/.build' warning: no previously-included files matching '.DS_Store' found anywhere in distribution warning: no previously-included files matching '__pycache__' found anywhere in distribution warning: no previously-included files matching '*.py[co]' found anywhere in distribution adding license file 'LICENSE' writing manifest file 'src/python_docx.egg-info/SOURCES.txt' Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.43.0) running dist_info writing python_docx.egg-info/PKG-INFO writing dependency_links to python_docx.egg-info/dependency_links.txt writing requirements to python_docx.egg-info/requires.txt writing top-level names to python_docx.egg-info/top_level.txt reading manifest file 'python_docx.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'README.rst' no previously-included directories found matching 'docs/.build' warning: no previously-included files matching '.DS_Store' found anywhere in distribution warning: no previously-included files matching '__pycache__' found anywhere in distribution warning: no previously-included files matching '*.py[co]' found anywhere in distribution adding license file 'LICENSE' writing manifest file 'python_docx.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/python_docx-1.1.2.dist-info' Handling lxml >=3.1.0 from hook generated metadata: Requires-Dist (python-docx) Requirement satisfied: lxml >=3.1.0 (installed: lxml 5.2.1) Handling typing-extensions >=4.9.0 from hook generated metadata: Requires-Dist (python-docx) Requirement satisfied: typing-extensions >=4.9.0 (installed: typing-extensions 4.12.2) + cat /builddir/build/BUILD/python-docx-1.1.2-build/python-docx-1.1.2-3.fc41.noarch-pyproject-buildrequires + rm -rfv python_docx-1.1.2.dist-info/ removed 'python_docx-1.1.2.dist-info/METADATA' removed 'python_docx-1.1.2.dist-info/top_level.txt' removed 'python_docx-1.1.2.dist-info/LICENSE' removed directory 'python_docx-1.1.2.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.xodemC + umask 022 + cd /builddir/build/BUILD/python-docx-1.1.2-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 -fasynchronous-unwind-tables -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 -fasynchronous-unwind-tables -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 -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 -fasynchronous-unwind-tables -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 -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 -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + export RUSTFLAGS + 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 python_docx-1.1.2 + mkdir -p /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.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 -fasynchronous-unwind-tables -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/python-docx-1.1.2-build/python_docx-1.1.2/.pyproject-builddir + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_wheel.py /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/pyproject-wheeldir Processing /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2 Preparing metadata (pyproject.toml): started Running command Preparing metadata (pyproject.toml) No `packages` or `py_modules` configuration, performing automatic discovery. `src-layout` detected -- analysing ./src discovered packages -- ['docx', 'docx.dml', 'docx.drawing', 'docx.parts', 'docx.oxml', 'docx.styles', 'docx.templates', 'docx.enum', 'docx.text', 'docx.opc', 'docx.image', 'docx.oxml.text', 'docx.templates.default-docx-template', 'docx.templates.default-docx-template.word', 'docx.templates.default-docx-template.customXml', 'docx.templates.default-docx-template._rels', 'docx.templates.default-docx-template.docProps', 'docx.templates.default-docx-template.word.theme', 'docx.templates.default-docx-template.word._rels', 'docx.templates.default-docx-template.customXml._rels', 'docx.opc.parts'] discovered py_modules -- [] running dist_info creating /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/.pyproject-builddir/pip-modern-metadata-cknt1lax/python_docx.egg-info writing /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/.pyproject-builddir/pip-modern-metadata-cknt1lax/python_docx.egg-info/PKG-INFO writing dependency_links to /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/.pyproject-builddir/pip-modern-metadata-cknt1lax/python_docx.egg-info/dependency_links.txt writing requirements to /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/.pyproject-builddir/pip-modern-metadata-cknt1lax/python_docx.egg-info/requires.txt writing top-level names to /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/.pyproject-builddir/pip-modern-metadata-cknt1lax/python_docx.egg-info/top_level.txt writing manifest file '/builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/.pyproject-builddir/pip-modern-metadata-cknt1lax/python_docx.egg-info/SOURCES.txt' reading manifest file '/builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/.pyproject-builddir/pip-modern-metadata-cknt1lax/python_docx.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'README.rst' no previously-included directories found matching 'docs/.build' warning: no previously-included files matching '.DS_Store' found anywhere in distribution warning: no previously-included files matching '__pycache__' found anywhere in distribution warning: no previously-included files matching '*.py[co]' found anywhere in distribution adding license file 'LICENSE' writing manifest file '/builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/.pyproject-builddir/pip-modern-metadata-cknt1lax/python_docx.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/.pyproject-builddir/pip-modern-metadata-cknt1lax/python_docx-1.1.2.dist-info' Preparing metadata (pyproject.toml): finished with status 'done' Building wheels for collected packages: python-docx Building wheel for python-docx (pyproject.toml): started Running command Building wheel for python-docx (pyproject.toml) No `packages` or `py_modules` configuration, performing automatic discovery. `src-layout` detected -- analysing ./src discovered packages -- ['docx', 'docx.dml', 'docx.drawing', 'docx.parts', 'docx.oxml', 'docx.styles', 'docx.templates', 'docx.enum', 'docx.text', 'docx.opc', 'docx.image', 'docx.oxml.text', 'docx.templates.default-docx-template', 'docx.templates.default-docx-template.word', 'docx.templates.default-docx-template.customXml', 'docx.templates.default-docx-template._rels', 'docx.templates.default-docx-template.docProps', 'docx.templates.default-docx-template.word.theme', 'docx.templates.default-docx-template.word._rels', 'docx.templates.default-docx-template.customXml._rels', 'docx.opc.parts'] discovered py_modules -- [] running bdist_wheel running build running build_py creating build creating build/lib creating build/lib/docx copying src/docx/__init__.py -> build/lib/docx copying src/docx/settings.py -> build/lib/docx copying src/docx/document.py -> build/lib/docx copying src/docx/types.py -> build/lib/docx copying src/docx/package.py -> build/lib/docx copying src/docx/shape.py -> build/lib/docx copying src/docx/shared.py -> build/lib/docx copying src/docx/blkcntnr.py -> build/lib/docx copying src/docx/section.py -> build/lib/docx copying src/docx/table.py -> build/lib/docx copying src/docx/exceptions.py -> build/lib/docx copying src/docx/api.py -> build/lib/docx creating build/lib/docx/dml copying src/docx/dml/__init__.py -> build/lib/docx/dml copying src/docx/dml/color.py -> build/lib/docx/dml creating build/lib/docx/drawing copying src/docx/drawing/__init__.py -> build/lib/docx/drawing creating build/lib/docx/parts copying src/docx/parts/__init__.py -> build/lib/docx/parts copying src/docx/parts/settings.py -> build/lib/docx/parts copying src/docx/parts/document.py -> build/lib/docx/parts copying src/docx/parts/hdrftr.py -> build/lib/docx/parts copying src/docx/parts/styles.py -> build/lib/docx/parts copying src/docx/parts/image.py -> build/lib/docx/parts copying src/docx/parts/numbering.py -> build/lib/docx/parts copying src/docx/parts/story.py -> build/lib/docx/parts creating build/lib/docx/oxml copying src/docx/oxml/__init__.py -> build/lib/docx/oxml copying src/docx/oxml/settings.py -> build/lib/docx/oxml copying src/docx/oxml/document.py -> build/lib/docx/oxml copying src/docx/oxml/shape.py -> build/lib/docx/oxml copying src/docx/oxml/coreprops.py -> build/lib/docx/oxml copying src/docx/oxml/parser.py -> build/lib/docx/oxml copying src/docx/oxml/shared.py -> build/lib/docx/oxml copying src/docx/oxml/simpletypes.py -> build/lib/docx/oxml copying src/docx/oxml/styles.py -> build/lib/docx/oxml copying src/docx/oxml/ns.py -> build/lib/docx/oxml copying src/docx/oxml/drawing.py -> build/lib/docx/oxml copying src/docx/oxml/numbering.py -> build/lib/docx/oxml copying src/docx/oxml/section.py -> build/lib/docx/oxml copying src/docx/oxml/table.py -> build/lib/docx/oxml copying src/docx/oxml/exceptions.py -> build/lib/docx/oxml copying src/docx/oxml/xmlchemy.py -> build/lib/docx/oxml creating build/lib/docx/styles copying src/docx/styles/__init__.py -> build/lib/docx/styles copying src/docx/styles/styles.py -> build/lib/docx/styles copying src/docx/styles/style.py -> build/lib/docx/styles copying src/docx/styles/latent.py -> build/lib/docx/styles creating build/lib/docx/enum copying src/docx/enum/__init__.py -> build/lib/docx/enum copying src/docx/enum/text.py -> build/lib/docx/enum copying src/docx/enum/shape.py -> build/lib/docx/enum copying src/docx/enum/dml.py -> build/lib/docx/enum copying src/docx/enum/section.py -> build/lib/docx/enum copying src/docx/enum/style.py -> build/lib/docx/enum copying src/docx/enum/base.py -> build/lib/docx/enum copying src/docx/enum/table.py -> build/lib/docx/enum creating build/lib/docx/text copying src/docx/text/__init__.py -> build/lib/docx/text copying src/docx/text/parfmt.py -> build/lib/docx/text copying src/docx/text/pagebreak.py -> build/lib/docx/text copying src/docx/text/hyperlink.py -> build/lib/docx/text copying src/docx/text/paragraph.py -> build/lib/docx/text copying src/docx/text/tabstops.py -> build/lib/docx/text copying src/docx/text/font.py -> build/lib/docx/text copying src/docx/text/run.py -> build/lib/docx/text creating build/lib/docx/opc copying src/docx/opc/__init__.py -> build/lib/docx/opc copying src/docx/opc/constants.py -> build/lib/docx/opc copying src/docx/opc/phys_pkg.py -> build/lib/docx/opc copying src/docx/opc/package.py -> build/lib/docx/opc copying src/docx/opc/packuri.py -> build/lib/docx/opc copying src/docx/opc/coreprops.py -> build/lib/docx/opc copying src/docx/opc/shared.py -> build/lib/docx/opc copying src/docx/opc/part.py -> build/lib/docx/opc copying src/docx/opc/spec.py -> build/lib/docx/opc copying src/docx/opc/rel.py -> build/lib/docx/opc copying src/docx/opc/oxml.py -> build/lib/docx/opc copying src/docx/opc/pkgreader.py -> build/lib/docx/opc copying src/docx/opc/exceptions.py -> build/lib/docx/opc copying src/docx/opc/pkgwriter.py -> build/lib/docx/opc creating build/lib/docx/image copying src/docx/image/__init__.py -> build/lib/docx/image copying src/docx/image/png.py -> build/lib/docx/image copying src/docx/image/helpers.py -> build/lib/docx/image copying src/docx/image/constants.py -> build/lib/docx/image copying src/docx/image/tiff.py -> build/lib/docx/image copying src/docx/image/bmp.py -> build/lib/docx/image copying src/docx/image/gif.py -> build/lib/docx/image copying src/docx/image/image.py -> build/lib/docx/image copying src/docx/image/jpeg.py -> build/lib/docx/image copying src/docx/image/exceptions.py -> build/lib/docx/image creating build/lib/docx/oxml/text copying src/docx/oxml/text/__init__.py -> build/lib/docx/oxml/text copying src/docx/oxml/text/parfmt.py -> build/lib/docx/oxml/text copying src/docx/oxml/text/pagebreak.py -> build/lib/docx/oxml/text copying src/docx/oxml/text/hyperlink.py -> build/lib/docx/oxml/text copying src/docx/oxml/text/paragraph.py -> build/lib/docx/oxml/text copying src/docx/oxml/text/font.py -> build/lib/docx/oxml/text copying src/docx/oxml/text/run.py -> build/lib/docx/oxml/text creating build/lib/docx/opc/parts copying src/docx/opc/parts/__init__.py -> build/lib/docx/opc/parts copying src/docx/opc/parts/coreprops.py -> build/lib/docx/opc/parts running egg_info writing src/python_docx.egg-info/PKG-INFO writing dependency_links to src/python_docx.egg-info/dependency_links.txt writing requirements to src/python_docx.egg-info/requires.txt writing top-level names to src/python_docx.egg-info/top_level.txt reading manifest file 'src/python_docx.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'README.rst' no previously-included directories found matching 'docs/.build' warning: no previously-included files matching '.DS_Store' found anywhere in distribution warning: no previously-included files matching '__pycache__' found anywhere in distribution warning: no previously-included files matching '*.py[co]' found anywhere in distribution adding license file 'LICENSE' writing manifest file 'src/python_docx.egg-info/SOURCES.txt' copying src/docx/py.typed -> build/lib/docx creating build/lib/docx/templates copying src/docx/templates/default-footer.xml -> build/lib/docx/templates copying src/docx/templates/default-header.xml -> build/lib/docx/templates copying src/docx/templates/default-settings.xml -> build/lib/docx/templates copying src/docx/templates/default-styles.xml -> build/lib/docx/templates copying src/docx/templates/default.docx -> build/lib/docx/templates creating build/lib/docx/templates/default-docx-template copying src/docx/templates/default-docx-template/[Content_Types].xml -> build/lib/docx/templates/default-docx-template creating build/lib/docx/templates/default-docx-template/word copying src/docx/templates/default-docx-template/word/document.xml -> build/lib/docx/templates/default-docx-template/word copying src/docx/templates/default-docx-template/word/fontTable.xml -> build/lib/docx/templates/default-docx-template/word copying src/docx/templates/default-docx-template/word/numbering.xml -> build/lib/docx/templates/default-docx-template/word copying src/docx/templates/default-docx-template/word/settings.xml -> build/lib/docx/templates/default-docx-template/word copying src/docx/templates/default-docx-template/word/styles.xml -> build/lib/docx/templates/default-docx-template/word copying src/docx/templates/default-docx-template/word/stylesWithEffects.xml -> build/lib/docx/templates/default-docx-template/word copying src/docx/templates/default-docx-template/word/webSettings.xml -> build/lib/docx/templates/default-docx-template/word creating build/lib/docx/templates/default-docx-template/customXml copying src/docx/templates/default-docx-template/customXml/item1.xml -> build/lib/docx/templates/default-docx-template/customXml copying src/docx/templates/default-docx-template/customXml/itemProps1.xml -> build/lib/docx/templates/default-docx-template/customXml creating build/lib/docx/templates/default-docx-template/_rels copying src/docx/templates/default-docx-template/_rels/.rels -> build/lib/docx/templates/default-docx-template/_rels creating build/lib/docx/templates/default-docx-template/docProps copying src/docx/templates/default-docx-template/docProps/app.xml -> build/lib/docx/templates/default-docx-template/docProps copying src/docx/templates/default-docx-template/docProps/core.xml -> build/lib/docx/templates/default-docx-template/docProps copying src/docx/templates/default-docx-template/docProps/thumbnail.jpeg -> build/lib/docx/templates/default-docx-template/docProps creating build/lib/docx/templates/default-docx-template/word/theme copying src/docx/templates/default-docx-template/word/theme/theme1.xml -> build/lib/docx/templates/default-docx-template/word/theme creating build/lib/docx/templates/default-docx-template/word/_rels copying src/docx/templates/default-docx-template/word/_rels/document.xml.rels -> build/lib/docx/templates/default-docx-template/word/_rels creating build/lib/docx/templates/default-docx-template/customXml/_rels copying src/docx/templates/default-docx-template/customXml/_rels/item1.xml.rels -> build/lib/docx/templates/default-docx-template/customXml/_rels installing to build/bdist.linux-riscv64/wheel running install running install_lib creating build/bdist.linux-riscv64 creating build/bdist.linux-riscv64/wheel creating build/bdist.linux-riscv64/wheel/docx copying build/lib/docx/__init__.py -> build/bdist.linux-riscv64/wheel/docx copying build/lib/docx/settings.py -> build/bdist.linux-riscv64/wheel/docx copying build/lib/docx/document.py -> build/bdist.linux-riscv64/wheel/docx creating build/bdist.linux-riscv64/wheel/docx/dml copying build/lib/docx/dml/__init__.py -> build/bdist.linux-riscv64/wheel/docx/dml copying build/lib/docx/dml/color.py -> build/bdist.linux-riscv64/wheel/docx/dml copying build/lib/docx/types.py -> build/bdist.linux-riscv64/wheel/docx copying build/lib/docx/py.typed -> build/bdist.linux-riscv64/wheel/docx creating build/bdist.linux-riscv64/wheel/docx/drawing copying build/lib/docx/drawing/__init__.py -> build/bdist.linux-riscv64/wheel/docx/drawing creating build/bdist.linux-riscv64/wheel/docx/parts copying build/lib/docx/parts/__init__.py -> build/bdist.linux-riscv64/wheel/docx/parts copying build/lib/docx/parts/settings.py -> build/bdist.linux-riscv64/wheel/docx/parts copying build/lib/docx/parts/document.py -> build/bdist.linux-riscv64/wheel/docx/parts copying build/lib/docx/parts/hdrftr.py -> build/bdist.linux-riscv64/wheel/docx/parts copying build/lib/docx/parts/styles.py -> build/bdist.linux-riscv64/wheel/docx/parts copying build/lib/docx/parts/image.py -> build/bdist.linux-riscv64/wheel/docx/parts copying build/lib/docx/parts/numbering.py -> build/bdist.linux-riscv64/wheel/docx/parts copying build/lib/docx/parts/story.py -> build/bdist.linux-riscv64/wheel/docx/parts copying build/lib/docx/package.py -> build/bdist.linux-riscv64/wheel/docx creating build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/__init__.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/settings.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/document.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/shape.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/coreprops.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/parser.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/shared.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/simpletypes.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/styles.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/ns.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/drawing.py -> build/bdist.linux-riscv64/wheel/docx/oxml creating build/bdist.linux-riscv64/wheel/docx/oxml/text copying build/lib/docx/oxml/text/__init__.py -> build/bdist.linux-riscv64/wheel/docx/oxml/text copying build/lib/docx/oxml/text/parfmt.py -> build/bdist.linux-riscv64/wheel/docx/oxml/text copying build/lib/docx/oxml/text/pagebreak.py -> build/bdist.linux-riscv64/wheel/docx/oxml/text copying build/lib/docx/oxml/text/hyperlink.py -> build/bdist.linux-riscv64/wheel/docx/oxml/text copying build/lib/docx/oxml/text/paragraph.py -> build/bdist.linux-riscv64/wheel/docx/oxml/text copying build/lib/docx/oxml/text/font.py -> build/bdist.linux-riscv64/wheel/docx/oxml/text copying build/lib/docx/oxml/text/run.py -> build/bdist.linux-riscv64/wheel/docx/oxml/text copying build/lib/docx/oxml/numbering.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/section.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/table.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/exceptions.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/xmlchemy.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/shape.py -> build/bdist.linux-riscv64/wheel/docx creating build/bdist.linux-riscv64/wheel/docx/styles copying build/lib/docx/styles/__init__.py -> build/bdist.linux-riscv64/wheel/docx/styles copying build/lib/docx/styles/styles.py -> build/bdist.linux-riscv64/wheel/docx/styles copying build/lib/docx/styles/style.py -> build/bdist.linux-riscv64/wheel/docx/styles copying build/lib/docx/styles/latent.py -> build/bdist.linux-riscv64/wheel/docx/styles creating build/bdist.linux-riscv64/wheel/docx/templates copying build/lib/docx/templates/default.docx -> build/bdist.linux-riscv64/wheel/docx/templates copying build/lib/docx/templates/default-styles.xml -> build/bdist.linux-riscv64/wheel/docx/templates copying build/lib/docx/templates/default-footer.xml -> build/bdist.linux-riscv64/wheel/docx/templates creating build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template creating build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word copying build/lib/docx/templates/default-docx-template/word/document.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word copying build/lib/docx/templates/default-docx-template/word/settings.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word copying build/lib/docx/templates/default-docx-template/word/numbering.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word creating build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word/theme copying build/lib/docx/templates/default-docx-template/word/theme/theme1.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word/theme copying build/lib/docx/templates/default-docx-template/word/styles.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word copying build/lib/docx/templates/default-docx-template/word/fontTable.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word copying build/lib/docx/templates/default-docx-template/word/webSettings.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word copying build/lib/docx/templates/default-docx-template/word/stylesWithEffects.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word creating build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word/_rels copying build/lib/docx/templates/default-docx-template/word/_rels/document.xml.rels -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word/_rels copying build/lib/docx/templates/default-docx-template/[Content_Types].xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template creating build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/customXml copying build/lib/docx/templates/default-docx-template/customXml/itemProps1.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/customXml creating build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/customXml/_rels copying build/lib/docx/templates/default-docx-template/customXml/_rels/item1.xml.rels -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/customXml/_rels copying build/lib/docx/templates/default-docx-template/customXml/item1.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/customXml creating build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/_rels copying build/lib/docx/templates/default-docx-template/_rels/.rels -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/_rels creating build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/docProps copying build/lib/docx/templates/default-docx-template/docProps/thumbnail.jpeg -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/docProps copying build/lib/docx/templates/default-docx-template/docProps/app.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/docProps copying build/lib/docx/templates/default-docx-template/docProps/core.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/docProps copying build/lib/docx/templates/default-settings.xml -> build/bdist.linux-riscv64/wheel/docx/templates copying build/lib/docx/templates/default-header.xml -> build/bdist.linux-riscv64/wheel/docx/templates copying build/lib/docx/shared.py -> build/bdist.linux-riscv64/wheel/docx creating build/bdist.linux-riscv64/wheel/docx/enum copying build/lib/docx/enum/__init__.py -> build/bdist.linux-riscv64/wheel/docx/enum copying build/lib/docx/enum/text.py -> build/bdist.linux-riscv64/wheel/docx/enum copying build/lib/docx/enum/shape.py -> build/bdist.linux-riscv64/wheel/docx/enum copying build/lib/docx/enum/dml.py -> build/bdist.linux-riscv64/wheel/docx/enum copying build/lib/docx/enum/section.py -> build/bdist.linux-riscv64/wheel/docx/enum copying build/lib/docx/enum/style.py -> build/bdist.linux-riscv64/wheel/docx/enum copying build/lib/docx/enum/base.py -> build/bdist.linux-riscv64/wheel/docx/enum copying build/lib/docx/enum/table.py -> build/bdist.linux-riscv64/wheel/docx/enum creating build/bdist.linux-riscv64/wheel/docx/text copying build/lib/docx/text/__init__.py -> build/bdist.linux-riscv64/wheel/docx/text copying build/lib/docx/text/parfmt.py -> build/bdist.linux-riscv64/wheel/docx/text copying build/lib/docx/text/pagebreak.py -> build/bdist.linux-riscv64/wheel/docx/text copying build/lib/docx/text/hyperlink.py -> build/bdist.linux-riscv64/wheel/docx/text copying build/lib/docx/text/paragraph.py -> build/bdist.linux-riscv64/wheel/docx/text copying build/lib/docx/text/tabstops.py -> build/bdist.linux-riscv64/wheel/docx/text copying build/lib/docx/text/font.py -> build/bdist.linux-riscv64/wheel/docx/text copying build/lib/docx/text/run.py -> build/bdist.linux-riscv64/wheel/docx/text creating build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/__init__.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/constants.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/phys_pkg.py -> build/bdist.linux-riscv64/wheel/docx/opc creating build/bdist.linux-riscv64/wheel/docx/opc/parts copying build/lib/docx/opc/parts/__init__.py -> build/bdist.linux-riscv64/wheel/docx/opc/parts copying build/lib/docx/opc/parts/coreprops.py -> build/bdist.linux-riscv64/wheel/docx/opc/parts copying build/lib/docx/opc/package.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/packuri.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/coreprops.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/shared.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/part.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/spec.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/rel.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/oxml.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/pkgreader.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/exceptions.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/pkgwriter.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/blkcntnr.py -> build/bdist.linux-riscv64/wheel/docx copying build/lib/docx/section.py -> build/bdist.linux-riscv64/wheel/docx copying build/lib/docx/table.py -> build/bdist.linux-riscv64/wheel/docx copying build/lib/docx/exceptions.py -> build/bdist.linux-riscv64/wheel/docx creating build/bdist.linux-riscv64/wheel/docx/image copying build/lib/docx/image/__init__.py -> build/bdist.linux-riscv64/wheel/docx/image copying build/lib/docx/image/png.py -> build/bdist.linux-riscv64/wheel/docx/image copying build/lib/docx/image/helpers.py -> build/bdist.linux-riscv64/wheel/docx/image copying build/lib/docx/image/constants.py -> build/bdist.linux-riscv64/wheel/docx/image copying build/lib/docx/image/tiff.py -> build/bdist.linux-riscv64/wheel/docx/image copying build/lib/docx/image/bmp.py -> build/bdist.linux-riscv64/wheel/docx/image copying build/lib/docx/image/gif.py -> build/bdist.linux-riscv64/wheel/docx/image copying build/lib/docx/image/image.py -> build/bdist.linux-riscv64/wheel/docx/image copying build/lib/docx/image/jpeg.py -> build/bdist.linux-riscv64/wheel/docx/image copying build/lib/docx/image/exceptions.py -> build/bdist.linux-riscv64/wheel/docx/image copying build/lib/docx/api.py -> build/bdist.linux-riscv64/wheel/docx running install_egg_info Copying src/python_docx.egg-info to build/bdist.linux-riscv64/wheel/python_docx-1.1.2-py3.13.egg-info running install_scripts creating build/bdist.linux-riscv64/wheel/python_docx-1.1.2.dist-info/WHEEL creating '/builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/.pyproject-builddir/pip-wheel-1ytqd3go/.tmp-eeacoz44/python_docx-1.1.2-py3-none-any.whl' and adding 'build/bdist.linux-riscv64/wheel' to it adding 'docx/__init__.py' adding 'docx/api.py' adding 'docx/blkcntnr.py' adding 'docx/document.py' adding 'docx/exceptions.py' adding 'docx/package.py' adding 'docx/py.typed' adding 'docx/section.py' adding 'docx/settings.py' adding 'docx/shape.py' adding 'docx/shared.py' adding 'docx/table.py' adding 'docx/types.py' adding 'docx/dml/__init__.py' adding 'docx/dml/color.py' adding 'docx/drawing/__init__.py' adding 'docx/enum/__init__.py' adding 'docx/enum/base.py' adding 'docx/enum/dml.py' adding 'docx/enum/section.py' adding 'docx/enum/shape.py' adding 'docx/enum/style.py' adding 'docx/enum/table.py' adding 'docx/enum/text.py' adding 'docx/image/__init__.py' adding 'docx/image/bmp.py' adding 'docx/image/constants.py' adding 'docx/image/exceptions.py' adding 'docx/image/gif.py' adding 'docx/image/helpers.py' adding 'docx/image/image.py' adding 'docx/image/jpeg.py' adding 'docx/image/png.py' adding 'docx/image/tiff.py' adding 'docx/opc/__init__.py' adding 'docx/opc/constants.py' adding 'docx/opc/coreprops.py' adding 'docx/opc/exceptions.py' adding 'docx/opc/oxml.py' adding 'docx/opc/package.py' adding 'docx/opc/packuri.py' adding 'docx/opc/part.py' adding 'docx/opc/phys_pkg.py' adding 'docx/opc/pkgreader.py' adding 'docx/opc/pkgwriter.py' adding 'docx/opc/rel.py' adding 'docx/opc/shared.py' adding 'docx/opc/spec.py' adding 'docx/opc/parts/__init__.py' adding 'docx/opc/parts/coreprops.py' adding 'docx/oxml/__init__.py' adding 'docx/oxml/coreprops.py' adding 'docx/oxml/document.py' adding 'docx/oxml/drawing.py' adding 'docx/oxml/exceptions.py' adding 'docx/oxml/ns.py' adding 'docx/oxml/numbering.py' adding 'docx/oxml/parser.py' adding 'docx/oxml/section.py' adding 'docx/oxml/settings.py' adding 'docx/oxml/shape.py' adding 'docx/oxml/shared.py' adding 'docx/oxml/simpletypes.py' adding 'docx/oxml/styles.py' adding 'docx/oxml/table.py' adding 'docx/oxml/xmlchemy.py' adding 'docx/oxml/text/__init__.py' adding 'docx/oxml/text/font.py' adding 'docx/oxml/text/hyperlink.py' adding 'docx/oxml/text/pagebreak.py' adding 'docx/oxml/text/paragraph.py' adding 'docx/oxml/text/parfmt.py' adding 'docx/oxml/text/run.py' adding 'docx/parts/__init__.py' adding 'docx/parts/document.py' adding 'docx/parts/hdrftr.py' adding 'docx/parts/image.py' adding 'docx/parts/numbering.py' adding 'docx/parts/settings.py' adding 'docx/parts/story.py' adding 'docx/parts/styles.py' adding 'docx/styles/__init__.py' adding 'docx/styles/latent.py' adding 'docx/styles/style.py' adding 'docx/styles/styles.py' adding 'docx/templates/default-footer.xml' adding 'docx/templates/default-header.xml' adding 'docx/templates/default-settings.xml' adding 'docx/templates/default-styles.xml' adding 'docx/templates/default.docx' adding 'docx/templates/default-docx-template/[Content_Types].xml' adding 'docx/templates/default-docx-template/_rels/.rels' adding 'docx/templates/default-docx-template/customXml/item1.xml' adding 'docx/templates/default-docx-template/customXml/itemProps1.xml' adding 'docx/templates/default-docx-template/customXml/_rels/item1.xml.rels' adding 'docx/templates/default-docx-template/docProps/app.xml' adding 'docx/templates/default-docx-template/docProps/core.xml' adding 'docx/templates/default-docx-template/docProps/thumbnail.jpeg' adding 'docx/templates/default-docx-template/word/document.xml' adding 'docx/templates/default-docx-template/word/fontTable.xml' adding 'docx/templates/default-docx-template/word/numbering.xml' adding 'docx/templates/default-docx-template/word/settings.xml' adding 'docx/templates/default-docx-template/word/styles.xml' adding 'docx/templates/default-docx-template/word/stylesWithEffects.xml' adding 'docx/templates/default-docx-template/word/webSettings.xml' adding 'docx/templates/default-docx-template/word/_rels/document.xml.rels' adding 'docx/templates/default-docx-template/word/theme/theme1.xml' adding 'docx/text/__init__.py' adding 'docx/text/font.py' adding 'docx/text/hyperlink.py' adding 'docx/text/pagebreak.py' adding 'docx/text/paragraph.py' adding 'docx/text/parfmt.py' adding 'docx/text/run.py' adding 'docx/text/tabstops.py' adding 'python_docx-1.1.2.dist-info/LICENSE' adding 'python_docx-1.1.2.dist-info/METADATA' adding 'python_docx-1.1.2.dist-info/WHEEL' adding 'python_docx-1.1.2.dist-info/top_level.txt' adding 'python_docx-1.1.2.dist-info/RECORD' removing build/bdist.linux-riscv64/wheel Building wheel for python-docx (pyproject.toml): finished with status 'done' Created wheel for python-docx: filename=python_docx-1.1.2-py3-none-any.whl size=243350 sha256=28b77ae3ec6d12a39627eb567ce0ebe14799cf51846601143bdac22f7fed34e3 Stored in directory: /builddir/.cache/pip/wheels/32/ab/59/b7c18d01487012364c7759d440949c46e653e94dac0c3e7ecb Successfully built python-docx + PYTHONPATH=/builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/src + /usr/bin/make -O -j32 V=1 VERBOSE=1 -C docs latex SPHINXOPTS=-j32 make: Entering directory '/builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/docs' sphinx-build -b latex -d .build/doctrees -j32 . .build/latex Running Sphinx v7.2.6 making output directory... done building [mo]: targets for 0 po files that are out of date writing output... building [latex]: all documents updating environment: [new config] 72 added, 0 changed, 0 removed reading sources... [ 3%] api/dml .. api/document reading sources... [ 6%] api/enum/MsoColorType .. api/enum/MsoThemeColorIndex reading sources... [ 8%] api/enum/WdAlignParagraph .. api/enum/WdBuiltinStyle reading sources... [ 11%] api/enum/WdCellVerticalAlignment .. api/enum/WdColorIndex reading sources... [ 14%] api/enum/WdLineSpacing .. api/enum/WdOrientation reading sources... [ 17%] api/enum/WdRowAlignment .. api/enum/WdRowHeightRule reading sources... [ 19%] api/enum/WdSectionStart .. api/enum/WdStyleType reading sources... [ 22%] api/enum/WdTabAlignment .. api/enum/WdTabLeader reading sources... [ 25%] api/enum/WdTableDirection .. api/enum/WdUnderline reading sources... [ 28%] api/enum/index .. api/section reading sources... [ 31%] api/settings .. api/shape reading sources... [ 33%] api/shared .. api/style reading sources... [ 36%] api/table .. api/text reading sources... [ 39%] dev/analysis/features/coreprops .. dev/analysis/features/header reading sources... [ 42%] dev/analysis/features/numbering .. dev/analysis/features/sections reading sources... [ 44%] dev/analysis/features/settings .. dev/analysis/features/shapes/index reading sources... [ 47%] dev/analysis/features/shapes/picture .. dev/analysis/features/shapes/shapes-inline reading sources... [ 50%] dev/analysis/features/shapes/shapes-inline-size .. dev/analysis/features/styles/character-style reading sources... [ 53%] dev/analysis/features/styles/index .. dev/analysis/features/styles/latent-styles reading sources... [ 56%] dev/analysis/features/styles/paragraph-style .. dev/analysis/features/styles/style reading sources... [ 58%] dev/analysis/features/styles/styles .. dev/analysis/features/table/cell-merge reading sources... [ 61%] dev/analysis/features/table/index .. dev/analysis/features/table/table-cell reading sources... [ 64%] dev/analysis/features/table/table-props .. dev/analysis/features/table/table-row reading sources... [ 67%] dev/analysis/features/text/breaks .. dev/analysis/features/text/font reading sources... [ 69%] dev/analysis/features/text/font-color .. dev/analysis/features/text/font-highlight-color reading sources... [ 72%] dev/analysis/features/text/hyperlink .. dev/analysis/features/text/index reading sources... [ 75%] dev/analysis/features/text/paragraph-format .. dev/analysis/features/text/run-content reading sources... [ 78%] dev/analysis/features/text/tab-stops .. dev/analysis/features/text/underline reading sources... [ 81%] dev/analysis/index .. dev/analysis/schema/ct_body reading sources... [ 83%] dev/analysis/schema/ct_document .. dev/analysis/schema/ct_p reading sources... [ 86%] index .. user/api-concepts reading sources... [ 89%] user/documents .. user/hdrftr reading sources... [ 92%] user/install .. user/quickstart reading sources... [ 94%] user/sections .. user/shapes reading sources... [ 97%] user/styles-understanding .. user/styles-using reading sources... [100%] user/tables .. user/text looking for now-outdated files... none found pickling environment... done checking consistency... done copying TeX support files... copying TeX support files... done processing python-docx.tex... index user/install user/quickstart user/documents user/tables user/text user/sections user/hdrftr user/api-concepts user/styles-understanding user/styles-using user/shapes api/document api/settings api/style api/text api/table api/section api/shape api/dml api/shared api/enum/index api/enum/MsoColorType api/enum/MsoThemeColorIndex api/enum/WdAlignParagraph api/enum/WdBuiltinStyle api/enum/WdCellVerticalAlignment api/enum/WdColorIndex api/enum/WdLineSpacing api/enum/WdOrientation api/enum/WdRowAlignment api/enum/WdRowHeightRule api/enum/WdSectionStart api/enum/WdStyleType api/enum/WdTabAlignment api/enum/WdTabLeader api/enum/WdTableDirection api/enum/WdUnderline dev/analysis/index dev/analysis/features/header dev/analysis/features/settings dev/analysis/features/text/index dev/analysis/features/text/hyperlink dev/analysis/features/text/tab-stops dev/analysis/features/text/font-highlight-color dev/analysis/features/text/paragraph-format dev/analysis/features/text/font dev/analysis/features/text/font-color dev/analysis/features/text/underline dev/analysis/features/text/run-content dev/analysis/features/text/breaks dev/analysis/features/table/index dev/analysis/features/table/table-props dev/analysis/features/table/table-row dev/analysis/features/table/table-cell dev/analysis/features/table/cell-merge dev/analysis/features/styles/index dev/analysis/features/styles/styles dev/analysis/features/styles/style dev/analysis/features/styles/paragraph-style dev/analysis/features/styles/character-style dev/analysis/features/styles/latent-styles dev/analysis/features/shapes/index dev/analysis/features/shapes/shapes-inline dev/analysis/features/shapes/shapes-inline-size dev/analysis/features/shapes/picture dev/analysis/features/coreprops dev/analysis/features/numbering dev/analysis/features/sections dev/analysis/schema/ct_document dev/analysis/schema/ct_body dev/analysis/schema/ct_p resolving references... done writing... done copying images... [ 33%] _static/img/example-docx-01.png copying images... [ 67%] _static/img/hdrftr-01.png copying images... [100%] _static/img/hdrftr-02.png build succeeded. The LaTeX files are in .build/latex. Run 'make' in that directory to run these through (pdf)latex (use `make latexpdf' here to do that automatically). Build finished; the LaTeX files are in .build/latex. Run `make' in that directory to run these through (pdf)latex (use `make latexpdf' here to do that automatically). make: Leaving directory '/builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/docs' + /usr/bin/make -O -j32 V=1 VERBOSE=1 -C docs/.build/latex LATEXMKOPTS=-quiet make: Entering directory '/builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/docs/.build/latex' latexmk -pdf -dvi- -ps- -quiet 'python-docx.tex' Rc files read: /etc/latexmkrc latexmkrc Latexmk: Run number 1 of rule 'pdflatex' This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex) restricted \write18 enabled. entering extended mode Latexmk: Getting log file 'python-docx.log' Have index file 'python-docx.idx', python-docx.ind python-docx Latexmk: Run number 1 of rule 'makeindex python-docx.idx' Latexmk: Run number 2 of rule 'pdflatex' This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex) restricted \write18 enabled. entering extended mode Latexmk: Getting log file 'python-docx.log' Have index file 'python-docx.idx', python-docx.ind python-docx Latexmk: Run number 3 of rule 'pdflatex' This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex) restricted \write18 enabled. entering extended mode Latexmk: Getting log file 'python-docx.log' Have index file 'python-docx.idx', python-docx.ind python-docx make: Leaving directory '/builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/docs/.build/latex' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.I4QCDZ + umask 022 + cd /builddir/build/BUILD/python-docx-1.1.2-build + '[' /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT '!=' / ']' + rm -rf /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT ++ dirname /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT + mkdir -p /builddir/build/BUILD/python-docx-1.1.2-build + mkdir /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT + 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 -fasynchronous-unwind-tables -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 -fasynchronous-unwind-tables -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 -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 -fasynchronous-unwind-tables -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 -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 -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + export RUSTFLAGS + 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 python_docx-1.1.2 ++ xargs basename --multiple ++ ls /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/pyproject-wheeldir/python_docx-1.1.2-py3-none-any.whl ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' + specifier=python_docx==1.1.2 + '[' -z python_docx==1.1.2 ']' + TMPDIR=/builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/.pyproject-builddir + /usr/bin/python3 -m pip install --root /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT --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/python-docx-1.1.2-build/python_docx-1.1.2/pyproject-wheeldir python_docx==1.1.2 Using pip 24.0 from /usr/lib/python3.13/site-packages/pip (python 3.13) Looking in links: /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/pyproject-wheeldir Processing ./pyproject-wheeldir/python_docx-1.1.2-py3-none-any.whl Installing collected packages: python_docx Successfully installed python_docx-1.1.2 + '[' -d /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/bin ']' + rm -f /builddir/build/BUILD/python-docx-1.1.2-build/python-docx-1.1.2-3.fc41.noarch-pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages ']' + site_dirs+=("/usr/lib/python3.13/site-packages") + '[' /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib64/python3.13/site-packages '!=' /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages ']' + '[' -d /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib64/python3.13/site-packages ']' + for site_dir in ${site_dirs[@]} + for distinfo in /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT$site_dir/*.dist-info + echo '%ghost /usr/lib/python3.13/site-packages/python_docx-1.1.2.dist-info' + sed -i s/pip/rpm/ /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/python_docx-1.1.2.dist-info/INSTALLER + PYTHONPATH=/usr/lib/rpm/redhat + /usr/bin/python3 -B /usr/lib/rpm/redhat/pyproject_preprocess_record.py --buildroot /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT --record /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/python_docx-1.1.2.dist-info/RECORD --output /builddir/build/BUILD/python-docx-1.1.2-build/python-docx-1.1.2-3.fc41.noarch-pyproject-record + rm -fv /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/python_docx-1.1.2.dist-info/RECORD removed '/builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/python_docx-1.1.2.dist-info/RECORD' + rm -fv /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/python_docx-1.1.2.dist-info/REQUESTED removed '/builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/python_docx-1.1.2.dist-info/REQUESTED' ++ wc -l /builddir/build/BUILD/python-docx-1.1.2-build/python-docx-1.1.2-3.fc41.noarch-pyproject-ghost-distinfo ++ cut -f1 '-d ' + lines=1 + '[' 1 -ne 1 ']' + RPM_FILES_ESCAPE=4.19 + /usr/bin/python3 /usr/lib/rpm/redhat/pyproject_save_files.py --output-files /builddir/build/BUILD/python-docx-1.1.2-build/python-docx-1.1.2-3.fc41.noarch-pyproject-files --output-modules /builddir/build/BUILD/python-docx-1.1.2-build/python-docx-1.1.2-3.fc41.noarch-pyproject-modules --buildroot /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT --sitelib /usr/lib/python3.13/site-packages --sitearch /usr/lib64/python3.13/site-packages --python-version 3.13 --pyproject-record /builddir/build/BUILD/python-docx-1.1.2-build/python-docx-1.1.2-3.fc41.noarch-pyproject-record --prefix /usr -l docx + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig + /usr/lib/rpm/brp-compress + /usr/lib/rpm/brp-strip /usr/bin/strip + /usr/lib/rpm/brp-strip-comment-note /usr/bin/strip /usr/bin/objdump + /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 -j32 Bytecompiling .py files below /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13 using python3.13 + /usr/lib/rpm/redhat/brp-python-hardlink + /usr/bin/add-determinism --brp -j32 /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/parts/__pycache__/numbering.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/text/__pycache__/__init__.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/dml/__pycache__/__init__.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/parts/__pycache__/story.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/dml/__pycache__/color.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/parts/__pycache__/story.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/parts/__pycache__/document.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/__pycache__/__init__.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/parts/__pycache__/hdrftr.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/drawing/__pycache__/__init__.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/__pycache__/shared.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/text/__pycache__/paragraph.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/parts/__pycache__/settings.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/__pycache__/drawing.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/text/__pycache__/pagebreak.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/parts/__pycache__/styles.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/text/__pycache__/run.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/__pycache__/styles.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/__pycache__/exceptions.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/__pycache__/ns.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/text/__pycache__/hyperlink.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/__pycache__/coreprops.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/text/__pycache__/font.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/__pycache__/document.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/__pycache__/parser.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/text/__pycache__/parfmt.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/__pycache__/section.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/__pycache__/simpletypes.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/__pycache__/shape.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/__pycache__/settings.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/__pycache__/numbering.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/styles/__pycache__/__init__.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/enum/__pycache__/section.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/enum/__pycache__/__init__.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/text/__pycache__/__init__.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/enum/__pycache__/shape.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/enum/__pycache__/table.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/enum/__pycache__/dml.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/text/__pycache__/hyperlink.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/styles/__pycache__/styles.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/text/__pycache__/pagebreak.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/parts/__pycache__/__init__.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/text/__pycache__/tabstops.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/opc/parts/__pycache__/__init__.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/parts/__pycache__/image.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/enum/__pycache__/base.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/text/__pycache__/paragraph.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/opc/parts/__pycache__/coreprops.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/enum/__pycache__/base.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/enum/__pycache__/text.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/styles/__pycache__/style.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/parts/__pycache__/document.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/styles/__pycache__/latent.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/text/__pycache__/parfmt.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/text/__pycache__/run.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/opc/__pycache__/__init__.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/enum/__pycache__/style.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/opc/__pycache__/packuri.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/opc/__pycache__/shared.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/opc/__pycache__/oxml.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/opc/__pycache__/spec.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/text/__pycache__/font.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/opc/__pycache__/pkgwriter.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/opc/__pycache__/exceptions.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/opc/__pycache__/package.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/opc/__pycache__/pkgreader.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/opc/__pycache__/rel.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/opc/__pycache__/phys_pkg.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/opc/__pycache__/constants.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/opc/__pycache__/part.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/opc/__pycache__/coreprops.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/__pycache__/__init__.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/__pycache__/api.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/__pycache__/exceptions.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/__pycache__/types.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/__pycache__/settings.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/__pycache__/shape.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/__pycache__/package.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/__pycache__/blkcntnr.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/image/__pycache__/__init__.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/image/__pycache__/bmp.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/__pycache__/xmlchemy.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/__pycache__/table.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/oxml/__pycache__/table.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/image/__pycache__/gif.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/image/__pycache__/exceptions.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/image/__pycache__/helpers.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/__pycache__/document.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/image/__pycache__/constants.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/__pycache__/section.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/image/__pycache__/png.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/__pycache__/shared.cpython-313.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/image/__pycache__/image.cpython-313.opt-1.pyc: replacing with normalized version /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/image/__pycache__/jpeg.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/image/__pycache__/image.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/__pycache__/section.cpython-313.pyc: replacing with normalized version /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/image/__pycache__/tiff.cpython-313.opt-1.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/__pycache__/table.cpython-313.pyc: rewriting with normalized contents Scanned 39 directories and 304 files, processed 98 inodes, 98 modified (12 replaced + 86 rewritten), 0 unsupported format, 0 errors Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.IJVGcn + umask 022 + cd /builddir/build/BUILD/python-docx-1.1.2-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 -fasynchronous-unwind-tables -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 -fasynchronous-unwind-tables -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 -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 -fasynchronous-unwind-tables -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 -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 -fasynchronous-unwind-tables -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + export FCFLAGS + VALAFLAGS=-g + export VALAFLAGS + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + export RUSTFLAGS + 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 python_docx-1.1.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 -fasynchronous-unwind-tables -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/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib64/python3.13/site-packages:/builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages + PYTHONDONTWRITEBYTECODE=1 + PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/.pyproject-builddir' + PYTEST_XDIST_AUTO_NUM_WORKERS=32 + /usr/bin/pytest -k '' -v ============================= test session starts ============================== platform linux -- Python 3.13.0rc1, pytest-7.4.3, pluggy-1.3.0 -- /usr/bin/python3 cachedir: .pytest_cache rootdir: /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2 configfile: pyproject.toml plugins: xdist-3.6.1 collecting ... collected 1566 items tests/test_api.py::DescribeDocument::it_opens_a_docx_file PASSED [ 0%] tests/test_api.py::DescribeDocument::it_opens_the_default_docx_if_none_specified PASSED [ 0%] tests/test_api.py::DescribeDocument::it_raises_on_not_a_Word_file PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_can_add_a_paragraph[add_paragraph_fixture0] PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_can_add_a_paragraph[add_paragraph_fixture1] PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_can_add_a_paragraph[add_paragraph_fixture2] PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_can_add_a_paragraph[add_paragraph_fixture3] PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_can_add_a_table PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_can_iterate_its_inner_content PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_paragraphs_it_contains[paragraphs_fixture0] PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_paragraphs_it_contains[paragraphs_fixture1] PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_paragraphs_it_contains[paragraphs_fixture2] PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_paragraphs_it_contains[paragraphs_fixture3] PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_paragraphs_it_contains[paragraphs_fixture4] PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_tables_it_contains[tables_fixture0] PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_tables_it_contains[tables_fixture1] PASSED [ 1%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_tables_it_contains[tables_fixture2] PASSED [ 1%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_tables_it_contains[tables_fixture3] PASSED [ 1%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_tables_it_contains[tables_fixture4] PASSED [ 1%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_adds_a_paragraph_to_help PASSED [ 1%] tests/test_document.py::DescribeDocument::it_can_add_a_heading[add_heading_fixture0] PASSED [ 1%] tests/test_document.py::DescribeDocument::it_can_add_a_heading[add_heading_fixture1] PASSED [ 1%] tests/test_document.py::DescribeDocument::it_can_add_a_heading[add_heading_fixture2] PASSED [ 1%] tests/test_document.py::DescribeDocument::it_can_add_a_heading[add_heading_fixture3] PASSED [ 1%] tests/test_document.py::DescribeDocument::it_raises_on_heading_level_out_of_range PASSED [ 1%] tests/test_document.py::DescribeDocument::it_can_add_a_page_break PASSED [ 1%] tests/test_document.py::DescribeDocument::it_can_add_a_paragraph[add_paragraph_fixture0] PASSED [ 1%] tests/test_document.py::DescribeDocument::it_can_add_a_paragraph[add_paragraph_fixture1] PASSED [ 1%] tests/test_document.py::DescribeDocument::it_can_add_a_paragraph[add_paragraph_fixture2] PASSED [ 1%] tests/test_document.py::DescribeDocument::it_can_add_a_picture PASSED [ 1%] tests/test_document.py::DescribeDocument::it_can_add_a_section[add_section_fixture0] PASSED [ 1%] tests/test_document.py::DescribeDocument::it_can_add_a_section[add_section_fixture1] PASSED [ 2%] tests/test_document.py::DescribeDocument::it_can_add_a_section[add_section_fixture2] PASSED [ 2%] tests/test_document.py::DescribeDocument::it_can_add_a_table PASSED [ 2%] tests/test_document.py::DescribeDocument::it_can_save_the_document_to_a_file PASSED [ 2%] tests/test_document.py::DescribeDocument::it_provides_access_to_its_core_properties PASSED [ 2%] tests/test_document.py::DescribeDocument::it_provides_access_to_its_inline_shapes PASSED [ 2%] tests/test_document.py::DescribeDocument::it_can_iterate_the_inner_content_of_the_document PASSED [ 2%] tests/test_document.py::DescribeDocument::it_provides_access_to_its_paragraphs PASSED [ 2%] tests/test_document.py::DescribeDocument::it_provides_access_to_its_sections PASSED [ 2%] tests/test_document.py::DescribeDocument::it_provides_access_to_its_settings PASSED [ 2%] tests/test_document.py::DescribeDocument::it_provides_access_to_its_styles PASSED [ 2%] tests/test_document.py::DescribeDocument::it_provides_access_to_its_tables PASSED [ 2%] tests/test_document.py::DescribeDocument::it_provides_access_to_the_document_part PASSED [ 2%] tests/test_document.py::DescribeDocument::it_provides_access_to_the_document_body PASSED [ 2%] tests/test_document.py::DescribeDocument::it_determines_block_width_to_help PASSED [ 2%] tests/test_document.py::Describe_Body::it_can_clear_itself_of_all_content_it_holds[clear_fixture0] PASSED [ 3%] tests/test_document.py::Describe_Body::it_can_clear_itself_of_all_content_it_holds[clear_fixture1] PASSED [ 3%] tests/test_document.py::Describe_Body::it_can_clear_itself_of_all_content_it_holds[clear_fixture2] PASSED [ 3%] tests/test_document.py::Describe_Body::it_can_clear_itself_of_all_content_it_holds[clear_fixture3] PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnum::it_is_an_instance_of_EnumMeta_just_like_a_regular_Enum PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnum::it_has_the_same_repr_as_a_regular_Enum PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnum::it_has_an_MRO_that_goes_through_the_base_class_int_and_Enum PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnum::it_knows_the_XML_value_for_each_member_by_the_member_instance PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnum::it_knows_the_XML_value_for_each_member_by_the_member_value PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnum::but_it_raises_when_there_is_no_such_member PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnum::it_can_find_the_member_from_the_XML_attr_value PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnum::and_it_can_find_the_member_from_None_when_a_member_maps_that PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnum::but_it_raises_when_there_is_no_such_mapped_XML_value PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnumMembers::it_is_an_instance_of_its_XmlEnum_subtype_class PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnumMembers::it_has_the_default_Enum_repr PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnumMembers::but_its_str_value_is_customized PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnumMembers::its_value_is_the_same_int_as_its_corresponding_MS_API_enum_member PASSED [ 4%] tests/test_enum.py::DescribeBaseXmlEnumMembers::its_name_is_its_member_name_the_same_as_a_regular_Enum PASSED [ 4%] tests/test_enum.py::DescribeBaseXmlEnumMembers::it_has_an_individual_member_specific_docstring PASSED [ 4%] tests/test_enum.py::DescribeBaseXmlEnumMembers::it_is_equivalent_to_its_int_value PASSED [ 4%] tests/test_package.py::DescribePackage::it_can_get_or_add_an_image_part_containing_a_specified_image PASSED [ 4%] tests/test_package.py::DescribePackage::it_gathers_package_image_parts_after_unmarshalling PASSED [ 4%] tests/test_package.py::DescribeImageParts::it_can_get_a_matching_image_part PASSED [ 4%] tests/test_package.py::DescribeImageParts::but_it_adds_a_new_image_part_when_match_fails PASSED [ 4%] tests/test_package.py::DescribeImageParts::it_knows_the_next_available_image_partname[next_partname_fixture0] PASSED [ 4%] tests/test_package.py::DescribeImageParts::it_knows_the_next_available_image_partname[next_partname_fixture1] PASSED [ 4%] tests/test_package.py::DescribeImageParts::it_knows_the_next_available_image_partname[next_partname_fixture2] PASSED [ 4%] tests/test_package.py::DescribeImageParts::it_can_really_add_a_new_image_part PASSED [ 4%] tests/test_section.py::DescribeSections::it_knows_how_many_sections_it_contains PASSED [ 4%] tests/test_section.py::DescribeSections::it_can_iterate_over_its_Section_instances PASSED [ 4%] tests/test_section.py::DescribeSections::it_can_access_its_Section_instances_by_index PASSED [ 4%] tests/test_section.py::DescribeSections::it_can_access_its_Section_instances_by_slice PASSED [ 4%] tests/test_section.py::DescribeSection::it_knows_when_it_displays_a_distinct_first_page_header[w:sectPr-False] PASSED [ 5%] tests/test_section.py::DescribeSection::it_knows_when_it_displays_a_distinct_first_page_header[w:sectPr/w:titlePg-True] PASSED [ 5%] tests/test_section.py::DescribeSection::it_knows_when_it_displays_a_distinct_first_page_header[w:sectPr/w:titlePg{w:val=0}-False] PASSED [ 5%] tests/test_section.py::DescribeSection::it_knows_when_it_displays_a_distinct_first_page_header[w:sectPr/w:titlePg{w:val=1}-True] PASSED [ 5%] tests/test_section.py::DescribeSection::it_knows_when_it_displays_a_distinct_first_page_header[w:sectPr/w:titlePg{w:val=true}-True] PASSED [ 5%] tests/test_section.py::DescribeSection::it_can_change_whether_the_document_has_distinct_odd_and_even_headers[w:sectPr-True-w:sectPr/w:titlePg] PASSED [ 5%] tests/test_section.py::DescribeSection::it_can_change_whether_the_document_has_distinct_odd_and_even_headers[w:sectPr/w:titlePg-False-w:sectPr] PASSED [ 5%] tests/test_section.py::DescribeSection::it_can_change_whether_the_document_has_distinct_odd_and_even_headers[w:sectPr/w:titlePg{w:val=1}-True-w:sectPr/w:titlePg] PASSED [ 5%] tests/test_section.py::DescribeSection::it_can_change_whether_the_document_has_distinct_odd_and_even_headers[w:sectPr/w:titlePg{w:val=off}-False-w:sectPr] PASSED [ 5%] tests/test_section.py::DescribeSection::it_provides_access_to_its_even_page_footer PASSED [ 5%] tests/test_section.py::DescribeSection::it_provides_access_to_its_even_page_header PASSED [ 5%] tests/test_section.py::DescribeSection::it_provides_access_to_its_first_page_footer PASSED [ 5%] tests/test_section.py::DescribeSection::it_provides_access_to_its_first_page_header PASSED [ 5%] tests/test_section.py::DescribeSection::it_provides_access_to_its_default_footer PASSED [ 5%] tests/test_section.py::DescribeSection::it_provides_access_to_its_default_header PASSED [ 5%] tests/test_section.py::DescribeSection::it_can_iterate_its_inner_content PASSED [ 6%] tests/test_section.py::DescribeSection::it_knows_its_start_type[w:sectPr-NEW_PAGE (2)] PASSED [ 6%] tests/test_section.py::DescribeSection::it_knows_its_start_type[w:sectPr/w:type-NEW_PAGE (2)] PASSED [ 6%] tests/test_section.py::DescribeSection::it_knows_its_start_type[w:sectPr/w:type{w:val=continuous}-CONTINUOUS (0)] PASSED [ 6%] tests/test_section.py::DescribeSection::it_knows_its_start_type[w:sectPr/w:type{w:val=nextPage}-NEW_PAGE (2)] PASSED [ 6%] tests/test_section.py::DescribeSection::it_knows_its_start_type[w:sectPr/w:type{w:val=oddPage}-ODD_PAGE (4)] PASSED [ 6%] tests/test_section.py::DescribeSection::it_knows_its_start_type[w:sectPr/w:type{w:val=evenPage}-EVEN_PAGE (3)] PASSED [ 6%] tests/test_section.py::DescribeSection::it_knows_its_start_type[w:sectPr/w:type{w:val=nextColumn}-NEW_COLUMN (1)] PASSED [ 6%] tests/test_section.py::DescribeSection::it_can_change_its_start_type[w:sectPr/w:type{w:val=oddPage}-EVEN_PAGE (3)-w:sectPr/w:type{w:val=evenPage}] PASSED [ 6%] tests/test_section.py::DescribeSection::it_can_change_its_start_type[w:sectPr/w:type{w:val=nextPage}-None-w:sectPr] PASSED [ 6%] tests/test_section.py::DescribeSection::it_can_change_its_start_type[w:sectPr-None-w:sectPr] PASSED [ 6%] tests/test_section.py::DescribeSection::it_can_change_its_start_type[w:sectPr/w:type{w:val=continuous}-NEW_PAGE (2)-w:sectPr] PASSED [ 6%] tests/test_section.py::DescribeSection::it_can_change_its_start_type[w:sectPr/w:type-NEW_PAGE (2)-w:sectPr] PASSED [ 6%] tests/test_section.py::DescribeSection::it_can_change_its_start_type[w:sectPr/w:type-NEW_COLUMN (1)-w:sectPr/w:type{w:val=nextColumn}] PASSED [ 6%] tests/test_section.py::DescribeSection::it_knows_its_page_width[w:sectPr/w:pgSz{w:w=1440}-914400] PASSED [ 6%] tests/test_section.py::DescribeSection::it_knows_its_page_width[w:sectPr/w:pgSz-None] PASSED [ 6%] tests/test_section.py::DescribeSection::it_knows_its_page_width[w:sectPr-None] PASSED [ 7%] tests/test_section.py::DescribeSection::it_can_change_its_page_width[None-w:sectPr/w:pgSz] PASSED [ 7%] tests/test_section.py::DescribeSection::it_can_change_its_page_width[3657600-w:sectPr/w:pgSz{w:w=5760}] PASSED [ 7%] tests/test_section.py::DescribeSection::it_knows_its_page_height[w:sectPr/w:pgSz{w:h=2880}-1828800] PASSED [ 7%] tests/test_section.py::DescribeSection::it_knows_its_page_height[w:sectPr/w:pgSz-None] PASSED [ 7%] tests/test_section.py::DescribeSection::it_knows_its_page_height[w:sectPr-None] PASSED [ 7%] tests/test_section.py::DescribeSection::it_can_change_its_page_height[None-w:sectPr/w:pgSz] PASSED [ 7%] tests/test_section.py::DescribeSection::it_can_change_its_page_height[1828800-w:sectPr/w:pgSz{w:h=2880}] PASSED [ 7%] tests/test_section.py::DescribeSection::it_knows_its_page_orientation[w:sectPr/w:pgSz{w:orient=landscape}-LANDSCAPE (1)] PASSED [ 7%] tests/test_section.py::DescribeSection::it_knows_its_page_orientation[w:sectPr/w:pgSz{w:orient=portrait}-PORTRAIT (0)] PASSED [ 7%] tests/test_section.py::DescribeSection::it_knows_its_page_orientation[w:sectPr/w:pgSz-PORTRAIT (0)] PASSED [ 7%] tests/test_section.py::DescribeSection::it_knows_its_page_orientation[w:sectPr-PORTRAIT (0)] PASSED [ 7%] tests/test_section.py::DescribeSection::it_can_change_its_orientation[LANDSCAPE (1)-w:sectPr/w:pgSz{w:orient=landscape}] PASSED [ 7%] tests/test_section.py::DescribeSection::it_can_change_its_orientation[PORTRAIT (0)-w:sectPr/w:pgSz] PASSED [ 7%] tests/test_section.py::DescribeSection::it_can_change_its_orientation[None-w:sectPr/w:pgSz] PASSED [ 7%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar{w:left=120}-left_margin-76200] PASSED [ 7%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar{w:right=240}-right_margin-152400] PASSED [ 8%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar{w:top=-360}-top_margin--228600] PASSED [ 8%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar{w:bottom=480}-bottom_margin-304800] PASSED [ 8%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar{w:gutter=600}-gutter-381000] PASSED [ 8%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar{w:header=720}-header_distance-457200] PASSED [ 8%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar{w:footer=840}-footer_distance-533400] PASSED [ 8%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar-left_margin-None] PASSED [ 8%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr-top_margin-None] PASSED [ 8%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-left_margin-914400-w:sectPr/w:pgMar{w:left=1440}] PASSED [ 8%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-right_margin-457200-w:sectPr/w:pgMar{w:right=720}] PASSED [ 8%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-top_margin--228600-w:sectPr/w:pgMar{w:top=-360}] PASSED [ 8%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-bottom_margin-685800-w:sectPr/w:pgMar{w:bottom=1080}] PASSED [ 8%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-gutter-228600-w:sectPr/w:pgMar{w:gutter=360}] PASSED [ 8%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-header_distance-1143000-w:sectPr/w:pgMar{w:header=1800}] PASSED [ 8%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-footer_distance-1234440-w:sectPr/w:pgMar{w:footer=1944}] PASSED [ 8%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-left_margin-None-w:sectPr/w:pgMar] PASSED [ 9%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr/w:pgMar{w:top=-360}-top_margin-548640-w:sectPr/w:pgMar{w:top=864}] PASSED [ 9%] tests/test_section.py::Describe_BaseHeaderFooter::it_knows_when_its_linked_to_the_previous_header_or_footer[False-True] PASSED [ 9%] tests/test_section.py::Describe_BaseHeaderFooter::it_knows_when_its_linked_to_the_previous_header_or_footer[True-False] PASSED [ 9%] tests/test_section.py::Describe_BaseHeaderFooter::it_can_change_whether_it_is_linked_to_previous_header_or_footer[False-True-0-0] PASSED [ 9%] tests/test_section.py::Describe_BaseHeaderFooter::it_can_change_whether_it_is_linked_to_previous_header_or_footer[True-False-0-0] PASSED [ 9%] tests/test_section.py::Describe_BaseHeaderFooter::it_can_change_whether_it_is_linked_to_previous_header_or_footer[True-True-1-0] PASSED [ 9%] tests/test_section.py::Describe_BaseHeaderFooter::it_can_change_whether_it_is_linked_to_previous_header_or_footer[False-False-0-1] PASSED [ 9%] tests/test_section.py::Describe_BaseHeaderFooter::it_provides_access_to_the_header_or_footer_part_for_BlockItemContainer PASSED [ 9%] tests/test_section.py::Describe_BaseHeaderFooter::it_provides_access_to_the_hdr_or_ftr_element_to_help PASSED [ 9%] tests/test_section.py::Describe_BaseHeaderFooter::it_gets_the_definition_when_it_has_one PASSED [ 9%] tests/test_section.py::Describe_BaseHeaderFooter::but_it_gets_the_prior_definition_when_it_is_linked PASSED [ 9%] tests/test_section.py::Describe_BaseHeaderFooter::and_it_adds_a_definition_when_it_is_linked_and_the_first_section PASSED [ 9%] tests/test_section.py::Describe_Footer::it_can_add_a_footer_part_to_help PASSED [ 9%] tests/test_section.py::Describe_Footer::it_provides_access_to_its_footer_part_to_help PASSED [ 9%] tests/test_section.py::Describe_Footer::it_can_drop_the_related_footer_part_to_help PASSED [ 9%] tests/test_section.py::Describe_Footer::it_knows_when_it_has_a_definition_to_help[w:sectPr-False] PASSED [ 10%] tests/test_section.py::Describe_Footer::it_knows_when_it_has_a_definition_to_help[w:sectPr/w:footerReference{w:type=default}-True] PASSED [ 10%] tests/test_section.py::Describe_Footer::it_provides_access_to_the_prior_Footer_to_help PASSED [ 10%] tests/test_section.py::Describe_Footer::but_it_returns_None_when_its_the_first_footer PASSED [ 10%] tests/test_section.py::Describe_Header::it_can_add_a_header_part_to_help PASSED [ 10%] tests/test_section.py::Describe_Header::it_provides_access_to_its_header_part_to_help PASSED [ 10%] tests/test_section.py::Describe_Header::it_can_drop_the_related_header_part_to_help PASSED [ 10%] tests/test_section.py::Describe_Header::it_knows_when_it_has_a_header_part_to_help[w:sectPr-False] PASSED [ 10%] tests/test_section.py::Describe_Header::it_knows_when_it_has_a_header_part_to_help[w:sectPr/w:headerReference{w:type=first}-True] PASSED [ 10%] tests/test_section.py::Describe_Header::it_provides_access_to_the_prior_Header_to_help PASSED [ 10%] tests/test_section.py::Describe_Header::but_it_returns_None_when_its_the_first_header PASSED [ 10%] tests/test_settings.py::DescribeSettings::it_knows_when_the_document_has_distinct_odd_and_even_headers[odd_and_even_get_fixture0] PASSED [ 10%] tests/test_settings.py::DescribeSettings::it_knows_when_the_document_has_distinct_odd_and_even_headers[odd_and_even_get_fixture1] PASSED [ 10%] tests/test_settings.py::DescribeSettings::it_knows_when_the_document_has_distinct_odd_and_even_headers[odd_and_even_get_fixture2] PASSED [ 10%] tests/test_settings.py::DescribeSettings::it_knows_when_the_document_has_distinct_odd_and_even_headers[odd_and_even_get_fixture3] PASSED [ 10%] tests/test_settings.py::DescribeSettings::it_knows_when_the_document_has_distinct_odd_and_even_headers[odd_and_even_get_fixture4] PASSED [ 10%] tests/test_settings.py::DescribeSettings::it_can_change_whether_the_document_has_distinct_odd_and_even_headers[odd_and_even_set_fixture0] PASSED [ 11%] tests/test_settings.py::DescribeSettings::it_can_change_whether_the_document_has_distinct_odd_and_even_headers[odd_and_even_set_fixture1] PASSED [ 11%] tests/test_settings.py::DescribeSettings::it_can_change_whether_the_document_has_distinct_odd_and_even_headers[odd_and_even_set_fixture2] PASSED [ 11%] tests/test_settings.py::DescribeSettings::it_can_change_whether_the_document_has_distinct_odd_and_even_headers[odd_and_even_set_fixture3] PASSED [ 11%] tests/test_shape.py::DescribeInlineShapes::it_knows_how_many_inline_shapes_it_contains PASSED [ 11%] tests/test_shape.py::DescribeInlineShapes::it_can_iterate_over_its_InlineShape_instances PASSED [ 11%] tests/test_shape.py::DescribeInlineShapes::it_provides_indexed_access_to_inline_shapes PASSED [ 11%] tests/test_shape.py::DescribeInlineShapes::it_raises_on_indexed_access_out_of_range PASSED [ 11%] tests/test_shape.py::DescribeInlineShapes::it_knows_the_part_it_belongs_to PASSED [ 11%] tests/test_shape.py::DescribeInlineShape::it_knows_what_type_of_shape_it_is[embed pic] PASSED [ 11%] tests/test_shape.py::DescribeInlineShape::it_knows_what_type_of_shape_it_is[link pic] PASSED [ 11%] tests/test_shape.py::DescribeInlineShape::it_knows_what_type_of_shape_it_is[link+embed pic] PASSED [ 11%] tests/test_shape.py::DescribeInlineShape::it_knows_what_type_of_shape_it_is[chart] PASSED [ 11%] tests/test_shape.py::DescribeInlineShape::it_knows_what_type_of_shape_it_is[smart art] PASSED [ 11%] tests/test_shape.py::DescribeInlineShape::it_knows_what_type_of_shape_it_is[not implemented] PASSED [ 11%] tests/test_shape.py::DescribeInlineShape::it_knows_its_display_dimensions PASSED [ 12%] tests/test_shape.py::DescribeInlineShape::it_can_change_its_display_dimensions PASSED [ 12%] tests/test_shared.py::DescribeElementProxy::it_knows_when_its_equal_to_another_proxy_object PASSED [ 12%] tests/test_shared.py::DescribeElementProxy::it_knows_its_element PASSED [ 12%] tests/test_shared.py::DescribeElementProxy::it_knows_its_part PASSED [ 12%] tests/test_shared.py::DescribeLength::it_can_construct_from_convenient_units[construct_fixture0] PASSED [ 12%] tests/test_shared.py::DescribeLength::it_can_construct_from_convenient_units[construct_fixture1] PASSED [ 12%] tests/test_shared.py::DescribeLength::it_can_construct_from_convenient_units[construct_fixture2] PASSED [ 12%] tests/test_shared.py::DescribeLength::it_can_construct_from_convenient_units[construct_fixture3] PASSED [ 12%] tests/test_shared.py::DescribeLength::it_can_construct_from_convenient_units[construct_fixture4] PASSED [ 12%] tests/test_shared.py::DescribeLength::it_can_construct_from_convenient_units[construct_fixture5] PASSED [ 12%] tests/test_shared.py::DescribeLength::it_can_construct_from_convenient_units[construct_fixture6] PASSED [ 12%] tests/test_shared.py::DescribeLength::it_can_self_convert_to_convenient_units[units_fixture0] PASSED [ 12%] tests/test_shared.py::DescribeLength::it_can_self_convert_to_convenient_units[units_fixture1] PASSED [ 12%] tests/test_shared.py::DescribeLength::it_can_self_convert_to_convenient_units[units_fixture2] PASSED [ 12%] tests/test_shared.py::DescribeLength::it_can_self_convert_to_convenient_units[units_fixture3] PASSED [ 12%] tests/test_shared.py::DescribeLength::it_can_self_convert_to_convenient_units[units_fixture4] PASSED [ 13%] tests/test_shared.py::DescribeLength::it_can_self_convert_to_convenient_units[units_fixture5] PASSED [ 13%] tests/test_shared.py::DescribeRGBColor::it_is_natively_constructed_using_three_ints_0_to_255 PASSED [ 13%] tests/test_shared.py::DescribeRGBColor::it_can_construct_from_a_hex_string_rgb_value PASSED [ 13%] tests/test_shared.py::DescribeRGBColor::it_can_provide_a_hex_string_rgb_value PASSED [ 13%] tests/test_shared.py::DescribeRGBColor::it_has_a_custom_repr PASSED [ 13%] tests/test_table.py::DescribeTable::it_can_add_a_row PASSED [ 13%] tests/test_table.py::DescribeTable::it_can_add_a_column PASSED [ 13%] tests/test_table.py::DescribeTable::it_provides_access_to_a_cell_by_row_and_col_indices PASSED [ 13%] tests/test_table.py::DescribeTable::it_provides_access_to_the_table_rows PASSED [ 13%] tests/test_table.py::DescribeTable::it_provides_access_to_the_table_columns PASSED [ 13%] tests/test_table.py::DescribeTable::it_provides_access_to_the_cells_in_a_column PASSED [ 13%] tests/test_table.py::DescribeTable::it_provides_access_to_the_cells_in_a_row PASSED [ 13%] tests/test_table.py::DescribeTable::it_knows_its_alignment_setting[w:tbl/w:tblPr-None] PASSED [ 13%] tests/test_table.py::DescribeTable::it_knows_its_alignment_setting[w:tbl/w:tblPr/w:jc{w:val=center}-CENTER (1)] PASSED [ 13%] tests/test_table.py::DescribeTable::it_knows_its_alignment_setting[w:tbl/w:tblPr/w:jc{w:val=right}-RIGHT (2)] PASSED [ 13%] tests/test_table.py::DescribeTable::it_knows_its_alignment_setting[w:tbl/w:tblPr/w:jc{w:val=left}-LEFT (0)] PASSED [ 14%] tests/test_table.py::DescribeTable::it_can_change_its_alignment_setting[w:tbl/w:tblPr-LEFT (0)-w:tbl/w:tblPr/w:jc{w:val=left}] PASSED [ 14%] tests/test_table.py::DescribeTable::it_can_change_its_alignment_setting[w:tbl/w:tblPr/w:jc{w:val=left}-RIGHT (2)-w:tbl/w:tblPr/w:jc{w:val=right}] PASSED [ 14%] tests/test_table.py::DescribeTable::it_can_change_its_alignment_setting[w:tbl/w:tblPr/w:jc{w:val=right}-None-w:tbl/w:tblPr] PASSED [ 14%] tests/test_table.py::DescribeTable::it_knows_whether_it_should_autofit[w:tbl/w:tblPr-True] PASSED [ 14%] tests/test_table.py::DescribeTable::it_knows_whether_it_should_autofit[w:tbl/w:tblPr/w:tblLayout-True] PASSED [ 14%] tests/test_table.py::DescribeTable::it_knows_whether_it_should_autofit[w:tbl/w:tblPr/w:tblLayout{w:type=autofit}-True] PASSED [ 14%] tests/test_table.py::DescribeTable::it_knows_whether_it_should_autofit[w:tbl/w:tblPr/w:tblLayout{w:type=fixed}-False] PASSED [ 14%] tests/test_table.py::DescribeTable::it_can_change_its_autofit_setting[w:tbl/w:tblPr-True-w:tbl/w:tblPr/w:tblLayout{w:type=autofit}] PASSED [ 14%] tests/test_table.py::DescribeTable::it_can_change_its_autofit_setting[w:tbl/w:tblPr-False-w:tbl/w:tblPr/w:tblLayout{w:type=fixed}] PASSED [ 14%] tests/test_table.py::DescribeTable::it_can_change_its_autofit_setting[w:tbl/w:tblPr/w:tblLayout{w:type=fixed}-True-w:tbl/w:tblPr/w:tblLayout{w:type=autofit}] PASSED [ 14%] tests/test_table.py::DescribeTable::it_can_change_its_autofit_setting[w:tbl/w:tblPr/w:tblLayout{w:type=autofit}-False-w:tbl/w:tblPr/w:tblLayout{w:type=fixed}] PASSED [ 14%] tests/test_table.py::DescribeTable::it_knows_it_is_the_table_its_children_belong_to PASSED [ 14%] tests/test_table.py::DescribeTable::it_knows_its_direction[w:tbl/w:tblPr-None] PASSED [ 14%] tests/test_table.py::DescribeTable::it_knows_its_direction[w:tbl/w:tblPr/w:bidiVisual-RTL (1)] PASSED [ 14%] tests/test_table.py::DescribeTable::it_knows_its_direction[w:tbl/w:tblPr/w:bidiVisual{w:val=0}-LTR (0)] PASSED [ 15%] tests/test_table.py::DescribeTable::it_knows_its_direction[w:tbl/w:tblPr/w:bidiVisual{w:val=on}-RTL (1)] PASSED [ 15%] tests/test_table.py::DescribeTable::it_can_change_its_direction[w:tbl/w:tblPr-RTL (1)-w:tbl/w:tblPr/w:bidiVisual] PASSED [ 15%] tests/test_table.py::DescribeTable::it_can_change_its_direction[w:tbl/w:tblPr/w:bidiVisual-LTR (0)-w:tbl/w:tblPr/w:bidiVisual{w:val=0}] PASSED [ 15%] tests/test_table.py::DescribeTable::it_can_change_its_direction[w:tbl/w:tblPr/w:bidiVisual{w:val=0}-RTL (1)-w:tbl/w:tblPr/w:bidiVisual] PASSED [ 15%] tests/test_table.py::DescribeTable::it_can_change_its_direction[w:tbl/w:tblPr/w:bidiVisual{w:val=1}-None-w:tbl/w:tblPr] PASSED [ 15%] tests/test_table.py::DescribeTable::it_knows_its_table_style PASSED [ 15%] tests/test_table.py::DescribeTable::it_can_change_its_table_style[w:tbl/w:tblPr-Tbl A-TblA-w:tbl/w:tblPr/w:tblStyle{w:val=TblA}] PASSED [ 15%] tests/test_table.py::DescribeTable::it_can_change_its_table_style[w:tbl/w:tblPr/w:tblStyle{w:val=TblA}-Tbl B-TblB-w:tbl/w:tblPr/w:tblStyle{w:val=TblB}] PASSED [ 15%] tests/test_table.py::DescribeTable::it_can_change_its_table_style[w:tbl/w:tblPr/w:tblStyle{w:val=TblB}-None-None-w:tbl/w:tblPr] PASSED [ 15%] tests/test_table.py::DescribeTable::it_provides_access_to_its_cells_to_help[0-9-9-matches0] PASSED [ 15%] tests/test_table.py::DescribeTable::it_provides_access_to_its_cells_to_help[1-9-8-matches1] PASSED [ 15%] tests/test_table.py::DescribeTable::it_provides_access_to_its_cells_to_help[2-9-8-matches2] PASSED [ 15%] tests/test_table.py::DescribeTable::it_provides_access_to_its_cells_to_help[3-9-6-matches3] PASSED [ 15%] tests/test_table.py::DescribeTable::it_provides_access_to_its_cells_to_help[4-9-4-matches4] PASSED [ 15%] tests/test_table.py::DescribeTable::it_knows_its_column_count_to_help PASSED [ 15%] tests/test_table.py::Describe_Cell::it_knows_its_grid_span[w:tc-1] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_knows_its_grid_span[w:tc/w:tcPr-1] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_knows_its_grid_span[w:tc/w:tcPr/w:gridSpan{w:val=1}-1] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_knows_its_grid_span[w:tc/w:tcPr/w:gridSpan{w:val=4}-4] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_knows_what_text_it_contains[w:tc-] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_knows_what_text_it_contains[w:tc/w:p/w:r/w:t"foobar"-foobar] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_knows_what_text_it_contains[w:tc/(w:p/w:r/w:t"foo",w:p/w:r/w:t"bar")-foo\nbar] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_knows_what_text_it_contains[w:tc/(w:tcPr,w:p/w:r/w:t"foobar")-foobar] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_knows_what_text_it_contains[w:tc/w:p/w:r/(w:t"fo",w:tab,w:t"ob",w:br,w:t"ar",w:br)-fo\tob\nar\n] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_can_replace_its_content_with_a_string_of_text[w:tc/w:p-foobar-w:tc/w:p/w:r/w:t"foobar"] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_can_replace_its_content_with_a_string_of_text[w:tc/w:p-fo\tob\rar\n-w:tc/w:p/w:r/(w:t"fo",w:tab,w:t"ob",w:br,w:t"ar",w:br)] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_can_replace_its_content_with_a_string_of_text[w:tc/(w:tcPr, w:p, w:tbl, w:p)-foobar-w:tc/(w:tcPr, w:p/w:r/w:t"foobar")] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_knows_its_vertical_alignment[w:tc-None] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_knows_its_vertical_alignment[w:tc/w:tcPr-None] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_knows_its_vertical_alignment[w:tc/w:tcPr/w:vAlign{w:val=bottom}-BOTTOM (3)] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_knows_its_vertical_alignment[w:tc/w:tcPr/w:vAlign{w:val=top}-TOP (0)] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_can_change_its_vertical_alignment[w:tc-TOP (0)-w:tc/w:tcPr/w:vAlign{w:val=top}] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_can_change_its_vertical_alignment[w:tc/w:tcPr-CENTER (1)-w:tc/w:tcPr/w:vAlign{w:val=center}] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_can_change_its_vertical_alignment[w:tc/w:tcPr/w:vAlign{w:val=center}-BOTTOM (3)-w:tc/w:tcPr/w:vAlign{w:val=bottom}] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_can_change_its_vertical_alignment[w:tc/w:tcPr/w:vAlign{w:val=center}-None-w:tc/w:tcPr] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_can_change_its_vertical_alignment[w:tc-None-w:tc/w:tcPr] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_can_change_its_vertical_alignment[w:tc/w:tcPr-None-w:tc/w:tcPr] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_knows_its_width_in_EMU[w:tc-None] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_knows_its_width_in_EMU[w:tc/w:tcPr-None] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_knows_its_width_in_EMU[w:tc/w:tcPr/w:tcW{w:w=25%,w:type=pct}-None] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_knows_its_width_in_EMU[w:tc/w:tcPr/w:tcW{w:w=1440,w:type=dxa}-914400] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_can_change_its_width[w:tc-914400-w:tc/w:tcPr/w:tcW{w:w=1440,w:type=dxa}] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_can_change_its_width[w:tc/w:tcPr/w:tcW{w:w=25%,w:type=pct}-1828800-w:tc/w:tcPr/w:tcW{w:w=2880,w:type=dxa}] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_provides_access_to_the_paragraphs_it_contains PASSED [ 17%] tests/test_table.py::Describe_Cell::it_provides_access_to_the_tables_it_contains[w:tc-0] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_provides_access_to_the_tables_it_contains[w:tc/w:tbl-1] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_provides_access_to_the_tables_it_contains[w:tc/(w:tbl,w:tbl)-2] PASSED [ 18%] tests/test_table.py::Describe_Cell::it_provides_access_to_the_tables_it_contains[w:tc/(w:p,w:tbl)-1] PASSED [ 18%] tests/test_table.py::Describe_Cell::it_provides_access_to_the_tables_it_contains[w:tc/(w:tbl,w:tbl,w:p)-2] PASSED [ 18%] tests/test_table.py::Describe_Cell::it_can_add_a_paragraph[w:tc-w:tc/w:p] PASSED [ 18%] tests/test_table.py::Describe_Cell::it_can_add_a_paragraph[w:tc/w:p-w:tc/(w:p, w:p)] PASSED [ 18%] tests/test_table.py::Describe_Cell::it_can_add_a_paragraph[w:tc/w:tbl-w:tc/(w:tbl, w:p)] PASSED [ 18%] tests/test_table.py::Describe_Cell::it_can_add_a_table PASSED [ 18%] tests/test_table.py::Describe_Cell::it_can_merge_itself_with_other_cells PASSED [ 18%] tests/test_table.py::Describe_Column::it_provides_access_to_its_cells PASSED [ 18%] tests/test_table.py::Describe_Column::it_provides_access_to_the_table_it_belongs_to PASSED [ 18%] tests/test_table.py::Describe_Column::it_knows_its_width_in_EMU[w:gridCol{w:w=4242}-2693670] PASSED [ 18%] tests/test_table.py::Describe_Column::it_knows_its_width_in_EMU[w:gridCol{w:w=1440}-914400] PASSED [ 18%] tests/test_table.py::Describe_Column::it_knows_its_width_in_EMU[w:gridCol{w:w=2.54cm}-914400] PASSED [ 18%] tests/test_table.py::Describe_Column::it_knows_its_width_in_EMU[w:gridCol{w:w=54mm}-1944000] PASSED [ 18%] tests/test_table.py::Describe_Column::it_knows_its_width_in_EMU[w:gridCol{w:w=12.5pt}-158750] PASSED [ 18%] tests/test_table.py::Describe_Column::it_knows_its_width_in_EMU[w:gridCol-None] PASSED [ 18%] tests/test_table.py::Describe_Column::it_can_change_its_width[w:gridCol-914400-w:gridCol{w:w=1440}] PASSED [ 19%] tests/test_table.py::Describe_Column::it_can_change_its_width[w:gridCol{w:w=4242}-457200-w:gridCol{w:w=720}] PASSED [ 19%] tests/test_table.py::Describe_Column::it_can_change_its_width[w:gridCol{w:w=4242}-None-w:gridCol] PASSED [ 19%] tests/test_table.py::Describe_Column::it_can_change_its_width[w:gridCol-None-w:gridCol] PASSED [ 19%] tests/test_table.py::Describe_Column::it_knows_its_index_in_table_to_help PASSED [ 19%] tests/test_table.py::Describe_Columns::it_has_sequence_behaviors PASSED [ 19%] tests/test_table.py::Describe_Columns::it_raises_on_indexed_access_out_of_range PASSED [ 19%] tests/test_table.py::Describe_Columns::it_provides_access_to_the_table_it_belongs_to PASSED [ 19%] tests/test_table.py::Describe_Row::it_knows_its_grid_cols_after[w:tr-0] PASSED [ 19%] tests/test_table.py::Describe_Row::it_knows_its_grid_cols_after[w:tr/w:trPr-0] PASSED [ 19%] tests/test_table.py::Describe_Row::it_knows_its_grid_cols_after[w:tr/w:trPr/w:gridAfter{w:val=0}-0] PASSED [ 19%] tests/test_table.py::Describe_Row::it_knows_its_grid_cols_after[w:tr/w:trPr/w:gridAfter{w:val=4}-4] PASSED [ 19%] tests/test_table.py::Describe_Row::it_knows_its_grid_cols_before[w:tr-0] PASSED [ 19%] tests/test_table.py::Describe_Row::it_knows_its_grid_cols_before[w:tr/w:trPr-0] PASSED [ 19%] tests/test_table.py::Describe_Row::it_knows_its_grid_cols_before[w:tr/w:trPr/w:gridBefore{w:val=0}-0] PASSED [ 19%] tests/test_table.py::Describe_Row::it_knows_its_grid_cols_before[w:tr/w:trPr/w:gridBefore{w:val=3}-3] PASSED [ 19%] tests/test_table.py::Describe_Row::it_knows_its_height[w:tr-None] PASSED [ 20%] tests/test_table.py::Describe_Row::it_knows_its_height[w:tr/w:trPr-None] PASSED [ 20%] tests/test_table.py::Describe_Row::it_knows_its_height[w:tr/w:trPr/w:trHeight-None] PASSED [ 20%] tests/test_table.py::Describe_Row::it_knows_its_height[w:tr/w:trPr/w:trHeight{w:val=0}-0] PASSED [ 20%] tests/test_table.py::Describe_Row::it_knows_its_height[w:tr/w:trPr/w:trHeight{w:val=1440}-914400] PASSED [ 20%] tests/test_table.py::Describe_Row::it_can_change_its_height[w:tr-914400-w:tr/w:trPr/w:trHeight{w:val=1440}] PASSED [ 20%] tests/test_table.py::Describe_Row::it_can_change_its_height[w:tr/w:trPr-914400-w:tr/w:trPr/w:trHeight{w:val=1440}] PASSED [ 20%] tests/test_table.py::Describe_Row::it_can_change_its_height[w:tr/w:trPr/w:trHeight-914400-w:tr/w:trPr/w:trHeight{w:val=1440}] PASSED [ 20%] tests/test_table.py::Describe_Row::it_can_change_its_height[w:tr/w:trPr/w:trHeight{w:val=1440}-1828800-w:tr/w:trPr/w:trHeight{w:val=2880}] PASSED [ 20%] tests/test_table.py::Describe_Row::it_can_change_its_height[w:tr/w:trPr/w:trHeight{w:val=2880}-None-w:tr/w:trPr/w:trHeight] PASSED [ 20%] tests/test_table.py::Describe_Row::it_can_change_its_height[w:tr-None-w:tr/w:trPr] PASSED [ 20%] tests/test_table.py::Describe_Row::it_can_change_its_height[w:tr/w:trPr-None-w:tr/w:trPr] PASSED [ 20%] tests/test_table.py::Describe_Row::it_can_change_its_height[w:tr/w:trPr/w:trHeight-None-w:tr/w:trPr/w:trHeight] PASSED [ 20%] tests/test_table.py::Describe_Row::it_knows_its_height_rule[w:tr-None] PASSED [ 20%] tests/test_table.py::Describe_Row::it_knows_its_height_rule[w:tr/w:trPr-None] PASSED [ 20%] tests/test_table.py::Describe_Row::it_knows_its_height_rule[w:tr/w:trPr/w:trHeight{w:val=0, w:hRule=auto}-AUTO (0)] PASSED [ 21%] tests/test_table.py::Describe_Row::it_knows_its_height_rule[w:tr/w:trPr/w:trHeight{w:val=1440, w:hRule=atLeast}-AT_LEAST (1)] PASSED [ 21%] tests/test_table.py::Describe_Row::it_knows_its_height_rule[w:tr/w:trPr/w:trHeight{w:val=2880, w:hRule=exact}-EXACTLY (2)] PASSED [ 21%] tests/test_table.py::Describe_Row::it_can_change_its_height_rule[w:tr-AUTO (0)-w:tr/w:trPr/w:trHeight{w:hRule=auto}] PASSED [ 21%] tests/test_table.py::Describe_Row::it_can_change_its_height_rule[w:tr/w:trPr-AT_LEAST (1)-w:tr/w:trPr/w:trHeight{w:hRule=atLeast}] PASSED [ 21%] tests/test_table.py::Describe_Row::it_can_change_its_height_rule[w:tr/w:trPr/w:trHeight-EXACTLY (2)-w:tr/w:trPr/w:trHeight{w:hRule=exact}] PASSED [ 21%] tests/test_table.py::Describe_Row::it_can_change_its_height_rule[w:tr/w:trPr/w:trHeight{w:val=1440, w:hRule=exact}-AUTO (0)-w:tr/w:trPr/w:trHeight{w:val=1440, w:hRule=auto}] PASSED [ 21%] tests/test_table.py::Describe_Row::it_can_change_its_height_rule[w:tr/w:trPr/w:trHeight{w:val=1440, w:hRule=auto}-None-w:tr/w:trPr/w:trHeight{w:val=1440}] PASSED [ 21%] tests/test_table.py::Describe_Row::it_can_change_its_height_rule[w:tr-None-w:tr/w:trPr] PASSED [ 21%] tests/test_table.py::Describe_Row::it_can_change_its_height_rule[w:tr/w:trPr-None-w:tr/w:trPr] PASSED [ 21%] tests/test_table.py::Describe_Row::it_can_change_its_height_rule[w:tr/w:trPr/w:trHeight-None-w:tr/w:trPr/w:trHeight] PASSED [ 21%] tests/test_table.py::Describe_Row::it_provides_access_to_its_cells[w:tbl/w:tr/w:tc/w:p-0-1] PASSED [ 21%] tests/test_table.py::Describe_Row::it_provides_access_to_its_cells[w:tbl/w:tr/w:tc/(w:tcPr/w:gridSpan{w:val=2},w:p)-0-2] PASSED [ 21%] tests/test_table.py::Describe_Row::it_provides_access_to_its_cells[w:tbl/(w:tr/w:tc/(w:tcPr/w:vMerge{w:val=restart},w:p),w:tr/w:tc/(w:tcPr/w:vMerge,w:p))-1-1] PASSED [ 21%] tests/test_table.py::Describe_Row::it_provides_access_to_its_cells[w:tbl/(w:tr/w:tc/(w:tcPr/(w:gridSpan{w:val=2},w:vMerge{w:val=restart}),w:p),w:tr/w:tc/(w:tcPr/(w:gridSpan{w:val=2},w:vMerge),w:p))-1-2] PASSED [ 21%] tests/test_table.py::Describe_Row::it_provides_access_to_the_table_it_belongs_to PASSED [ 21%] tests/test_table.py::Describe_Row::it_knows_its_index_in_table_to_help PASSED [ 22%] tests/test_table.py::Describe_Rows::it_has_sequence_behaviors[w:tbl-0] PASSED [ 22%] tests/test_table.py::Describe_Rows::it_has_sequence_behaviors[w:tbl/w:tr-1] PASSED [ 22%] tests/test_table.py::Describe_Rows::it_has_sequence_behaviors[w:tbl/(w:tr,w:tr)-2] PASSED [ 22%] tests/test_table.py::Describe_Rows::it_has_sequence_behaviors[w:tbl/(w:tr,w:tr,w:tr)-3] PASSED [ 22%] tests/test_table.py::Describe_Rows::it_raises_on_indexed_access_out_of_range[w:tbl-0] PASSED [ 22%] tests/test_table.py::Describe_Rows::it_raises_on_indexed_access_out_of_range[w:tbl-1] PASSED [ 22%] tests/test_table.py::Describe_Rows::it_raises_on_indexed_access_out_of_range[w:tbl--1] PASSED [ 22%] tests/test_table.py::Describe_Rows::it_raises_on_indexed_access_out_of_range[w:tbl/w:tr-1] PASSED [ 22%] tests/test_table.py::Describe_Rows::it_raises_on_indexed_access_out_of_range[w:tbl/w:tr--2] PASSED [ 22%] tests/test_table.py::Describe_Rows::it_raises_on_indexed_access_out_of_range[w:tbl/(w:tr,w:tr,w:tr)-3] PASSED [ 22%] tests/test_table.py::Describe_Rows::it_raises_on_indexed_access_out_of_range[w:tbl/(w:tr,w:tr,w:tr)--4] PASSED [ 22%] tests/test_table.py::Describe_Rows::it_provides_sliced_access_to_rows[1-3-2] PASSED [ 22%] tests/test_table.py::Describe_Rows::it_provides_sliced_access_to_rows[0--1-2] PASSED [ 22%] tests/test_table.py::Describe_Rows::it_provides_access_to_the_table_it_belongs_to PASSED [ 22%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_color_type[type_fixture0] PASSED [ 22%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_color_type[type_fixture1] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_color_type[type_fixture2] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_color_type[type_fixture3] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_color_type[type_fixture4] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_color_type[type_fixture5] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_RGB_value[rgb_get_fixture0] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_RGB_value[rgb_get_fixture1] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_RGB_value[rgb_get_fixture2] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_RGB_value[rgb_get_fixture3] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_RGB_value[rgb_get_fixture4] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_RGB_value[rgb_get_fixture5] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_RGB_value[rgb_set_fixture0] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_RGB_value[rgb_set_fixture1] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_RGB_value[rgb_set_fixture2] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_RGB_value[rgb_set_fixture3] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_RGB_value[rgb_set_fixture4] PASSED [ 24%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_RGB_value[rgb_set_fixture5] PASSED [ 24%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_RGB_value[rgb_set_fixture6] PASSED [ 24%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_theme_color[theme_color_get_fixture0] PASSED [ 24%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_theme_color[theme_color_get_fixture1] PASSED [ 24%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_theme_color[theme_color_get_fixture2] PASSED [ 24%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_theme_color[theme_color_get_fixture3] PASSED [ 24%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_theme_color[theme_color_get_fixture4] PASSED [ 24%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_theme_color[theme_color_get_fixture5] PASSED [ 24%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_theme_color[theme_color_set_fixture0] PASSED [ 24%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_theme_color[theme_color_set_fixture1] PASSED [ 24%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_theme_color[theme_color_set_fixture2] PASSED [ 24%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_theme_color[theme_color_set_fixture3] PASSED [ 24%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_theme_color[theme_color_set_fixture4] PASSED [ 24%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_theme_color[theme_color_set_fixture5] PASSED [ 24%] tests/image/test_bmp.py::DescribeBmp::it_can_construct_from_a_bmp_stream PASSED [ 24%] tests/image/test_bmp.py::DescribeBmp::it_knows_its_content_type PASSED [ 25%] tests/image/test_bmp.py::DescribeBmp::it_knows_its_default_ext PASSED [ 25%] tests/image/test_gif.py::DescribeGif::it_can_construct_from_a_gif_stream PASSED [ 25%] tests/image/test_gif.py::DescribeGif::it_knows_its_content_type PASSED [ 25%] tests/image/test_gif.py::DescribeGif::it_knows_its_default_ext PASSED [ 25%] tests/image/test_helpers.py::DescribeStreamReader::it_can_read_a_string_of_specified_len_at_offset PASSED [ 25%] tests/image/test_helpers.py::DescribeStreamReader::it_raises_on_unexpected_EOF PASSED [ 25%] tests/image/test_helpers.py::DescribeStreamReader::it_can_read_a_long[read_long_fixture0] PASSED [ 25%] tests/image/test_helpers.py::DescribeStreamReader::it_can_read_a_long[read_long_fixture1] PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_can_construct_from_an_image_blob PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_can_construct_from_an_image_path PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_can_construct_from_an_image_file_like PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_can_construct_from_an_image_stream[foobar.png] PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_can_construct_from_an_image_stream[None] PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_provides_access_to_the_image_blob PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_knows_the_image_content_type PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_knows_the_image_px_dimensions PASSED [ 26%] tests/image/test_image.py::DescribeImage::it_knows_the_horz_and_vert_dpi_of_the_image PASSED [ 26%] tests/image/test_image.py::DescribeImage::it_knows_the_image_native_size PASSED [ 26%] tests/image/test_image.py::DescribeImage::it_can_scale_its_dimensions[scale_fixture0] PASSED [ 26%] tests/image/test_image.py::DescribeImage::it_can_scale_its_dimensions[scale_fixture1] PASSED [ 26%] tests/image/test_image.py::DescribeImage::it_can_scale_its_dimensions[scale_fixture2] PASSED [ 26%] tests/image/test_image.py::DescribeImage::it_can_scale_its_dimensions[scale_fixture3] PASSED [ 26%] tests/image/test_image.py::DescribeImage::it_knows_the_image_filename PASSED [ 26%] tests/image/test_image.py::DescribeImage::it_knows_the_image_filename_extension PASSED [ 26%] tests/image/test_image.py::DescribeImage::it_knows_the_sha1_of_its_image PASSED [ 26%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[0] PASSED [ 26%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[1] PASSED [ 26%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[2] PASSED [ 26%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[3] PASSED [ 26%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[4] PASSED [ 26%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[5] PASSED [ 27%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[6] PASSED [ 27%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[7] PASSED [ 27%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[8] PASSED [ 27%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_constructs_the_right_class_for_a_given_image_stream[call_fixture0] PASSED [ 27%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_constructs_the_right_class_for_a_given_image_stream[call_fixture1] PASSED [ 27%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_constructs_the_right_class_for_a_given_image_stream[call_fixture2] PASSED [ 27%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_constructs_the_right_class_for_a_given_image_stream[call_fixture3] PASSED [ 27%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_constructs_the_right_class_for_a_given_image_stream[call_fixture4] PASSED [ 27%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_constructs_the_right_class_for_a_given_image_stream[call_fixture5] PASSED [ 27%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_constructs_the_right_class_for_a_given_image_stream[call_fixture6] PASSED [ 27%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_raises_on_unrecognized_image_stream PASSED [ 27%] tests/image/test_image.py::DescribeBaseImageHeader::it_defines_content_type_as_an_abstract_property PASSED [ 27%] tests/image/test_image.py::DescribeBaseImageHeader::it_defines_default_ext_as_an_abstract_property PASSED [ 27%] tests/image/test_image.py::DescribeBaseImageHeader::it_knows_the_image_dimensions PASSED [ 27%] tests/image/test_image.py::DescribeBaseImageHeader::it_knows_the_horz_and_vert_dpi_of_the_image PASSED [ 27%] tests/image/test_jpeg.py::DescribeJpeg::it_knows_its_content_type PASSED [ 28%] tests/image/test_jpeg.py::DescribeJpeg::it_knows_its_default_ext PASSED [ 28%] tests/image/test_jpeg.py::DescribeJpeg::DescribeExif::it_can_construct_from_an_exif_stream PASSED [ 28%] tests/image/test_jpeg.py::DescribeJpeg::DescribeJfif::it_can_construct_from_a_jfif_stream PASSED [ 28%] tests/image/test_jpeg.py::Describe_JfifMarkers::it_can_construct_from_a_jfif_stream PASSED [ 28%] tests/image/test_jpeg.py::Describe_JfifMarkers::it_can_find_the_APP0_marker PASSED [ 28%] tests/image/test_jpeg.py::Describe_JfifMarkers::it_can_find_the_APP1_marker PASSED [ 28%] tests/image/test_jpeg.py::Describe_JfifMarkers::it_raises_if_it_cant_find_the_APP0_marker PASSED [ 28%] tests/image/test_jpeg.py::Describe_JfifMarkers::it_raises_if_it_cant_find_the_APP1_marker PASSED [ 28%] tests/image/test_jpeg.py::Describe_JfifMarkers::it_can_find_the_SOF_marker PASSED [ 28%] tests/image/test_jpeg.py::Describe_JfifMarkers::it_raises_if_it_cant_find_the_SOF_marker PASSED [ 28%] tests/image/test_jpeg.py::Describe_Marker::it_can_construct_from_a_stream_and_offset[from_stream_fixture0] PASSED [ 28%] tests/image/test_jpeg.py::Describe_Marker::it_can_construct_from_a_stream_and_offset[from_stream_fixture1] PASSED [ 28%] tests/image/test_jpeg.py::Describe_App0Marker::it_can_construct_from_a_stream_and_offset PASSED [ 28%] tests/image/test_jpeg.py::Describe_App0Marker::it_knows_the_image_dpi[dpi_fixture0] PASSED [ 28%] tests/image/test_jpeg.py::Describe_App0Marker::it_knows_the_image_dpi[dpi_fixture1] PASSED [ 28%] tests/image/test_jpeg.py::Describe_App0Marker::it_knows_the_image_dpi[dpi_fixture2] PASSED [ 29%] tests/image/test_jpeg.py::Describe_App1Marker::it_can_construct_from_a_stream_and_offset PASSED [ 29%] tests/image/test_jpeg.py::Describe_App1Marker::it_can_construct_from_non_Exif_APP1_segment PASSED [ 29%] tests/image/test_jpeg.py::Describe_App1Marker::it_gets_a_tiff_from_its_Exif_segment_to_help_construct PASSED [ 29%] tests/image/test_jpeg.py::Describe_App1Marker::it_knows_the_image_dpi PASSED [ 29%] tests/image/test_jpeg.py::Describe_SofMarker::it_can_construct_from_a_stream_and_offset PASSED [ 29%] tests/image/test_jpeg.py::Describe_SofMarker::it_knows_the_image_width_and_height PASSED [ 29%] tests/image/test_jpeg.py::Describe_MarkerFactory::it_constructs_the_appropriate_marker_object[\xe0] PASSED [ 29%] tests/image/test_jpeg.py::Describe_MarkerFactory::it_constructs_the_appropriate_marker_object[\xe1] PASSED [ 29%] tests/image/test_jpeg.py::Describe_MarkerFactory::it_constructs_the_appropriate_marker_object[\xc0] PASSED [ 29%] tests/image/test_jpeg.py::Describe_MarkerFactory::it_constructs_the_appropriate_marker_object[\xc7] PASSED [ 29%] tests/image/test_jpeg.py::Describe_MarkerFactory::it_constructs_the_appropriate_marker_object[\xda] PASSED [ 29%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_construct_from_a_stream PASSED [ 29%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_find_the_next_marker_after_a_given_offset[next_fixture0] PASSED [ 29%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_find_the_next_marker_after_a_given_offset[next_fixture1] PASSED [ 29%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_find_the_next_marker_after_a_given_offset[next_fixture2] PASSED [ 30%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_find_the_next_marker_after_a_given_offset[next_fixture3] PASSED [ 30%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_find_the_next_marker_after_a_given_offset[next_fixture4] PASSED [ 30%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_find_the_next_marker_after_a_given_offset[next_fixture5] PASSED [ 30%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_find_the_next_marker_after_a_given_offset[next_fixture6] PASSED [ 30%] tests/image/test_jpeg.py::Describe_MarkerParser::it_can_construct_from_a_jfif_stream PASSED [ 30%] tests/image/test_jpeg.py::Describe_MarkerParser::it_can_iterate_over_the_jfif_markers_in_its_stream PASSED [ 30%] tests/image/test_png.py::DescribePng::it_can_construct_from_a_png_stream PASSED [ 30%] tests/image/test_png.py::DescribePng::it_knows_its_content_type PASSED [ 30%] tests/image/test_png.py::DescribePng::it_knows_its_default_ext PASSED [ 30%] tests/image/test_png.py::Describe_PngParser::it_can_parse_the_headers_of_a_PNG_stream PASSED [ 30%] tests/image/test_png.py::Describe_PngParser::it_knows_the_image_width_and_height PASSED [ 30%] tests/image/test_png.py::Describe_PngParser::it_knows_the_image_dpi PASSED [ 30%] tests/image/test_png.py::Describe_PngParser::it_defaults_image_dpi_to_72[no_dpi_fixture0] PASSED [ 30%] tests/image/test_png.py::Describe_PngParser::it_defaults_image_dpi_to_72[no_dpi_fixture1] PASSED [ 30%] tests/image/test_png.py::Describe_PngParser::it_defaults_image_dpi_to_72[no_dpi_fixture2] PASSED [ 30%] tests/image/test_png.py::Describe_PngParser::it_defaults_image_dpi_to_72[no_dpi_fixture3] PASSED [ 31%] tests/image/test_png.py::Describe_PngParser::it_defaults_image_dpi_to_72[no_dpi_fixture4] PASSED [ 31%] tests/image/test_png.py::Describe_Chunks::it_can_construct_from_a_stream PASSED [ 31%] tests/image/test_png.py::Describe_Chunks::it_provides_access_to_the_IHDR_chunk PASSED [ 31%] tests/image/test_png.py::Describe_Chunks::it_provides_access_to_the_pHYs_chunk[True] PASSED [ 31%] tests/image/test_png.py::Describe_Chunks::it_provides_access_to_the_pHYs_chunk[False] PASSED [ 31%] tests/image/test_png.py::Describe_Chunks::it_raises_if_theres_no_IHDR_chunk PASSED [ 31%] tests/image/test_png.py::Describe_ChunkParser::it_can_construct_from_a_stream PASSED [ 31%] tests/image/test_png.py::Describe_ChunkParser::it_can_iterate_over_the_chunks_in_its_png_stream PASSED [ 31%] tests/image/test_png.py::Describe_ChunkParser::it_iterates_over_the_chunk_offsets_to_help_parse PASSED [ 31%] tests/image/test_png.py::Describe_ChunkFactory::it_constructs_the_appropriate_Chunk_subclass[IHDR] PASSED [ 31%] tests/image/test_png.py::Describe_ChunkFactory::it_constructs_the_appropriate_Chunk_subclass[pHYs] PASSED [ 31%] tests/image/test_png.py::Describe_ChunkFactory::it_constructs_the_appropriate_Chunk_subclass[IEND] PASSED [ 31%] tests/image/test_png.py::Describe_Chunk::it_can_construct_from_a_stream_and_offset PASSED [ 31%] tests/image/test_png.py::Describe_IHDRChunk::it_can_construct_from_a_stream_and_offset PASSED [ 31%] tests/image/test_png.py::Describe_pHYsChunk::it_can_construct_from_a_stream_and_offset PASSED [ 31%] tests/image/test_tiff.py::DescribeTiff::it_can_construct_from_a_tiff_stream PASSED [ 32%] tests/image/test_tiff.py::DescribeTiff::it_knows_its_content_type PASSED [ 32%] tests/image/test_tiff.py::DescribeTiff::it_knows_its_default_ext PASSED [ 32%] tests/image/test_tiff.py::Describe_TiffParser::it_can_parse_the_properties_from_a_tiff_stream PASSED [ 32%] tests/image/test_tiff.py::Describe_TiffParser::it_makes_a_stream_reader_to_help_parse[mk_stream_rdr_fixture0] PASSED [ 32%] tests/image/test_tiff.py::Describe_TiffParser::it_makes_a_stream_reader_to_help_parse[mk_stream_rdr_fixture1] PASSED [ 32%] tests/image/test_tiff.py::Describe_TiffParser::it_knows_image_width_and_height_after_parsing PASSED [ 32%] tests/image/test_tiff.py::Describe_TiffParser::it_knows_the_horz_and_vert_dpi_after_parsing[dpi_fixture0] PASSED [ 32%] tests/image/test_tiff.py::Describe_TiffParser::it_knows_the_horz_and_vert_dpi_after_parsing[dpi_fixture1] PASSED [ 32%] tests/image/test_tiff.py::Describe_TiffParser::it_knows_the_horz_and_vert_dpi_after_parsing[dpi_fixture2] PASSED [ 32%] tests/image/test_tiff.py::Describe_TiffParser::it_knows_the_horz_and_vert_dpi_after_parsing[dpi_fixture3] PASSED [ 32%] tests/image/test_tiff.py::Describe_TiffParser::it_knows_the_horz_and_vert_dpi_after_parsing[dpi_fixture4] PASSED [ 32%] tests/image/test_tiff.py::Describe_IfdEntries::it_can_construct_from_a_stream_and_offset PASSED [ 32%] tests/image/test_tiff.py::Describe_IfdEntries::it_has_basic_mapping_semantics PASSED [ 32%] tests/image/test_tiff.py::Describe_IfdParser::it_can_iterate_through_the_directory_entries_in_an_IFD PASSED [ 32%] tests/image/test_tiff.py::Describe_IfdEntryFactory::it_constructs_the_right_class_for_a_given_ifd_entry[fixture0] PASSED [ 33%] tests/image/test_tiff.py::Describe_IfdEntryFactory::it_constructs_the_right_class_for_a_given_ifd_entry[fixture1] PASSED [ 33%] tests/image/test_tiff.py::Describe_IfdEntryFactory::it_constructs_the_right_class_for_a_given_ifd_entry[fixture2] PASSED [ 33%] tests/image/test_tiff.py::Describe_IfdEntryFactory::it_constructs_the_right_class_for_a_given_ifd_entry[fixture3] PASSED [ 33%] tests/image/test_tiff.py::Describe_IfdEntryFactory::it_constructs_the_right_class_for_a_given_ifd_entry[fixture4] PASSED [ 33%] tests/image/test_tiff.py::Describe_IfdEntryFactory::it_constructs_the_right_class_for_a_given_ifd_entry[fixture5] PASSED [ 33%] tests/image/test_tiff.py::Describe_IfdEntry::it_can_construct_from_a_stream_and_offset PASSED [ 33%] tests/image/test_tiff.py::Describe_IfdEntry::it_provides_read_only_access_to_the_directory_entry PASSED [ 33%] tests/image/test_tiff.py::Describe_AsciiIfdEntry::it_can_parse_an_ascii_string_IFD_entry PASSED [ 33%] tests/image/test_tiff.py::Describe_ShortIfdEntry::it_can_parse_a_short_int_IFD_entry PASSED [ 33%] tests/image/test_tiff.py::Describe_LongIfdEntry::it_can_parse_a_long_int_IFD_entry PASSED [ 33%] tests/image/test_tiff.py::Describe_RationalIfdEntry::it_can_parse_a_rational_IFD_entry PASSED [ 33%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[author-python-docx] PASSED [ 33%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[category-] PASSED [ 33%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[comments-] PASSED [ 33%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[content_status-DRAFT] PASSED [ 33%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[identifier-GXS 10.2.1ab] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[keywords-foo bar baz] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[language-US-EN] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[last_modified_by-Steve Canny] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[subject-Spam] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[title-Word Document] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[version-1.2.88] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[author-dc:creator-scanny] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[category-cp:category-silly stories] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[comments-dc:description-Bar foo to you] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[content_status-cp:contentStatus-FINAL] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[identifier-dc:identifier-GT 5.2.xab] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[keywords-cp:keywords-dog cat moo] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[language-dc:language-GB-EN] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[last_modified_by-cp:lastModifiedBy-Billy Bob] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[subject-dc:subject-Eggs] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[title-dc:title-Dissertation] PASSED [ 35%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[version-cp:version-81.2.8] PASSED [ 35%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_date_property_values[created-expected_datetime0] PASSED [ 35%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_date_property_values[last_printed-expected_datetime1] PASSED [ 35%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_date_property_values[modified-None] PASSED [ 35%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_date_property_values[created-dcterms:created-value0-2001-02-03T04:05:00Z- xsi:type="dcterms:W3CDTF"] PASSED [ 35%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_date_property_values[last_printed-cp:lastPrinted-value1-2014-06-04T04:00:00Z-] PASSED [ 35%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_date_property_values[modified-dcterms:modified-value2-2005-04-03T02:01:00Z- xsi:type="dcterms:W3CDTF"] PASSED [ 35%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_revision_number[42-42] PASSED [ 35%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_revision_number[None-0] PASSED [ 35%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_revision_number[foobar-0] PASSED [ 35%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_revision_number[-17-0] PASSED [ 35%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_revision_number[32.7-0] PASSED [ 35%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_revision_number[42-42] PASSED [ 35%] tests/opc/test_oxml.py::DescribeCT_Default::it_provides_read_access_to_xml_values PASSED [ 35%] tests/opc/test_oxml.py::DescribeCT_Default::it_can_construct_a_new_default_element PASSED [ 36%] tests/opc/test_oxml.py::DescribeCT_Override::it_provides_read_access_to_xml_values PASSED [ 36%] tests/opc/test_oxml.py::DescribeCT_Override::it_can_construct_a_new_override_element PASSED [ 36%] tests/opc/test_oxml.py::DescribeCT_Relationship::it_provides_read_access_to_xml_values PASSED [ 36%] tests/opc/test_oxml.py::DescribeCT_Relationship::it_can_construct_from_attribute_values PASSED [ 36%] tests/opc/test_oxml.py::DescribeCT_Relationships::it_can_construct_a_new_relationships_element PASSED [ 36%] tests/opc/test_oxml.py::DescribeCT_Relationships::it_can_build_rels_element_incrementally PASSED [ 36%] tests/opc/test_oxml.py::DescribeCT_Relationships::it_can_generate_rels_file_xml PASSED [ 36%] tests/opc/test_oxml.py::DescribeCT_Types::it_provides_access_to_default_child_elements PASSED [ 36%] tests/opc/test_oxml.py::DescribeCT_Types::it_provides_access_to_override_child_elements PASSED [ 36%] tests/opc/test_oxml.py::DescribeCT_Types::it_should_have_empty_list_on_no_matching_elements PASSED [ 36%] tests/opc/test_oxml.py::DescribeCT_Types::it_can_construct_a_new_types_element PASSED [ 36%] tests/opc/test_oxml.py::DescribeCT_Types::it_can_build_types_element_incrementally PASSED [ 36%] tests/opc/test_package.py::DescribeOpcPackage::it_can_open_a_pkg_file PASSED [ 36%] tests/opc/test_package.py::DescribeOpcPackage::it_initializes_its_rels_collection_on_first_reference PASSED [ 36%] tests/opc/test_package.py::DescribeOpcPackage::it_can_add_a_relationship_to_a_part PASSED [ 36%] tests/opc/test_package.py::DescribeOpcPackage::it_can_establish_a_relationship_to_another_part PASSED [ 37%] tests/opc/test_package.py::DescribeOpcPackage::it_can_provide_a_list_of_the_parts_it_contains PASSED [ 37%] tests/opc/test_package.py::DescribeOpcPackage::it_can_iterate_over_parts_by_walking_rels_graph PASSED [ 37%] tests/opc/test_package.py::DescribeOpcPackage::it_can_find_the_next_available_vector_partname[next_partname_fixture0] PASSED [ 37%] tests/opc/test_package.py::DescribeOpcPackage::it_can_find_the_next_available_vector_partname[next_partname_fixture1] PASSED [ 37%] tests/opc/test_package.py::DescribeOpcPackage::it_can_find_the_next_available_vector_partname[next_partname_fixture2] PASSED [ 37%] tests/opc/test_package.py::DescribeOpcPackage::it_can_find_the_next_available_vector_partname[next_partname_fixture3] PASSED [ 37%] tests/opc/test_package.py::DescribeOpcPackage::it_can_find_the_next_available_vector_partname[next_partname_fixture4] PASSED [ 37%] tests/opc/test_package.py::DescribeOpcPackage::it_can_find_a_part_related_by_reltype PASSED [ 37%] tests/opc/test_package.py::DescribeOpcPackage::it_can_save_to_a_pkg_file PASSED [ 37%] tests/opc/test_package.py::DescribeOpcPackage::it_provides_access_to_the_core_properties PASSED [ 37%] tests/opc/test_package.py::DescribeOpcPackage::it_provides_access_to_the_core_properties_part_to_help PASSED [ 37%] tests/opc/test_package.py::DescribeOpcPackage::it_creates_a_default_core_props_part_if_none_present PASSED [ 37%] tests/opc/test_package.py::DescribeUnmarshaller::it_can_unmarshal_from_a_pkg_reader PASSED [ 37%] tests/opc/test_package.py::DescribeUnmarshaller::it_can_unmarshal_parts PASSED [ 37%] tests/opc/test_package.py::DescribeUnmarshaller::it_can_unmarshal_relationships PASSED [ 37%] tests/opc/test_packuri.py::DescribePackURI::it_can_construct_from_relative_ref PASSED [ 38%] tests/opc/test_packuri.py::DescribePackURI::it_should_raise_on_construct_with_bad_pack_uri_str PASSED [ 38%] tests/opc/test_packuri.py::DescribePackURI::it_can_calculate_baseURI PASSED [ 38%] tests/opc/test_packuri.py::DescribePackURI::it_can_calculate_extension PASSED [ 38%] tests/opc/test_packuri.py::DescribePackURI::it_can_calculate_filename PASSED [ 38%] tests/opc/test_packuri.py::DescribePackURI::it_knows_the_filename_index PASSED [ 38%] tests/opc/test_packuri.py::DescribePackURI::it_can_calculate_membername PASSED [ 38%] tests/opc/test_packuri.py::DescribePackURI::it_can_calculate_relative_ref_value PASSED [ 38%] tests/opc/test_packuri.py::DescribePackURI::it_can_calculate_rels_uri PASSED [ 38%] tests/opc/test_part.py::DescribePart::it_can_be_constructed_by_PartFactory PASSED [ 38%] tests/opc/test_part.py::DescribePart::it_knows_its_partname PASSED [ 38%] tests/opc/test_part.py::DescribePart::it_can_change_its_partname PASSED [ 38%] tests/opc/test_part.py::DescribePart::it_knows_its_content_type PASSED [ 38%] tests/opc/test_part.py::DescribePart::it_knows_the_package_it_belongs_to PASSED [ 38%] tests/opc/test_part.py::DescribePart::it_can_be_notified_after_unmarshalling_is_complete PASSED [ 38%] tests/opc/test_part.py::DescribePart::it_can_be_notified_before_marshalling_is_started PASSED [ 39%] tests/opc/test_part.py::DescribePart::it_uses_the_load_blob_as_its_blob PASSED [ 39%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_provides_access_to_its_relationships PASSED [ 39%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_load_a_relationship PASSED [ 39%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_establish_a_relationship_to_another_part PASSED [ 39%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_establish_an_external_relationship PASSED [ 39%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_drop_a_relationship PASSED [ 39%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_find_a_related_part_by_reltype PASSED [ 39%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_find_a_related_part_by_rId PASSED [ 39%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_find_the_uri_of_an_external_relationship PASSED [ 39%] tests/opc/test_part.py::DescribePartFactory::it_constructs_part_from_selector_if_defined PASSED [ 39%] tests/opc/test_part.py::DescribePartFactory::it_constructs_custom_part_type_for_registered_content_types PASSED [ 39%] tests/opc/test_part.py::DescribePartFactory::it_constructs_part_using_default_class_when_no_custom_registered PASSED [ 39%] tests/opc/test_part.py::DescribeXmlPart::it_can_be_constructed_by_PartFactory PASSED [ 39%] tests/opc/test_part.py::DescribeXmlPart::it_can_serialize_to_xml PASSED [ 39%] tests/opc/test_part.py::DescribeXmlPart::it_knows_its_the_part_for_its_child_objects PASSED [ 39%] tests/opc/test_part.py::DescribeXmlPart::it_only_drops_a_relationship_with_zero_reference_count[w:p-True] PASSED [ 40%] tests/opc/test_part.py::DescribeXmlPart::it_only_drops_a_relationship_with_zero_reference_count[w:p/r:a{r:id=rId42}-True] PASSED [ 40%] tests/opc/test_part.py::DescribeXmlPart::it_only_drops_a_relationship_with_zero_reference_count[w:p/r:a{r:id=rId42}/r:b{r:id=rId42}-False] PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeDirPkgReader::it_is_used_by_PhysPkgReader_when_pkg_is_a_dir PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeDirPkgReader::it_doesnt_mind_being_closed_even_though_it_doesnt_need_it PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeDirPkgReader::it_can_retrieve_the_blob_for_a_pack_uri PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeDirPkgReader::it_can_get_the_content_types_xml PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeDirPkgReader::it_can_retrieve_the_rels_xml_for_a_source_uri PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeDirPkgReader::it_returns_none_when_part_has_no_rels_xml PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribePhysPkgReader::it_raises_when_pkg_path_is_not_a_package PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_is_used_by_PhysPkgReader_when_pkg_is_a_zip PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_is_used_by_PhysPkgReader_when_pkg_is_a_stream PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_opens_pkg_file_zip_on_construction PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_can_be_closed PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_can_retrieve_the_blob_for_a_pack_uri PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_has_the_content_types_xml PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_can_retrieve_rels_xml_for_source_uri PASSED [ 41%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_returns_none_when_part_has_no_rels_xml PASSED [ 41%] tests/opc/test_phys_pkg.py::DescribeZipPkgWriter::it_is_used_by_PhysPkgWriter_unconditionally PASSED [ 41%] tests/opc/test_phys_pkg.py::DescribeZipPkgWriter::it_opens_pkg_file_zip_on_construction PASSED [ 41%] tests/opc/test_phys_pkg.py::DescribeZipPkgWriter::it_can_be_closed PASSED [ 41%] tests/opc/test_phys_pkg.py::DescribeZipPkgWriter::it_can_write_a_blob PASSED [ 41%] tests/opc/test_pkgreader.py::DescribePackageReader::it_can_construct_from_pkg_file PASSED [ 41%] tests/opc/test_pkgreader.py::DescribePackageReader::it_can_iterate_over_the_serialized_parts PASSED [ 41%] tests/opc/test_pkgreader.py::DescribePackageReader::it_can_iterate_over_all_the_srels PASSED [ 41%] tests/opc/test_pkgreader.py::DescribePackageReader::it_can_load_serialized_parts PASSED [ 41%] tests/opc/test_pkgreader.py::DescribePackageReader::it_can_walk_phys_pkg_parts PASSED [ 41%] tests/opc/test_pkgreader.py::DescribePackageReader::it_can_retrieve_srels_for_a_source_uri PASSED [ 41%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_can_construct_from_ct_item_xml PASSED [ 41%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_matches_an_override_on_case_insensitive_partname[match_override_fixture0] PASSED [ 41%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_matches_an_override_on_case_insensitive_partname[match_override_fixture1] PASSED [ 41%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_matches_an_override_on_case_insensitive_partname[match_override_fixture2] PASSED [ 42%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_falls_back_to_case_insensitive_extension_default_match[match_default_fixture0] PASSED [ 42%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_falls_back_to_case_insensitive_extension_default_match[match_default_fixture1] PASSED [ 42%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_falls_back_to_case_insensitive_extension_default_match[match_default_fixture2] PASSED [ 42%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_should_raise_on_partname_not_found PASSED [ 42%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_should_raise_on_key_not_instance_of_PackURI PASSED [ 42%] tests/opc/test_pkgreader.py::Describe_SerializedPart::it_remembers_construction_values PASSED [ 42%] tests/opc/test_pkgreader.py::Describe_SerializedRelationship::it_remembers_construction_values PASSED [ 42%] tests/opc/test_pkgreader.py::Describe_SerializedRelationship::it_knows_when_it_is_external PASSED [ 42%] tests/opc/test_pkgreader.py::Describe_SerializedRelationship::it_can_calculate_its_target_partname PASSED [ 42%] tests/opc/test_pkgreader.py::Describe_SerializedRelationship::it_raises_on_target_partname_when_external PASSED [ 42%] tests/opc/test_pkgreader.py::Describe_SerializedRelationships::it_can_load_from_xml PASSED [ 42%] tests/opc/test_pkgreader.py::Describe_SerializedRelationships::it_should_be_iterable PASSED [ 42%] tests/opc/test_pkgwriter.py::DescribePackageWriter::it_can_write_a_package PASSED [ 42%] tests/opc/test_pkgwriter.py::DescribePackageWriter::it_can_write_a_content_types_stream PASSED [ 42%] tests/opc/test_pkgwriter.py::DescribePackageWriter::it_can_write_a_pkg_rels_item PASSED [ 42%] tests/opc/test_pkgwriter.py::DescribePackageWriter::it_can_write_a_list_of_parts PASSED [ 43%] tests/opc/test_pkgwriter.py::Describe_ContentTypesItem::it_can_compose_content_types_element[xml_for_fixture0] PASSED [ 43%] tests/opc/test_pkgwriter.py::Describe_ContentTypesItem::it_can_compose_content_types_element[xml_for_fixture1] PASSED [ 43%] tests/opc/test_pkgwriter.py::Describe_ContentTypesItem::it_can_compose_content_types_element[xml_for_fixture2] PASSED [ 43%] tests/opc/test_pkgwriter.py::Describe_ContentTypesItem::it_can_compose_content_types_element[xml_for_fixture3] PASSED [ 43%] tests/opc/test_pkgwriter.py::Describe_ContentTypesItem::it_can_compose_content_types_element[xml_for_fixture4] PASSED [ 43%] tests/opc/test_pkgwriter.py::Describe_ContentTypesItem::it_can_compose_content_types_element[xml_for_fixture5] PASSED [ 43%] tests/opc/test_pkgwriter.py::Describe_ContentTypesItem::it_can_compose_content_types_element[xml_for_fixture6] PASSED [ 43%] tests/opc/test_rel.py::Describe_Relationship::it_remembers_construction_values PASSED [ 43%] tests/opc/test_rel.py::Describe_Relationship::it_should_raise_on_target_part_access_on_external_rel PASSED [ 43%] tests/opc/test_rel.py::Describe_Relationship::it_should_have_target_ref_for_external_rel PASSED [ 43%] tests/opc/test_rel.py::Describe_Relationship::it_should_have_relative_ref_for_internal_rel PASSED [ 43%] tests/opc/test_rel.py::DescribeRelationships::it_can_add_a_relationship PASSED [ 43%] tests/opc/test_rel.py::DescribeRelationships::it_can_add_an_external_relationship PASSED [ 43%] tests/opc/test_rel.py::DescribeRelationships::it_can_find_a_relationship_by_rId PASSED [ 43%] tests/opc/test_rel.py::DescribeRelationships::it_can_find_or_add_a_relationship PASSED [ 43%] tests/opc/test_rel.py::DescribeRelationships::it_can_find_or_add_an_external_relationship PASSED [ 44%] tests/opc/test_rel.py::DescribeRelationships::it_can_find_a_related_part_by_rId PASSED [ 44%] tests/opc/test_rel.py::DescribeRelationships::it_raises_on_related_part_not_found PASSED [ 44%] tests/opc/test_rel.py::DescribeRelationships::it_can_find_a_related_part_by_reltype PASSED [ 44%] tests/opc/test_rel.py::DescribeRelationships::it_can_compose_rels_xml PASSED [ 44%] tests/opc/test_rel.py::DescribeRelationships::it_knows_the_next_available_rId_to_help PASSED [ 44%] tests/opc/parts/test_coreprops.py::DescribeCorePropertiesPart::it_provides_access_to_its_core_props_object PASSED [ 44%] tests/opc/parts/test_coreprops.py::DescribeCorePropertiesPart::it_can_create_a_default_core_properties_part PASSED [ 44%] tests/oxml/test__init__.py::DescribeOxmlElement::it_returns_an_lxml_element_with_matching_tag_name PASSED [ 44%] tests/oxml/test__init__.py::DescribeOxmlElement::it_adds_supplied_attributes PASSED [ 44%] tests/oxml/test__init__.py::DescribeOxmlElement::it_adds_additional_namespace_declarations_when_supplied PASSED [ 44%] tests/oxml/test__init__.py::DescribeOxmlParser::it_strips_whitespace_between_elements PASSED [ 44%] tests/oxml/test__init__.py::DescribeParseXml::it_accepts_bytes_and_assumes_utf8_encoding PASSED [ 44%] tests/oxml/test__init__.py::DescribeParseXml::it_accepts_unicode_providing_there_is_no_encoding_declaration PASSED [ 44%] tests/oxml/test__init__.py::DescribeParseXml::it_uses_registered_element_classes PASSED [ 44%] tests/oxml/test__init__.py::DescribeRegisterElementCls::it_determines_class_used_for_elements_with_matching_tagname PASSED [ 45%] tests/oxml/test_document.py::DescribeCT_Body::it_knows_its_inner_content_block_item_elements PASSED [ 45%] tests/oxml/test_ns.py::DescribeNamespacePrefixedTag::it_behaves_like_a_string_when_you_want_it_to PASSED [ 45%] tests/oxml/test_ns.py::DescribeNamespacePrefixedTag::it_knows_its_clark_name PASSED [ 45%] tests/oxml/test_ns.py::DescribeNamespacePrefixedTag::it_can_construct_from_a_clark_name PASSED [ 45%] tests/oxml/test_ns.py::DescribeNamespacePrefixedTag::it_knows_its_local_part PASSED [ 45%] tests/oxml/test_ns.py::DescribeNamespacePrefixedTag::it_can_compose_a_single_entry_nsmap_for_itself PASSED [ 45%] tests/oxml/test_ns.py::DescribeNamespacePrefixedTag::it_knows_its_namespace_prefix PASSED [ 45%] tests/oxml/test_ns.py::DescribeNamespacePrefixedTag::it_knows_its_namespace_uri PASSED [ 45%] tests/oxml/test_section.py::DescribeCT_HdrFtr::it_knows_its_inner_content_block_item_elements PASSED [ 45%] tests/oxml/test_styles.py::DescribeCT_Styles::it_can_add_a_style_of_type[add_fixture0] PASSED [ 45%] tests/oxml/test_styles.py::DescribeCT_Styles::it_can_add_a_style_of_type[add_fixture1] PASSED [ 45%] tests/oxml/test_table.py::DescribeCT_Row::it_can_add_a_trPr[w:tr-w:tr/w:trPr] PASSED [ 45%] tests/oxml/test_table.py::DescribeCT_Row::it_can_add_a_trPr[w:tr/w:tblPrEx-w:tr/(w:tblPrEx,w:trPr)] PASSED [ 45%] tests/oxml/test_table.py::DescribeCT_Row::it_can_add_a_trPr[w:tr/w:tc-w:tr/(w:trPr,w:tc)] PASSED [ 45%] tests/oxml/test_table.py::DescribeCT_Row::it_can_add_a_trPr[w:tr/(w:sdt,w:del,w:tc)-w:tr/(w:trPr,w:sdt,w:del,w:tc)] PASSED [ 45%] tests/oxml/test_table.py::DescribeCT_Row::it_raises_on_tc_at_grid_col[0-0-3] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Row::it_raises_on_tc_at_grid_col[1-0-1] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_grid_offset[w:tr/(w:tc/w:p,w:tc/w:p)-0-0] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_grid_offset[w:tr/(w:tc/w:p,w:tc/w:p)-1-1] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_grid_offset[w:tr/(w:trPr/w:gridBefore{w:val=2},w:tc/w:p,w:tc/w:p)-0-2] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_grid_offset[w:tr/(w:trPr/w:gridBefore{w:val=2},w:tc/w:p,w:tc/w:p)-1-3] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_grid_offset[w:tr/(w:trPr/w:gridBefore{w:val=4},w:tc/w:p,w:tc/w:p,w:tc/w:p,w:tc/w:p)-2-6] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_merge_to_another_tc PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[0-0-0-top-0] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[2-0-1-top-0] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[2-1-1-top-0] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[4-2-1-top-1] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[0-0-0-left-0] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[1-0-1-left-2] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[3-1-0-left-0] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[3-1-1-left-2] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[0-0-0-bottom-1] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[1-0-0-bottom-1] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[2-0-1-bottom-2] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[4-1-1-bottom-3] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[0-0-0-right-1] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[1-0-0-right-2] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[4-2-1-right-3] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[0-0-0-0-1-expected_value0] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[0-0-1-2-1-expected_value1] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[0-2-2-1-1-expected_value2] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[0-1-2-1-0-expected_value3] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[1-0-0-1-1-expected_value4] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[1-0-1-0-0-expected_value5] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[2-0-1-2-1-expected_value6] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[2-0-1-1-0-expected_value7] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[2-1-2-0-1-expected_value8] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[4-0-1-0-0-expected_value9] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_span[1-0-0-1-0] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_span[1-1-0-0-0] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_span[2-0-2-0-1] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_span[5-0-1-1-0] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_span[5-1-0-2-1] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_span[6-1-0-0-1] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_span[6-0-1-1-2] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_grow_itself_to_help_merge[0-0-0-2-1] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_grow_itself_to_help_merge[0-0-1-1-2] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_grow_itself_to_help_merge[0-1-1-2-2] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_grow_itself_to_help_merge[1-0-0-2-2] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_grow_itself_to_help_merge[2-0-0-2-2] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_grow_itself_to_help_merge[2-1-2-1-2] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_extend_its_horz_span_to_help_merge PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_inner_content_block_item_elements PASSED [ 49%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_swallow_the_next_tc_help_merge[w:tr/(w:tc/w:p,w:tc/w:p)-0-2-w:tr/(w:tc/(w:tcPr/w:gridSpan{w:val=2},w:p))] PASSED [ 49%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_swallow_the_next_tc_help_merge[w:tr/(w:tc/w:p,w:tc/w:p,w:tc/w:p)-1-2-w:tr/(w:tc/w:p,w:tc/(w:tcPr/w:gridSpan{w:val=2},w:p))] PASSED [ 49%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_swallow_the_next_tc_help_merge[w:tr/(w:tc/w:p/w:r/w:t"a",w:tc/w:p/w:r/w:t"b")-0-2-w:tr/(w:tc/(w:tcPr/w:gridSpan{w:val=2},w:p/w:r/w:t"a",w:p/w:r/w:t"b"))] PASSED [ 49%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_swallow_the_next_tc_help_merge[w:tr/(w:tc/(w:tcPr/w:gridSpan{w:val=2},w:p),w:tc/w:p)-0-3-w:tr/(w:tc/(w:tcPr/w:gridSpan{w:val=3},w:p))] PASSED [ 49%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_swallow_the_next_tc_help_merge[w:tr/(w:tc/w:p,w:tc/(w:tcPr/w:gridSpan{w:val=2},w:p))-0-3-w:tr/(w:tc/(w:tcPr/w:gridSpan{w:val=3},w:p))] PASSED [ 49%] tests/oxml/test_table.py::DescribeCT_Tc::it_adds_cell_widths_on_swallow[w:tr/(w:tc/(w:tcPr/w:tcW{w:w=1440,w:type=dxa},w:p),w:tc/(w:tcPr/w:tcW{w:w=1440,w:type=dxa},w:p))-0-2-w:tr/(w:tc/(w:tcPr/(w:tcW{w:w=2880,w:type=dxa},w:gridSpan{w:val=2}),w:p))] PASSED [ 49%] tests/oxml/test_table.py::DescribeCT_Tc::it_adds_cell_widths_on_swallow[w:tr/(w:tc/w:p,w:tc/w:p)-0-2-w:tr/(w:tc/(w:tcPr/w:gridSpan{w:val=2},w:p))] PASSED [ 49%] tests/oxml/test_table.py::DescribeCT_Tc::it_adds_cell_widths_on_swallow[w:tr/(w:tc/w:p,w:tc/(w:tcPr/w:tcW{w:w=1440,w:type=dxa},w:p))-0-2-w:tr/(w:tc/(w:tcPr/w:gridSpan{w:val=2},w:p))] PASSED [ 49%] tests/oxml/test_table.py::DescribeCT_Tc::it_adds_cell_widths_on_swallow[w:tr/(w:tc/(w:tcPr/w:tcW{w:w=1440,w:type=dxa},w:p),w:tc/w:p)-0-2-w:tr/(w:tc/(w:tcPr/(w:tcW{w:w=1440,w:type=dxa},w:gridSpan{w:val=2}),w:p))] PASSED [ 49%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_swallow[w:tr/w:tc/w:p-0-2] PASSED [ 49%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_swallow[w:tr/(w:tc/w:p,w:tc/(w:tcPr/w:gridSpan{w:val=2},w:p))-0-2] PASSED [ 49%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_move_its_content_to_help_merge[w:tc/w:p-w:tc/w:p-w:tc/w:p-w:tc/w:p] PASSED [ 49%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_move_its_content_to_help_merge[w:tc/w:p-w:tc/w:p/w:r-w:tc/w:p-w:tc/w:p/w:r] PASSED [ 49%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_move_its_content_to_help_merge[w:tc/w:p/w:r-w:tc/w:p-w:tc/w:p-w:tc/w:p/w:r] PASSED [ 49%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_move_its_content_to_help_merge[w:tc/(w:p/w:r,w:sdt)-w:tc/w:p-w:tc/w:p-w:tc/(w:p/w:r,w:sdt)] PASSED [ 50%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_move_its_content_to_help_merge[w:tc/(w:p/w:r,w:sdt)-w:tc/(w:tbl,w:p)-w:tc/w:p-w:tc/(w:tbl,w:p/w:r,w:sdt)] PASSED [ 50%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_tr_above[0-0-0] PASSED [ 50%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_tr_above[4-0-0] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_find_the_first_of_its_children_named_in_a_sequence[first_fixture0] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_find_the_first_of_its_children_named_in_a_sequence[first_fixture1] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_find_the_first_of_its_children_named_in_a_sequence[first_fixture2] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_find_the_first_of_its_children_named_in_a_sequence[first_fixture3] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_find_the_first_of_its_children_named_in_a_sequence[first_fixture4] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_find_the_first_of_its_children_named_in_a_sequence[first_fixture5] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_insert_an_element_before_named_successors[insert_fixture0] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_insert_an_element_before_named_successors[insert_fixture1] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_insert_an_element_before_named_successors[insert_fixture2] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_insert_an_element_before_named_successors[insert_fixture3] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_insert_an_element_before_named_successors[insert_fixture4] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture0] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture1] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture2] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture3] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture4] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture5] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture6] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture7] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture8] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture9] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture10] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeSerializeForReading::it_pretty_prints_an_lxml_element PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeSerializeForReading::it_returns_unicode_text PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_parses_a_line_to_help_compare[parse_fixture0] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_parses_a_line_to_help_compare[parse_fixture1] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_parses_a_line_to_help_compare[parse_fixture2] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_parses_a_line_to_help_compare[parse_fixture3] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_parses_a_line_to_help_compare[parse_fixture4] PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_knows_if_two_xml_lines_are_equivalent[simple_elm] PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_knows_if_two_xml_lines_are_equivalent[nsp_tagname] PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_knows_if_two_xml_lines_are_equivalent[indent] PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_knows_if_two_xml_lines_are_equivalent[attrs] PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_knows_if_two_xml_lines_are_equivalent[nsdecl_order] PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_knows_if_two_xml_lines_are_equivalent[closing_elm] PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_a_getter_property_for_the_choice_element[choice] PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_a_getter_property_for_the_choice_element[None] PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_a_creator_method_for_the_child_element PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_an_insert_method_for_the_child_element PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_an_add_method_for_the_child_element PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_a_get_or_change_to_method_for_the_child_element[get_or_change_to_fixture0] PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_a_get_or_change_to_method_for_the_child_element[get_or_change_to_fixture1] PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_a_get_or_change_to_method_for_the_child_element[get_or_change_to_fixture2] PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeOneAndOnlyOne::it_adds_a_getter_property_for_the_child_element PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeOneOrMore::it_adds_a_getter_property_for_the_child_element_list PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeOneOrMore::it_adds_a_creator_method_for_the_child_element PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeOneOrMore::it_adds_an_insert_method_for_the_child_element PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeOneOrMore::it_adds_a_private_add_method_for_the_child_element PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeOneOrMore::it_adds_a_public_add_method_for_the_child_element PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeOptionalAttribute::it_adds_a_getter_property_for_the_attr_value PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeOptionalAttribute::it_adds_a_setter_property_for_the_attr[36] PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeOptionalAttribute::it_adds_a_setter_property_for_the_attr[None] PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeOptionalAttribute::it_adds_a_docstring_for_the_property PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeRequiredAttribute::it_adds_a_getter_property_for_the_attr_value PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeRequiredAttribute::it_adds_a_setter_property_for_the_attr PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeRequiredAttribute::it_adds_a_docstring_for_the_property PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeRequiredAttribute::it_raises_on_get_when_attribute_not_present PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeRequiredAttribute::it_raises_on_assign_invalid_value[invalid_assign_fixture0] PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeRequiredAttribute::it_raises_on_assign_invalid_value[invalid_assign_fixture1] PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeRequiredAttribute::it_raises_on_assign_invalid_value[invalid_assign_fixture2] PASSED [ 54%] tests/oxml/test_xmlchemy.py::DescribeZeroOrMore::it_adds_a_getter_property_for_the_child_element_list PASSED [ 54%] tests/oxml/test_xmlchemy.py::DescribeZeroOrMore::it_adds_a_creator_method_for_the_child_element PASSED [ 54%] tests/oxml/test_xmlchemy.py::DescribeZeroOrMore::it_adds_an_insert_method_for_the_child_element PASSED [ 54%] tests/oxml/test_xmlchemy.py::DescribeZeroOrMore::it_adds_an_add_method_for_the_child_element PASSED [ 54%] tests/oxml/test_xmlchemy.py::DescribeZeroOrMore::it_adds_a_public_add_method_for_the_child_element PASSED [ 54%] tests/oxml/test_xmlchemy.py::DescribeZeroOrMore::it_removes_the_property_root_name_used_for_declaration PASSED [ 54%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_a_getter_property_for_the_child_element[True] PASSED [ 54%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_a_getter_property_for_the_child_element[False] PASSED [ 54%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_an_add_method_for_the_child_element PASSED [ 54%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_an_insert_method_for_the_child_element PASSED [ 54%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_a_get_or_add_method_for_the_child_element[True] PASSED [ 54%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_a_get_or_add_method_for_the_child_element[False] PASSED [ 54%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_a_remover_method_for_the_child_element[True] PASSED [ 54%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_a_remover_method_for_the_child_element[False] PASSED [ 54%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOneChoice::it_adds_a_getter_for_the_current_choice[None] PASSED [ 54%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOneChoice::it_adds_a_getter_for_the_current_choice[choice] PASSED [ 55%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOneChoice::it_adds_a_getter_for_the_current_choice[choice2] PASSED [ 55%] tests/oxml/parts/test_document.py::DescribeCT_Body::it_can_clear_all_its_content[clear_fixture0] PASSED [ 55%] tests/oxml/parts/test_document.py::DescribeCT_Body::it_can_clear_all_its_content[clear_fixture1] PASSED [ 55%] tests/oxml/parts/test_document.py::DescribeCT_Body::it_can_clear_all_its_content[clear_fixture2] PASSED [ 55%] tests/oxml/parts/test_document.py::DescribeCT_Body::it_can_clear_all_its_content[clear_fixture3] PASSED [ 55%] tests/oxml/parts/test_document.py::DescribeCT_Body::it_can_clear_all_its_content[clear_fixture4] PASSED [ 55%] tests/oxml/parts/test_document.py::DescribeCT_Body::it_can_add_a_section_break PASSED [ 55%] tests/oxml/text/test_hyperlink.py::DescribeCT_Hyperlink::it_has_a_relationship_that_contains_the_hyperlink_address PASSED [ 55%] tests/oxml/text/test_hyperlink.py::DescribeCT_Hyperlink::it_knows_whether_it_has_been_clicked_on_aka_visited[w:hyperlink{r:id=rId6}-True] PASSED [ 55%] tests/oxml/text/test_hyperlink.py::DescribeCT_Hyperlink::it_knows_whether_it_has_been_clicked_on_aka_visited[w:hyperlink{r:id=rId6,w:history=0}-False] PASSED [ 55%] tests/oxml/text/test_hyperlink.py::DescribeCT_Hyperlink::it_knows_whether_it_has_been_clicked_on_aka_visited[w:hyperlink{r:id=rId6,w:history=1}-True] PASSED [ 55%] tests/oxml/text/test_hyperlink.py::DescribeCT_Hyperlink::it_has_zero_or_more_runs_containing_the_hyperlink_text PASSED [ 55%] tests/oxml/text/test_run.py::DescribeCT_R::it_can_add_a_t_preserving_edge_whitespace[w:r-foobar-w:r/w:t"foobar"] PASSED [ 55%] tests/oxml/text/test_run.py::DescribeCT_R::it_can_add_a_t_preserving_edge_whitespace[w:r-foobar -w:r/w:t{xml:space=preserve}"foobar "] PASSED [ 55%] tests/oxml/text/test_run.py::DescribeCT_R::it_can_add_a_t_preserving_edge_whitespace[w:r/(w:rPr/w:rStyle{w:val=emphasis}, w:cr)-foobar-w:r/(w:rPr/w:rStyle{w:val=emphasis}, w:cr, w:t"foobar")] PASSED [ 56%] tests/oxml/text/test_run.py::DescribeCT_R::it_can_assemble_the_text_in_the_run PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::it_can_add_a_footer_part PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::it_can_add_a_header_part PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::it_can_drop_a_specified_header_part PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_a_footer_part_by_rId PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_a_header_part_by_rId PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::it_can_save_the_package_to_a_file PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_the_document_settings PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_the_document_styles PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_its_core_properties PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_the_inline_shapes_in_the_document PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_the_numbering_part PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::and_it_creates_a_numbering_part_if_not_present PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::it_can_get_a_style_by_id PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::it_can_get_the_id_of_a_style PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_its_settings_part_to_help PASSED [ 57%] tests/parts/test_document.py::DescribeDocumentPart::and_it_creates_a_default_settings_part_if_not_present PASSED [ 57%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_its_styles_part_to_help PASSED [ 57%] tests/parts/test_document.py::DescribeDocumentPart::and_it_creates_a_default_styles_part_if_not_present PASSED [ 57%] tests/parts/test_hdrftr.py::DescribeFooterPart::it_is_used_by_loader_to_construct_footer_part PASSED [ 57%] tests/parts/test_hdrftr.py::DescribeFooterPart::it_can_create_a_new_footer_part PASSED [ 57%] tests/parts/test_hdrftr.py::DescribeFooterPart::it_loads_default_footer_XML_from_a_template_to_help PASSED [ 57%] tests/parts/test_hdrftr.py::DescribeHeaderPart::it_is_used_by_loader_to_construct_header_part PASSED [ 57%] tests/parts/test_hdrftr.py::DescribeHeaderPart::it_can_create_a_new_header_part PASSED [ 57%] tests/parts/test_hdrftr.py::DescribeHeaderPart::it_loads_default_header_XML_from_a_template_to_help PASSED [ 57%] tests/parts/test_image.py::DescribeImagePart::it_is_used_by_PartFactory_to_construct_image_part PASSED [ 57%] tests/parts/test_image.py::DescribeImagePart::it_can_construct_from_an_Image_instance PASSED [ 57%] tests/parts/test_image.py::DescribeImagePart::it_knows_its_default_dimensions_in_EMU[loaded] PASSED [ 57%] tests/parts/test_image.py::DescribeImagePart::it_knows_its_default_dimensions_in_EMU[new] PASSED [ 57%] tests/parts/test_image.py::DescribeImagePart::it_knows_its_filename[loaded] PASSED [ 57%] tests/parts/test_image.py::DescribeImagePart::it_knows_its_filename[new] PASSED [ 57%] tests/parts/test_image.py::DescribeImagePart::it_knows_the_sha1_of_its_image PASSED [ 58%] tests/parts/test_numbering.py::DescribeNumberingPart::it_provides_access_to_the_numbering_definitions PASSED [ 58%] tests/parts/test_numbering.py::Describe_NumberingDefinitions::it_knows_how_many_numbering_definitions_it_contains[0] PASSED [ 58%] tests/parts/test_numbering.py::Describe_NumberingDefinitions::it_knows_how_many_numbering_definitions_it_contains[1] PASSED [ 58%] tests/parts/test_numbering.py::Describe_NumberingDefinitions::it_knows_how_many_numbering_definitions_it_contains[2] PASSED [ 58%] tests/parts/test_numbering.py::Describe_NumberingDefinitions::it_knows_how_many_numbering_definitions_it_contains[3] PASSED [ 58%] tests/parts/test_settings.py::DescribeSettingsPart::it_is_used_by_loader_to_construct_settings_part PASSED [ 58%] tests/parts/test_settings.py::DescribeSettingsPart::it_provides_access_to_its_settings PASSED [ 58%] tests/parts/test_settings.py::DescribeSettingsPart::it_constructs_a_default_settings_part_to_help PASSED [ 58%] tests/parts/test_story.py::DescribeStoryPart::it_can_get_or_add_an_image PASSED [ 58%] tests/parts/test_story.py::DescribeStoryPart::it_can_get_a_style_by_id_and_type PASSED [ 58%] tests/parts/test_story.py::DescribeStoryPart::it_can_get_a_style_id_by_style_or_name_and_type PASSED [ 58%] tests/parts/test_story.py::DescribeStoryPart::it_can_create_a_new_pic_inline PASSED [ 58%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture0] PASSED [ 58%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture1] PASSED [ 58%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture2] PASSED [ 59%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture3] PASSED [ 59%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture4] PASSED [ 59%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture5] PASSED [ 59%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture6] PASSED [ 59%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture7] PASSED [ 59%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture8] PASSED [ 59%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_main_document_part_to_help PASSED [ 59%] tests/parts/test_styles.py::DescribeStylesPart::it_provides_access_to_its_styles PASSED [ 59%] tests/parts/test_styles.py::DescribeStylesPart::it_can_construct_a_default_styles_part_to_help PASSED [ 59%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_delete_itself PASSED [ 59%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_name[name_get_fixture0] PASSED [ 59%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_priority[priority_get_fixture0] PASSED [ 59%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_priority[priority_get_fixture1] PASSED [ 59%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_priority[priority_set_fixture0] PASSED [ 59%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_priority[priority_set_fixture1] PASSED [ 59%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_priority[priority_set_fixture2] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture0] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture1] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture2] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture3] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture4] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture5] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture6] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture7] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture8] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture9] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture10] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture11] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_on_off_properties[on_off_set_fixture0] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_on_off_properties[on_off_set_fixture1] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_on_off_properties[on_off_set_fixture2] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_on_off_properties[on_off_set_fixture3] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_on_off_properties[on_off_set_fixture4] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_on_off_properties[on_off_set_fixture5] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_on_off_properties[on_off_set_fixture6] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_add_a_latent_style PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_how_many_latent_styles_it_contains[len_fixture0] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_how_many_latent_styles_it_contains[len_fixture1] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_how_many_latent_styles_it_contains[len_fixture2] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_iterate_over_its_latent_styles[iter_fixture0] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_iterate_over_its_latent_styles[iter_fixture1] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_iterate_over_its_latent_styles[iter_fixture2] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_get_a_latent_style_by_name[getitem_fixture0] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_get_a_latent_style_by_name[getitem_fixture1] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_get_a_latent_style_by_name[getitem_fixture2] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_get_a_latent_style_by_name[getitem_fixture3] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_raises_on_latent_style_not_found PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_default_priority[priority_get_fixture0] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_default_priority[priority_get_fixture1] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_default_priority[priority_set_fixture0] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_default_priority[priority_set_fixture1] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_default_priority[priority_set_fixture2] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_load_count[count_get_fixture0] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_load_count[count_get_fixture1] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_load_count[count_set_fixture0] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_load_count[count_set_fixture1] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_load_count[count_set_fixture2] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture0] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture1] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture2] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture3] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture4] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture5] PASSED [ 63%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture6] PASSED [ 63%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture7] PASSED [ 63%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_boolean_properties[bool_prop_set_fixture0] PASSED [ 63%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_boolean_properties[bool_prop_set_fixture1] PASSED [ 63%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_boolean_properties[bool_prop_set_fixture2] PASSED [ 63%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_boolean_properties[bool_prop_set_fixture3] PASSED [ 63%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_boolean_properties[bool_prop_set_fixture4] PASSED [ 63%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_boolean_properties[bool_prop_set_fixture5] PASSED [ 63%] tests/styles/test_style.py::DescribeStyleFactory::it_constructs_the_right_type_of_style[paragraph] PASSED [ 63%] tests/styles/test_style.py::DescribeStyleFactory::it_constructs_the_right_type_of_style[character] PASSED [ 63%] tests/styles/test_style.py::DescribeStyleFactory::it_constructs_the_right_type_of_style[table] PASSED [ 63%] tests/styles/test_style.py::DescribeStyleFactory::it_constructs_the_right_type_of_style[numbering] PASSED [ 63%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_style_id[id_get_fixture0] PASSED [ 63%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_style_id[id_get_fixture1] PASSED [ 63%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_style_id[id_set_fixture0] PASSED [ 63%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_style_id[id_set_fixture1] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_style_id[id_set_fixture2] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_style_id[id_set_fixture3] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_type[type_get_fixture0] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_type[type_get_fixture1] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_type[type_get_fixture2] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_type[type_get_fixture3] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_name[name_get_fixture0] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_name[name_get_fixture1] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_name[name_get_fixture2] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_name[name_set_fixture0] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_name[name_set_fixture1] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_name[name_set_fixture2] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_a_builtin_style[builtin_get_fixture0] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_a_builtin_style[builtin_get_fixture1] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_a_builtin_style[builtin_get_fixture2] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_hidden[hidden_get_fixture0] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_hidden[hidden_get_fixture1] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_hidden[hidden_get_fixture2] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_hidden[hidden_get_fixture3] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_hidden[hidden_set_fixture0] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_hidden[hidden_set_fixture1] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_hidden[hidden_set_fixture2] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_hidden[hidden_set_fixture3] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_hidden[hidden_set_fixture4] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_hidden[hidden_set_fixture5] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_sort_order[priority_get_fixture0] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_sort_order[priority_get_fixture1] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_sort_order[priority_set_fixture0] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_sort_order[priority_set_fixture1] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_sort_order[priority_set_fixture2] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_unhide_when_used[unhide_get_fixture0] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_unhide_when_used[unhide_get_fixture1] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_unhide_when_used[unhide_get_fixture2] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_unhide_when_used[unhide_get_fixture3] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_unhide_when_used_value[unhide_set_fixture0] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_unhide_when_used_value[unhide_set_fixture1] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_unhide_when_used_value[unhide_set_fixture2] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_unhide_when_used_value[unhide_set_fixture3] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_unhide_when_used_value[unhide_set_fixture4] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_unhide_when_used_value[unhide_set_fixture5] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_quick_style_setting[quick_get_fixture0] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_quick_style_setting[quick_get_fixture1] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_quick_style_setting[quick_get_fixture2] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_quick_style_setting[quick_get_fixture3] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_quick_style_setting[quick_set_fixture0] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_quick_style_setting[quick_set_fixture1] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_quick_style_setting[quick_set_fixture2] PASSED [ 67%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_quick_style_setting[quick_set_fixture3] PASSED [ 67%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_quick_style_setting[quick_set_fixture4] PASSED [ 67%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_locked[locked_get_fixture0] PASSED [ 67%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_locked[locked_get_fixture1] PASSED [ 67%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_locked[locked_get_fixture2] PASSED [ 67%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_locked[locked_get_fixture3] PASSED [ 67%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_locked[locked_set_fixture0] PASSED [ 67%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_locked[locked_set_fixture1] PASSED [ 67%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_locked[locked_set_fixture2] PASSED [ 67%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_locked[locked_set_fixture3] PASSED [ 67%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_locked[locked_set_fixture4] PASSED [ 67%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_locked[locked_set_fixture5] PASSED [ 67%] tests/styles/test_style.py::DescribeBaseStyle::it_can_delete_itself_from_the_document PASSED [ 67%] tests/styles/test_style.py::DescribeCharacterStyle::it_knows_which_style_it_is_based_on[base_get_fixture0] PASSED [ 67%] tests/styles/test_style.py::DescribeCharacterStyle::it_knows_which_style_it_is_based_on[base_get_fixture1] PASSED [ 68%] tests/styles/test_style.py::DescribeCharacterStyle::it_knows_which_style_it_is_based_on[base_get_fixture2] PASSED [ 68%] tests/styles/test_style.py::DescribeCharacterStyle::it_can_change_its_base_style[base_set_fixture0] PASSED [ 68%] tests/styles/test_style.py::DescribeCharacterStyle::it_can_change_its_base_style[base_set_fixture1] PASSED [ 68%] tests/styles/test_style.py::DescribeCharacterStyle::it_can_change_its_base_style[base_set_fixture2] PASSED [ 68%] tests/styles/test_style.py::DescribeCharacterStyle::it_provides_access_to_its_font PASSED [ 68%] tests/styles/test_style.py::DescribeParagraphStyle::it_knows_its_next_paragraph_style[next_get_fixture0] PASSED [ 68%] tests/styles/test_style.py::DescribeParagraphStyle::it_knows_its_next_paragraph_style[next_get_fixture1] PASSED [ 68%] tests/styles/test_style.py::DescribeParagraphStyle::it_knows_its_next_paragraph_style[next_get_fixture2] PASSED [ 68%] tests/styles/test_style.py::DescribeParagraphStyle::it_knows_its_next_paragraph_style[next_get_fixture3] PASSED [ 68%] tests/styles/test_style.py::DescribeParagraphStyle::it_can_change_its_next_paragraph_style[next_set_fixture0] PASSED [ 68%] tests/styles/test_style.py::DescribeParagraphStyle::it_can_change_its_next_paragraph_style[next_set_fixture1] PASSED [ 68%] tests/styles/test_style.py::DescribeParagraphStyle::it_can_change_its_next_paragraph_style[next_set_fixture2] PASSED [ 68%] tests/styles/test_style.py::DescribeParagraphStyle::it_provides_access_to_its_paragraph_format PASSED [ 68%] tests/styles/test_styles.py::DescribeStyles::it_supports_the_in_operator_on_style_name[in_fixture0] PASSED [ 68%] tests/styles/test_styles.py::DescribeStyles::it_supports_the_in_operator_on_style_name[in_fixture1] PASSED [ 68%] tests/styles/test_styles.py::DescribeStyles::it_supports_the_in_operator_on_style_name[in_fixture2] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_supports_the_in_operator_on_style_name[in_fixture3] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_knows_its_length[len_fixture0] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_knows_its_length[len_fixture1] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_knows_its_length[len_fixture2] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_knows_its_length[len_fixture3] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_can_iterate_over_its_styles[iter_fixture0] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_can_iterate_over_its_styles[iter_fixture1] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_can_iterate_over_its_styles[iter_fixture2] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_can_iterate_over_its_styles[iter_fixture3] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_by_id[getitem_id_fixture0] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_by_id[getitem_id_fixture1] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_by_id[getitem_id_fixture2] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_by_name[getitem_name_fixture0] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_by_name[getitem_name_fixture1] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_by_name[getitem_name_fixture2] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_raises_on_style_not_found[w:styles/(w:style,w:style/w:name{w:val=foo},w:style)] PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::it_raises_on_style_not_found[w:styles/(w:style{w:styleId=foo},w:style,w:style)] PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::it_can_add_a_new_style[add_fixture0] PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::it_can_add_a_new_style[add_fixture1] PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::it_raises_when_style_name_already_used PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::it_can_get_the_default_style_for_a_type[default_fixture0] PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::it_can_get_the_default_style_for_a_type[default_fixture1] PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::it_can_get_the_default_style_for_a_type[default_fixture2] PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_of_type_by_id PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::but_it_returns_the_default_style_for_style_id_None PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_id_from_a_style PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::and_it_can_get_a_style_id_from_a_style_name PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::but_it_returns_None_for_a_style_or_name_of_None PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::it_gets_a_style_by_id_to_help[_get_by_id_fixture0] PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::it_gets_a_style_by_id_to_help[_get_by_id_fixture1] PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::it_gets_a_style_by_id_to_help[_get_by_id_fixture2] PASSED [ 71%] tests/styles/test_styles.py::DescribeStyles::it_gets_a_style_id_from_a_name_to_help PASSED [ 71%] tests/styles/test_styles.py::DescribeStyles::it_gets_a_style_id_from_a_style_to_help[True] PASSED [ 71%] tests/styles/test_styles.py::DescribeStyles::it_gets_a_style_id_from_a_style_to_help[False] PASSED [ 71%] tests/styles/test_styles.py::DescribeStyles::it_raises_on_style_type_mismatch PASSED [ 71%] tests/styles/test_styles.py::DescribeStyles::it_provides_access_to_the_latent_styles PASSED [ 71%] tests/text/test_font.py::DescribeFont::it_provides_access_to_its_color_object PASSED [ 71%] tests/text/test_font.py::DescribeFont::it_knows_its_typeface_name[w:r-None] PASSED [ 71%] tests/text/test_font.py::DescribeFont::it_knows_its_typeface_name[w:r/w:rPr-None] PASSED [ 71%] tests/text/test_font.py::DescribeFont::it_knows_its_typeface_name[w:r/w:rPr/w:rFonts-None] PASSED [ 71%] tests/text/test_font.py::DescribeFont::it_knows_its_typeface_name[w:r/w:rPr/w:rFonts{w:ascii=Arial}-Arial] PASSED [ 71%] tests/text/test_font.py::DescribeFont::it_can_change_its_typeface_name[w:r-Foo-w:r/w:rPr/w:rFonts{w:ascii=Foo,w:hAnsi=Foo}] PASSED [ 71%] tests/text/test_font.py::DescribeFont::it_can_change_its_typeface_name[w:r/w:rPr-Foo-w:r/w:rPr/w:rFonts{w:ascii=Foo,w:hAnsi=Foo}] PASSED [ 71%] tests/text/test_font.py::DescribeFont::it_can_change_its_typeface_name[w:r/w:rPr/w:rFonts{w:hAnsi=Foo}-Bar-w:r/w:rPr/w:rFonts{w:ascii=Bar,w:hAnsi=Bar}] PASSED [ 71%] tests/text/test_font.py::DescribeFont::it_can_change_its_typeface_name[w:r/w:rPr/w:rFonts{w:ascii=Foo,w:hAnsi=Foo}-Bar-w:r/w:rPr/w:rFonts{w:ascii=Bar,w:hAnsi=Bar}] PASSED [ 71%] tests/text/test_font.py::DescribeFont::it_knows_its_size[w:r-None] PASSED [ 71%] tests/text/test_font.py::DescribeFont::it_knows_its_size[w:r/w:rPr-None] PASSED [ 72%] tests/text/test_font.py::DescribeFont::it_knows_its_size[w:r/w:rPr/w:sz{w:val=28}-177800] PASSED [ 72%] tests/text/test_font.py::DescribeFont::it_can_change_its_size[w:r-152400-w:r/w:rPr/w:sz{w:val=24}] PASSED [ 72%] tests/text/test_font.py::DescribeFont::it_can_change_its_size[w:r/w:rPr-152400-w:r/w:rPr/w:sz{w:val=24}] PASSED [ 72%] tests/text/test_font.py::DescribeFont::it_can_change_its_size[w:r/w:rPr/w:sz{w:val=24}-228600-w:r/w:rPr/w:sz{w:val=36}] PASSED [ 72%] tests/text/test_font.py::DescribeFont::it_can_change_its_size[w:r/w:rPr/w:sz{w:val=36}-None-w:r/w:rPr] PASSED [ 72%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr-all_caps-None] PASSED [ 72%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:caps-all_caps-True] PASSED [ 72%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:caps{w:val=on}-all_caps-True] PASSED [ 72%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:caps{w:val=off}-all_caps-False] PASSED [ 72%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:b{w:val=1}-bold-True] PASSED [ 72%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:i{w:val=0}-italic-False] PASSED [ 72%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:cs{w:val=true}-complex_script-True] PASSED [ 72%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:bCs{w:val=false}-cs_bold-False] PASSED [ 72%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:iCs{w:val=on}-cs_italic-True] PASSED [ 72%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:dstrike{w:val=off}-double_strike-False] PASSED [ 72%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:emboss{w:val=1}-emboss-True] PASSED [ 73%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:vanish{w:val=0}-hidden-False] PASSED [ 73%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:i{w:val=true}-italic-True] PASSED [ 73%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:imprint{w:val=false}-imprint-False] PASSED [ 73%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:oMath{w:val=on}-math-True] PASSED [ 73%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:noProof{w:val=off}-no_proof-False] PASSED [ 73%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:outline{w:val=1}-outline-True] PASSED [ 73%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:rtl{w:val=0}-rtl-False] PASSED [ 73%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:shadow{w:val=true}-shadow-True] PASSED [ 73%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:smallCaps{w:val=false}-small_caps-False] PASSED [ 73%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:snapToGrid{w:val=on}-snap_to_grid-True] PASSED [ 73%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:specVanish{w:val=off}-spec_vanish-False] PASSED [ 73%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:strike{w:val=1}-strike-True] PASSED [ 73%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:webHidden{w:val=0}-web_hidden-False] PASSED [ 73%] tests/text/test_font.py::DescribeFont::it_can_change_its_bool_prop_settings[w:r-all_caps-True-w:r/w:rPr/w:caps] PASSED [ 73%] tests/text/test_font.py::DescribeFont::it_can_change_its_bool_prop_settings[w:r-bold-False-w:r/w:rPr/w:b{w:val=0}] PASSED [ 74%] tests/text/test_font.py::DescribeFont::it_can_change_its_bool_prop_settings[w:r-italic-None-w:r/w:rPr] PASSED [ 74%] tests/text/test_font.py::DescribeFont::it_can_change_its_bool_prop_settings[w:r/w:rPr/w:cs-complex_script-True-w:r/w:rPr/w:cs] PASSED [ 74%] tests/text/test_font.py::DescribeFont::it_can_change_its_bool_prop_settings[w:r/w:rPr/w:bCs-cs_bold-False-w:r/w:rPr/w:bCs{w:val=0}] PASSED [ 74%] tests/text/test_font.py::DescribeFont::it_can_change_its_bool_prop_settings[w:r/w:rPr/w:iCs-cs_italic-None-w:r/w:rPr] PASSED [ 74%] tests/text/test_font.py::DescribeFont::it_can_change_its_bool_prop_settings[w:r/w:rPr/w:dstrike{w:val=1}-double_strike-True-w:r/w:rPr/w:dstrike] PASSED [ 74%] tests/text/test_font.py::DescribeFont::it_can_change_its_bool_prop_settings[w:r/w:rPr/w:emboss{w:val=on}-emboss-False-w:r/w:rPr/w:emboss{w:val=0}] PASSED [ 74%] tests/text/test_font.py::DescribeFont::it_can_change_its_bool_prop_settings[w:r/w:rPr/w:vanish{w:val=1}-hidden-None-w:r/w:rPr] PASSED [ 74%] tests/text/test_font.py::DescribeFont::it_can_change_its_bool_prop_settings[w:r/w:rPr/w:i{w:val=false}-italic-True-w:r/w:rPr/w:i] PASSED [ 74%] tests/text/test_font.py::DescribeFont::it_can_change_its_bool_prop_settings[w:r/w:rPr/w:imprint{w:val=0}-imprint-False-w:r/w:rPr/w:imprint{w:val=0}] PASSED [ 74%] tests/text/test_font.py::DescribeFont::it_can_change_its_bool_prop_settings[w:r/w:rPr/w:oMath{w:val=off}-math-None-w:r/w:rPr] PASSED [ 74%] tests/text/test_font.py::DescribeFont::it_can_change_its_bool_prop_settings[w:r/w:rPr/w:noProof{w:val=1}-no_proof-False-w:r/w:rPr/w:noProof{w:val=0}] PASSED [ 74%] tests/text/test_font.py::DescribeFont::it_can_change_its_bool_prop_settings[w:r/w:rPr-outline-True-w:r/w:rPr/w:outline] PASSED [ 74%] tests/text/test_font.py::DescribeFont::it_can_change_its_bool_prop_settings[w:r/w:rPr/w:rtl{w:val=true}-rtl-False-w:r/w:rPr/w:rtl{w:val=0}] PASSED [ 74%] tests/text/test_font.py::DescribeFont::it_can_change_its_bool_prop_settings[w:r/w:rPr/w:shadow{w:val=on}-shadow-True-w:r/w:rPr/w:shadow] PASSED [ 74%] tests/text/test_font.py::DescribeFont::it_can_change_its_bool_prop_settings[w:r/w:rPr/w:smallCaps-small_caps-False-w:r/w:rPr/w:smallCaps{w:val=0}] PASSED [ 74%] tests/text/test_font.py::DescribeFont::it_can_change_its_bool_prop_settings[w:r/w:rPr/w:snapToGrid-snap_to_grid-True-w:r/w:rPr/w:snapToGrid] PASSED [ 75%] tests/text/test_font.py::DescribeFont::it_can_change_its_bool_prop_settings[w:r/w:rPr/w:specVanish-spec_vanish-None-w:r/w:rPr] PASSED [ 75%] tests/text/test_font.py::DescribeFont::it_can_change_its_bool_prop_settings[w:r/w:rPr/w:strike{w:val=foo}-strike-True-w:r/w:rPr/w:strike] PASSED [ 75%] tests/text/test_font.py::DescribeFont::it_can_change_its_bool_prop_settings[w:r/w:rPr/w:webHidden-web_hidden-False-w:r/w:rPr/w:webHidden{w:val=0}] PASSED [ 75%] tests/text/test_font.py::DescribeFont::it_knows_whether_it_is_subscript[w:r-None] PASSED [ 75%] tests/text/test_font.py::DescribeFont::it_knows_whether_it_is_subscript[w:r/w:rPr-None] PASSED [ 75%] tests/text/test_font.py::DescribeFont::it_knows_whether_it_is_subscript[w:r/w:rPr/w:vertAlign{w:val=baseline}-False] PASSED [ 75%] tests/text/test_font.py::DescribeFont::it_knows_whether_it_is_subscript[w:r/w:rPr/w:vertAlign{w:val=subscript}-True] PASSED [ 75%] tests/text/test_font.py::DescribeFont::it_knows_whether_it_is_subscript[w:r/w:rPr/w:vertAlign{w:val=superscript}-False] PASSED [ 75%] tests/text/test_font.py::DescribeFont::it_can_change_whether_it_is_subscript[w:r-True-w:r/w:rPr/w:vertAlign{w:val=subscript}] PASSED [ 75%] tests/text/test_font.py::DescribeFont::it_can_change_whether_it_is_subscript[w:r-False-w:r/w:rPr] PASSED [ 75%] tests/text/test_font.py::DescribeFont::it_can_change_whether_it_is_subscript[w:r-None-w:r/w:rPr] PASSED [ 75%] tests/text/test_font.py::DescribeFont::it_can_change_whether_it_is_subscript[w:r/w:rPr/w:vertAlign{w:val=subscript}-True-w:r/w:rPr/w:vertAlign{w:val=subscript}] PASSED [ 75%] tests/text/test_font.py::DescribeFont::it_can_change_whether_it_is_subscript[w:r/w:rPr/w:vertAlign{w:val=subscript}-False-w:r/w:rPr] PASSED [ 75%] tests/text/test_font.py::DescribeFont::it_can_change_whether_it_is_subscript[w:r/w:rPr/w:vertAlign{w:val=subscript}-None-w:r/w:rPr] PASSED [ 75%] tests/text/test_font.py::DescribeFont::it_can_change_whether_it_is_subscript[w:r/w:rPr/w:vertAlign{w:val=superscript}-True-w:r/w:rPr/w:vertAlign{w:val=subscript}] PASSED [ 75%] tests/text/test_font.py::DescribeFont::it_can_change_whether_it_is_subscript[w:r/w:rPr/w:vertAlign{w:val=superscript}-False-w:r/w:rPr/w:vertAlign{w:val=superscript}] PASSED [ 76%] tests/text/test_font.py::DescribeFont::it_can_change_whether_it_is_subscript[w:r/w:rPr/w:vertAlign{w:val=superscript}-None-w:r/w:rPr] PASSED [ 76%] tests/text/test_font.py::DescribeFont::it_can_change_whether_it_is_subscript[w:r/w:rPr/w:vertAlign{w:val=baseline}-True-w:r/w:rPr/w:vertAlign{w:val=subscript}] PASSED [ 76%] tests/text/test_font.py::DescribeFont::it_knows_whether_it_is_superscript[w:r-None] PASSED [ 76%] tests/text/test_font.py::DescribeFont::it_knows_whether_it_is_superscript[w:r/w:rPr-None] PASSED [ 76%] tests/text/test_font.py::DescribeFont::it_knows_whether_it_is_superscript[w:r/w:rPr/w:vertAlign{w:val=baseline}-False] PASSED [ 76%] tests/text/test_font.py::DescribeFont::it_knows_whether_it_is_superscript[w:r/w:rPr/w:vertAlign{w:val=subscript}-False] PASSED [ 76%] tests/text/test_font.py::DescribeFont::it_knows_whether_it_is_superscript[w:r/w:rPr/w:vertAlign{w:val=superscript}-True] PASSED [ 76%] tests/text/test_font.py::DescribeFont::it_can_change_whether_it_is_superscript[w:r-True-w:r/w:rPr/w:vertAlign{w:val=superscript}] PASSED [ 76%] tests/text/test_font.py::DescribeFont::it_can_change_whether_it_is_superscript[w:r-False-w:r/w:rPr] PASSED [ 76%] tests/text/test_font.py::DescribeFont::it_can_change_whether_it_is_superscript[w:r-None-w:r/w:rPr] PASSED [ 76%] tests/text/test_font.py::DescribeFont::it_can_change_whether_it_is_superscript[w:r/w:rPr/w:vertAlign{w:val=superscript}-True-w:r/w:rPr/w:vertAlign{w:val=superscript}] PASSED [ 76%] tests/text/test_font.py::DescribeFont::it_can_change_whether_it_is_superscript[w:r/w:rPr/w:vertAlign{w:val=superscript}-False-w:r/w:rPr] PASSED [ 76%] tests/text/test_font.py::DescribeFont::it_can_change_whether_it_is_superscript[w:r/w:rPr/w:vertAlign{w:val=superscript}-None-w:r/w:rPr] PASSED [ 76%] tests/text/test_font.py::DescribeFont::it_can_change_whether_it_is_superscript[w:r/w:rPr/w:vertAlign{w:val=subscript}-True-w:r/w:rPr/w:vertAlign{w:val=superscript}] PASSED [ 76%] tests/text/test_font.py::DescribeFont::it_can_change_whether_it_is_superscript[w:r/w:rPr/w:vertAlign{w:val=subscript}-False-w:r/w:rPr/w:vertAlign{w:val=subscript}] PASSED [ 77%] tests/text/test_font.py::DescribeFont::it_can_change_whether_it_is_superscript[w:r/w:rPr/w:vertAlign{w:val=subscript}-None-w:r/w:rPr] PASSED [ 77%] tests/text/test_font.py::DescribeFont::it_can_change_whether_it_is_superscript[w:r/w:rPr/w:vertAlign{w:val=baseline}-True-w:r/w:rPr/w:vertAlign{w:val=superscript}] PASSED [ 77%] tests/text/test_font.py::DescribeFont::it_knows_its_underline_type[w:r-None] PASSED [ 77%] tests/text/test_font.py::DescribeFont::it_knows_its_underline_type[w:r/w:rPr/w:u-None] PASSED [ 77%] tests/text/test_font.py::DescribeFont::it_knows_its_underline_type[w:r/w:rPr/w:u{w:val=single}-True] PASSED [ 77%] tests/text/test_font.py::DescribeFont::it_knows_its_underline_type[w:r/w:rPr/w:u{w:val=none}-False] PASSED [ 77%] tests/text/test_font.py::DescribeFont::it_knows_its_underline_type[w:r/w:rPr/w:u{w:val=double}-DOUBLE (3)] PASSED [ 77%] tests/text/test_font.py::DescribeFont::it_knows_its_underline_type[w:r/w:rPr/w:u{w:val=wave}-WAVY (11)] PASSED [ 77%] tests/text/test_font.py::DescribeFont::it_can_change_its_underline_type[w:r-True-w:r/w:rPr/w:u{w:val=single}] PASSED [ 77%] tests/text/test_font.py::DescribeFont::it_can_change_its_underline_type[w:r-False-w:r/w:rPr/w:u{w:val=none}] PASSED [ 77%] tests/text/test_font.py::DescribeFont::it_can_change_its_underline_type[w:r-None-w:r/w:rPr] PASSED [ 77%] tests/text/test_font.py::DescribeFont::it_can_change_its_underline_type[w:r-SINGLE (1)-w:r/w:rPr/w:u{w:val=single}] PASSED [ 77%] tests/text/test_font.py::DescribeFont::it_can_change_its_underline_type[w:r-THICK (6)-w:r/w:rPr/w:u{w:val=thick}] PASSED [ 77%] tests/text/test_font.py::DescribeFont::it_can_change_its_underline_type[w:r/w:rPr/w:u{w:val=single}-True-w:r/w:rPr/w:u{w:val=single}] PASSED [ 77%] tests/text/test_font.py::DescribeFont::it_can_change_its_underline_type[w:r/w:rPr/w:u{w:val=single}-False-w:r/w:rPr/w:u{w:val=none}] PASSED [ 77%] tests/text/test_font.py::DescribeFont::it_can_change_its_underline_type[w:r/w:rPr/w:u{w:val=single}-None-w:r/w:rPr] PASSED [ 78%] tests/text/test_font.py::DescribeFont::it_can_change_its_underline_type[w:r/w:rPr/w:u{w:val=single}-SINGLE (1)-w:r/w:rPr/w:u{w:val=single}] PASSED [ 78%] tests/text/test_font.py::DescribeFont::it_can_change_its_underline_type[w:r/w:rPr/w:u{w:val=single}-DOTTED (4)-w:r/w:rPr/w:u{w:val=dotted}] PASSED [ 78%] tests/text/test_font.py::DescribeFont::it_knows_its_highlight_color[w:r-None] PASSED [ 78%] tests/text/test_font.py::DescribeFont::it_knows_its_highlight_color[w:r/w:rPr-None] PASSED [ 78%] tests/text/test_font.py::DescribeFont::it_knows_its_highlight_color[w:r/w:rPr/w:highlight{w:val=default}-AUTO (0)] PASSED [ 78%] tests/text/test_font.py::DescribeFont::it_knows_its_highlight_color[w:r/w:rPr/w:highlight{w:val=blue}-BLUE (2)] PASSED [ 78%] tests/text/test_font.py::DescribeFont::it_can_change_its_highlight_color[w:r-AUTO (0)-w:r/w:rPr/w:highlight{w:val=default}] PASSED [ 78%] tests/text/test_font.py::DescribeFont::it_can_change_its_highlight_color[w:r/w:rPr-BRIGHT_GREEN (4)-w:r/w:rPr/w:highlight{w:val=green}] PASSED [ 78%] tests/text/test_font.py::DescribeFont::it_can_change_its_highlight_color[w:r/w:rPr/w:highlight{w:val=green}-YELLOW (7)-w:r/w:rPr/w:highlight{w:val=yellow}] PASSED [ 78%] tests/text/test_font.py::DescribeFont::it_can_change_its_highlight_color[w:r/w:rPr/w:highlight{w:val=yellow}-None-w:r/w:rPr] PASSED [ 78%] tests/text/test_font.py::DescribeFont::it_can_change_its_highlight_color[w:r/w:rPr-None-w:r/w:rPr] PASSED [ 78%] tests/text/test_font.py::DescribeFont::it_can_change_its_highlight_color[w:r-None-w:r/w:rPr] PASSED [ 78%] tests/text/test_hyperlink.py::DescribeHyperlink::it_knows_the_hyperlink_address[w:hyperlink{r:id=rId6}/w:r/w:t"post"-https://google.com/] PASSED [ 78%] tests/text/test_hyperlink.py::DescribeHyperlink::it_knows_the_hyperlink_address[w:hyperlink{w:anchor=_Toc147925734}-] PASSED [ 78%] tests/text/test_hyperlink.py::DescribeHyperlink::it_knows_the_hyperlink_address[w:hyperlink-] PASSED [ 78%] tests/text/test_hyperlink.py::DescribeHyperlink::it_knows_whether_it_contains_a_page_break[w:hyperlink-False] PASSED [ 79%] tests/text/test_hyperlink.py::DescribeHyperlink::it_knows_whether_it_contains_a_page_break[w:hyperlink/w:r-False] PASSED [ 79%] tests/text/test_hyperlink.py::DescribeHyperlink::it_knows_whether_it_contains_a_page_break[w:hyperlink/w:r/(w:t"abc",w:lastRenderedPageBreak,w:t"def")-True] PASSED [ 79%] tests/text/test_hyperlink.py::DescribeHyperlink::it_knows_whether_it_contains_a_page_break[w:hyperlink/w:r/(w:lastRenderedPageBreak,w:t"abc",w:t"def")-True] PASSED [ 79%] tests/text/test_hyperlink.py::DescribeHyperlink::it_knows_whether_it_contains_a_page_break[w:hyperlink/w:r/(w:t"abc",w:t"def",w:lastRenderedPageBreak)-True] PASSED [ 79%] tests/text/test_hyperlink.py::DescribeHyperlink::it_knows_the_link_fragment_when_there_is_one[w:hyperlink{r:id=rId6}-] PASSED [ 79%] tests/text/test_hyperlink.py::DescribeHyperlink::it_knows_the_link_fragment_when_there_is_one[w:hyperlink{w:anchor=intro}-intro] PASSED [ 79%] tests/text/test_hyperlink.py::DescribeHyperlink::it_provides_access_to_the_runs_it_contains[w:hyperlink-0] PASSED [ 79%] tests/text/test_hyperlink.py::DescribeHyperlink::it_provides_access_to_the_runs_it_contains[w:hyperlink/w:r-1] PASSED [ 79%] tests/text/test_hyperlink.py::DescribeHyperlink::it_provides_access_to_the_runs_it_contains[w:hyperlink/(w:r,w:r)-2] PASSED [ 79%] tests/text/test_hyperlink.py::DescribeHyperlink::it_provides_access_to_the_runs_it_contains[w:hyperlink/(w:r,w:lastRenderedPageBreak)-1] PASSED [ 79%] tests/text/test_hyperlink.py::DescribeHyperlink::it_provides_access_to_the_runs_it_contains[w:hyperlink/(w:lastRenderedPageBreak,w:r)-1] PASSED [ 79%] tests/text/test_hyperlink.py::DescribeHyperlink::it_provides_access_to_the_runs_it_contains[w:hyperlink/(w:r,w:lastRenderedPageBreak,w:r)-2] PASSED [ 79%] tests/text/test_hyperlink.py::DescribeHyperlink::it_knows_the_visible_text_of_the_link[w:hyperlink-] PASSED [ 79%] tests/text/test_hyperlink.py::DescribeHyperlink::it_knows_the_visible_text_of_the_link[w:hyperlink/w:r-] PASSED [ 79%] tests/text/test_hyperlink.py::DescribeHyperlink::it_knows_the_visible_text_of_the_link[w:hyperlink/w:r/w:t"foobar"-foobar] PASSED [ 80%] tests/text/test_hyperlink.py::DescribeHyperlink::it_knows_the_visible_text_of_the_link[w:hyperlink/w:r/(w:t"foo",w:lastRenderedPageBreak,w:t"bar")-foobar] PASSED [ 80%] tests/text/test_hyperlink.py::DescribeHyperlink::it_knows_the_visible_text_of_the_link[w:hyperlink/w:r/(w:t"abc",w:tab,w:t"def",w:noBreakHyphen)-abc\tdef-] PASSED [ 80%] tests/text/test_hyperlink.py::DescribeHyperlink::it_knows_the_full_url_for_web_addresses[w:hyperlink-] PASSED [ 80%] tests/text/test_hyperlink.py::DescribeHyperlink::it_knows_the_full_url_for_web_addresses[w:hyperlink{w:anchor=_Toc147925734}-] PASSED [ 80%] tests/text/test_hyperlink.py::DescribeHyperlink::it_knows_the_full_url_for_web_addresses[w:hyperlink{r:id=rId6}/w:r/w:t"post"-https://google.com/] PASSED [ 80%] tests/text/test_hyperlink.py::DescribeHyperlink::it_knows_the_full_url_for_web_addresses[w:hyperlink{r:id=rId6,w:anchor=foo}/w:r/w:t"post"-https://google.com/#foo] PASSED [ 80%] tests/text/test_pagebreak.py::DescribeRenderedPageBreak::it_raises_on_preceding_fragment_when_page_break_is_not_first_in_paragrah PASSED [ 80%] tests/text/test_pagebreak.py::DescribeRenderedPageBreak::it_produces_None_for_preceding_fragment_when_page_break_is_leading PASSED [ 80%] tests/text/test_pagebreak.py::DescribeRenderedPageBreak::it_can_split_off_the_preceding_paragraph_content_when_in_a_run PASSED [ 80%] tests/text/test_pagebreak.py::DescribeRenderedPageBreak::and_it_can_split_off_the_preceding_paragraph_content_when_in_a_hyperlink PASSED [ 80%] tests/text/test_pagebreak.py::DescribeRenderedPageBreak::it_raises_on_following_fragment_when_page_break_is_not_first_in_paragrah PASSED [ 80%] tests/text/test_pagebreak.py::DescribeRenderedPageBreak::it_produces_None_for_following_fragment_when_page_break_is_trailing PASSED [ 80%] tests/text/test_pagebreak.py::DescribeRenderedPageBreak::it_can_split_off_the_following_paragraph_content_when_in_a_run PASSED [ 80%] tests/text/test_pagebreak.py::DescribeRenderedPageBreak::and_it_can_split_off_the_following_paragraph_content_when_in_a_hyperlink PASSED [ 80%] tests/text/test_paragraph.py::DescribeParagraph::it_knows_whether_it_contains_a_page_break[w:p/w:r-False] PASSED [ 80%] tests/text/test_paragraph.py::DescribeParagraph::it_knows_whether_it_contains_a_page_break[w:p/w:r/w:t"foobar"-False] PASSED [ 81%] tests/text/test_paragraph.py::DescribeParagraph::it_knows_whether_it_contains_a_page_break[w:p/w:hyperlink/w:r/(w:t"abc",w:lastRenderedPageBreak,w:t"def")-True] PASSED [ 81%] tests/text/test_paragraph.py::DescribeParagraph::it_knows_whether_it_contains_a_page_break[w:p/w:r/(w:lastRenderedPageBreak, w:lastRenderedPageBreak)-True] PASSED [ 81%] tests/text/test_paragraph.py::DescribeParagraph::it_provides_access_to_the_hyperlinks_it_contains[w:p-0] PASSED [ 81%] tests/text/test_paragraph.py::DescribeParagraph::it_provides_access_to_the_hyperlinks_it_contains[w:p/w:r-0] PASSED [ 81%] tests/text/test_paragraph.py::DescribeParagraph::it_provides_access_to_the_hyperlinks_it_contains[w:p/w:hyperlink-1] PASSED [ 81%] tests/text/test_paragraph.py::DescribeParagraph::it_provides_access_to_the_hyperlinks_it_contains[w:p/(w:r,w:hyperlink,w:r)-1] PASSED [ 81%] tests/text/test_paragraph.py::DescribeParagraph::it_provides_access_to_the_hyperlinks_it_contains[w:p/(w:r,w:hyperlink,w:r,w:hyperlink)-2] PASSED [ 81%] tests/text/test_paragraph.py::DescribeParagraph::it_provides_access_to_the_hyperlinks_it_contains[w:p/(w:hyperlink,w:r,w:hyperlink,w:r)-2] PASSED [ 81%] tests/text/test_paragraph.py::DescribeParagraph::it_can_iterate_its_inner_content_items[w:p-expected0] PASSED [ 81%] tests/text/test_paragraph.py::DescribeParagraph::it_can_iterate_its_inner_content_items[w:p/w:r-expected1] PASSED [ 81%] tests/text/test_paragraph.py::DescribeParagraph::it_can_iterate_its_inner_content_items[w:p/w:hyperlink-expected2] PASSED [ 81%] tests/text/test_paragraph.py::DescribeParagraph::it_can_iterate_its_inner_content_items[w:p/(w:r,w:hyperlink,w:r)-expected3] PASSED [ 81%] tests/text/test_paragraph.py::DescribeParagraph::it_can_iterate_its_inner_content_items[w:p/(w:hyperlink,w:r,w:hyperlink)-expected4] PASSED [ 81%] tests/text/test_paragraph.py::DescribeParagraph::it_knows_its_paragraph_style PASSED [ 81%] tests/text/test_paragraph.py::DescribeParagraph::it_can_change_its_paragraph_style[style_set_fixture0] PASSED [ 81%] tests/text/test_paragraph.py::DescribeParagraph::it_can_change_its_paragraph_style[style_set_fixture1] PASSED [ 82%] tests/text/test_paragraph.py::DescribeParagraph::it_can_change_its_paragraph_style[style_set_fixture2] PASSED [ 82%] tests/text/test_paragraph.py::DescribeParagraph::it_can_change_its_paragraph_style[style_set_fixture3] PASSED [ 82%] tests/text/test_paragraph.py::DescribeParagraph::it_can_change_its_paragraph_style[style_set_fixture4] PASSED [ 82%] tests/text/test_paragraph.py::DescribeParagraph::it_provides_access_to_the_rendered_page_breaks_it_contains[w:p-0] PASSED [ 82%] tests/text/test_paragraph.py::DescribeParagraph::it_provides_access_to_the_rendered_page_breaks_it_contains[w:p/w:r-0] PASSED [ 82%] tests/text/test_paragraph.py::DescribeParagraph::it_provides_access_to_the_rendered_page_breaks_it_contains[w:p/w:r/w:lastRenderedPageBreak-1] PASSED [ 82%] tests/text/test_paragraph.py::DescribeParagraph::it_provides_access_to_the_rendered_page_breaks_it_contains[w:p/w:hyperlink/w:r/w:lastRenderedPageBreak-1] PASSED [ 82%] tests/text/test_paragraph.py::DescribeParagraph::it_provides_access_to_the_rendered_page_breaks_it_contains[w:p/(w:r/w:lastRenderedPageBreak,w:hyperlink/w:r/w:lastRenderedPageBreak)-2] PASSED [ 82%] tests/text/test_paragraph.py::DescribeParagraph::it_provides_access_to_the_rendered_page_breaks_it_contains[w:p/(w:hyperlink/w:r/w:lastRenderedPageBreak,w:r,w:r/w:lastRenderedPageBreak,w:r,w:hyperlink)-2] PASSED [ 82%] tests/text/test_paragraph.py::DescribeParagraph::it_knows_the_text_it_contains[w:p-] PASSED [ 82%] tests/text/test_paragraph.py::DescribeParagraph::it_knows_the_text_it_contains[w:p/w:r-] PASSED [ 82%] tests/text/test_paragraph.py::DescribeParagraph::it_knows_the_text_it_contains[w:p/w:r/w:t-] PASSED [ 82%] tests/text/test_paragraph.py::DescribeParagraph::it_knows_the_text_it_contains[w:p/w:r/w:t"foo"-foo] PASSED [ 82%] tests/text/test_paragraph.py::DescribeParagraph::it_knows_the_text_it_contains[w:p/w:r/(w:t"foo", w:t"bar")-foobar] PASSED [ 82%] tests/text/test_paragraph.py::DescribeParagraph::it_knows_the_text_it_contains[w:p/w:r/(w:t"fo ", w:t"bar")-fo bar] PASSED [ 83%] tests/text/test_paragraph.py::DescribeParagraph::it_knows_the_text_it_contains[w:p/w:r/(w:t"foo", w:tab, w:t"bar")-foo\tbar] PASSED [ 83%] tests/text/test_paragraph.py::DescribeParagraph::it_knows_the_text_it_contains[w:p/w:r/(w:t"foo", w:br, w:t"bar")-foo\nbar] PASSED [ 83%] tests/text/test_paragraph.py::DescribeParagraph::it_knows_the_text_it_contains[w:p/w:r/(w:t"foo", w:cr, w:t"bar")-foo\nbar] PASSED [ 83%] tests/text/test_paragraph.py::DescribeParagraph::it_knows_the_text_it_contains[w:p/(w:r/w:t"click ",w:hyperlink{r:id=rId6}/w:r/w:t"here",w:r/w:t" for more")-click here for more] PASSED [ 83%] tests/text/test_paragraph.py::DescribeParagraph::it_can_replace_the_text_it_contains PASSED [ 83%] tests/text/test_paragraph.py::DescribeParagraph::it_knows_its_alignment_value[alignment_get_fixture0] PASSED [ 83%] tests/text/test_paragraph.py::DescribeParagraph::it_knows_its_alignment_value[alignment_get_fixture1] PASSED [ 83%] tests/text/test_paragraph.py::DescribeParagraph::it_can_change_its_alignment_value[alignment_set_fixture0] PASSED [ 83%] tests/text/test_paragraph.py::DescribeParagraph::it_can_change_its_alignment_value[alignment_set_fixture1] PASSED [ 83%] tests/text/test_paragraph.py::DescribeParagraph::it_can_change_its_alignment_value[alignment_set_fixture2] PASSED [ 83%] tests/text/test_paragraph.py::DescribeParagraph::it_can_change_its_alignment_value[alignment_set_fixture3] PASSED [ 83%] tests/text/test_paragraph.py::DescribeParagraph::it_provides_access_to_its_paragraph_format PASSED [ 83%] tests/text/test_paragraph.py::DescribeParagraph::it_provides_access_to_the_runs_it_contains PASSED [ 83%] tests/text/test_paragraph.py::DescribeParagraph::it_can_add_a_run_to_itself[add_run_fixture0] PASSED [ 83%] tests/text/test_paragraph.py::DescribeParagraph::it_can_add_a_run_to_itself[add_run_fixture1] PASSED [ 83%] tests/text/test_paragraph.py::DescribeParagraph::it_can_add_a_run_to_itself[add_run_fixture2] PASSED [ 84%] tests/text/test_paragraph.py::DescribeParagraph::it_can_add_a_run_to_itself[add_run_fixture3] PASSED [ 84%] tests/text/test_paragraph.py::DescribeParagraph::it_can_insert_a_paragraph_before_itself[insert_before_fixture0] PASSED [ 84%] tests/text/test_paragraph.py::DescribeParagraph::it_can_insert_a_paragraph_before_itself[insert_before_fixture1] PASSED [ 84%] tests/text/test_paragraph.py::DescribeParagraph::it_can_insert_a_paragraph_before_itself[insert_before_fixture2] PASSED [ 84%] tests/text/test_paragraph.py::DescribeParagraph::it_can_insert_a_paragraph_before_itself[insert_before_fixture3] PASSED [ 84%] tests/text/test_paragraph.py::DescribeParagraph::it_can_remove_its_content_while_preserving_formatting[clear_fixture0] PASSED [ 84%] tests/text/test_paragraph.py::DescribeParagraph::it_can_remove_its_content_while_preserving_formatting[clear_fixture1] PASSED [ 84%] tests/text/test_paragraph.py::DescribeParagraph::it_can_remove_its_content_while_preserving_formatting[clear_fixture2] PASSED [ 84%] tests/text/test_paragraph.py::DescribeParagraph::it_can_remove_its_content_while_preserving_formatting[clear_fixture3] PASSED [ 84%] tests/text/test_paragraph.py::DescribeParagraph::it_inserts_a_paragraph_before_to_help[_insert_before_fixture0] PASSED [ 84%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_alignment_value[alignment_get_fixture0] PASSED [ 84%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_alignment_value[alignment_get_fixture1] PASSED [ 84%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_alignment_value[alignment_get_fixture2] PASSED [ 84%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_alignment_value[alignment_set_fixture0] PASSED [ 84%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_alignment_value[alignment_set_fixture1] PASSED [ 84%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_alignment_value[alignment_set_fixture2] PASSED [ 85%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_alignment_value[alignment_set_fixture3] PASSED [ 85%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_alignment_value[alignment_set_fixture4] PASSED [ 85%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_space_before[space_before_get_fixture0] PASSED [ 85%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_space_before[space_before_get_fixture1] PASSED [ 85%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_space_before[space_before_get_fixture2] PASSED [ 85%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_space_before[space_before_get_fixture3] PASSED [ 85%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_space_before[space_before_set_fixture0] PASSED [ 85%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_space_before[space_before_set_fixture1] PASSED [ 85%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_space_before[space_before_set_fixture2] PASSED [ 85%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_space_before[space_before_set_fixture3] PASSED [ 85%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_space_before[space_before_set_fixture4] PASSED [ 85%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_space_before[space_before_set_fixture5] PASSED [ 85%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_space_before[space_before_set_fixture6] PASSED [ 85%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_space_before[space_before_set_fixture7] PASSED [ 85%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_space_after[space_after_get_fixture0] PASSED [ 86%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_space_after[space_after_get_fixture1] PASSED [ 86%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_space_after[space_after_get_fixture2] PASSED [ 86%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_space_after[space_after_get_fixture3] PASSED [ 86%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_space_after[space_after_set_fixture0] PASSED [ 86%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_space_after[space_after_set_fixture1] PASSED [ 86%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_space_after[space_after_set_fixture2] PASSED [ 86%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_space_after[space_after_set_fixture3] PASSED [ 86%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_space_after[space_after_set_fixture4] PASSED [ 86%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_space_after[space_after_set_fixture5] PASSED [ 86%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_space_after[space_after_set_fixture6] PASSED [ 86%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_space_after[space_after_set_fixture7] PASSED [ 86%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_line_spacing[line_spacing_get_fixture0] PASSED [ 86%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_line_spacing[line_spacing_get_fixture1] PASSED [ 86%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_line_spacing[line_spacing_get_fixture2] PASSED [ 86%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_line_spacing[line_spacing_get_fixture3] PASSED [ 86%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_line_spacing[line_spacing_get_fixture4] PASSED [ 87%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_line_spacing[line_spacing_get_fixture5] PASSED [ 87%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_line_spacing[line_spacing_set_fixture0] PASSED [ 87%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_line_spacing[line_spacing_set_fixture1] PASSED [ 87%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_line_spacing[line_spacing_set_fixture2] PASSED [ 87%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_line_spacing[line_spacing_set_fixture3] PASSED [ 87%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_line_spacing[line_spacing_set_fixture4] PASSED [ 87%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_line_spacing[line_spacing_set_fixture5] PASSED [ 87%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_line_spacing[line_spacing_set_fixture6] PASSED [ 87%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_line_spacing[line_spacing_set_fixture7] PASSED [ 87%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_line_spacing[line_spacing_set_fixture8] PASSED [ 87%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_line_spacing_rule[line_spacing_rule_get_fixture0] PASSED [ 87%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_line_spacing_rule[line_spacing_rule_get_fixture1] PASSED [ 87%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_line_spacing_rule[line_spacing_rule_get_fixture2] PASSED [ 87%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_line_spacing_rule[line_spacing_rule_get_fixture3] PASSED [ 87%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_line_spacing_rule[line_spacing_rule_get_fixture4] PASSED [ 87%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_line_spacing_rule[line_spacing_rule_get_fixture5] PASSED [ 88%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_line_spacing_rule[line_spacing_rule_get_fixture6] PASSED [ 88%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_line_spacing_rule[line_spacing_rule_get_fixture7] PASSED [ 88%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_line_spacing_rule[line_spacing_rule_get_fixture8] PASSED [ 88%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_line_spacing_rule[line_spacing_rule_get_fixture9] PASSED [ 88%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_line_spacing_rule[line_spacing_rule_set_fixture0] PASSED [ 88%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_line_spacing_rule[line_spacing_rule_set_fixture1] PASSED [ 88%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_line_spacing_rule[line_spacing_rule_set_fixture2] PASSED [ 88%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_line_spacing_rule[line_spacing_rule_set_fixture3] PASSED [ 88%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_line_spacing_rule[line_spacing_rule_set_fixture4] PASSED [ 88%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_line_spacing_rule[line_spacing_rule_set_fixture5] PASSED [ 88%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_first_line_indent[first_indent_get_fixture0] PASSED [ 88%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_first_line_indent[first_indent_get_fixture1] PASSED [ 88%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_first_line_indent[first_indent_get_fixture2] PASSED [ 88%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_first_line_indent[first_indent_get_fixture3] PASSED [ 88%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_first_line_indent[first_indent_get_fixture4] PASSED [ 89%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_first_line_indent[first_indent_set_fixture0] PASSED [ 89%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_first_line_indent[first_indent_set_fixture1] PASSED [ 89%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_first_line_indent[first_indent_set_fixture2] PASSED [ 89%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_first_line_indent[first_indent_set_fixture3] PASSED [ 89%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_first_line_indent[first_indent_set_fixture4] PASSED [ 89%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_first_line_indent[first_indent_set_fixture5] PASSED [ 89%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_first_line_indent[first_indent_set_fixture6] PASSED [ 89%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_left_indent[left_indent_get_fixture0] PASSED [ 89%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_left_indent[left_indent_get_fixture1] PASSED [ 89%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_left_indent[left_indent_get_fixture2] PASSED [ 89%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_left_indent[left_indent_get_fixture3] PASSED [ 89%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_left_indent[left_indent_get_fixture4] PASSED [ 89%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_left_indent[left_indent_set_fixture0] PASSED [ 89%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_left_indent[left_indent_set_fixture1] PASSED [ 89%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_left_indent[left_indent_set_fixture2] PASSED [ 89%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_left_indent[left_indent_set_fixture3] PASSED [ 90%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_left_indent[left_indent_set_fixture4] PASSED [ 90%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_right_indent[right_indent_get_fixture0] PASSED [ 90%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_right_indent[right_indent_get_fixture1] PASSED [ 90%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_right_indent[right_indent_get_fixture2] PASSED [ 90%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_right_indent[right_indent_get_fixture3] PASSED [ 90%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_right_indent[right_indent_get_fixture4] PASSED [ 90%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_right_indent[right_indent_set_fixture0] PASSED [ 90%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_right_indent[right_indent_set_fixture1] PASSED [ 90%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_right_indent[right_indent_set_fixture2] PASSED [ 90%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_right_indent[right_indent_set_fixture3] PASSED [ 90%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_right_indent[right_indent_set_fixture4] PASSED [ 90%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_on_off_prop_values[on_off_get_fixture0] PASSED [ 90%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_on_off_prop_values[on_off_get_fixture1] PASSED [ 90%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_on_off_prop_values[on_off_get_fixture2] PASSED [ 90%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_on_off_prop_values[on_off_get_fixture3] PASSED [ 90%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_on_off_prop_values[on_off_get_fixture4] PASSED [ 91%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_on_off_prop_values[on_off_get_fixture5] PASSED [ 91%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_on_off_prop_values[on_off_get_fixture6] PASSED [ 91%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_on_off_prop_values[on_off_get_fixture7] PASSED [ 91%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_on_off_prop_values[on_off_get_fixture8] PASSED [ 91%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_on_off_prop_values[on_off_get_fixture9] PASSED [ 91%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_on_off_prop_values[on_off_get_fixture10] PASSED [ 91%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_on_off_prop_values[on_off_get_fixture11] PASSED [ 91%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_on_off_props[on_off_set_fixture0] PASSED [ 91%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_on_off_props[on_off_set_fixture1] PASSED [ 91%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_on_off_props[on_off_set_fixture2] PASSED [ 91%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_on_off_props[on_off_set_fixture3] PASSED [ 91%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_on_off_props[on_off_set_fixture4] PASSED [ 91%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_on_off_props[on_off_set_fixture5] PASSED [ 91%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_on_off_props[on_off_set_fixture6] PASSED [ 91%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_on_off_props[on_off_set_fixture7] PASSED [ 92%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_on_off_props[on_off_set_fixture8] PASSED [ 92%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_on_off_props[on_off_set_fixture9] PASSED [ 92%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_on_off_props[on_off_set_fixture10] PASSED [ 92%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_on_off_props[on_off_set_fixture11] PASSED [ 92%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_provides_access_to_its_tab_stops PASSED [ 92%] tests/text/test_run.py::DescribeRun::it_knows_its_bool_prop_states[bool_prop_get_fixture0] PASSED [ 92%] tests/text/test_run.py::DescribeRun::it_knows_its_bool_prop_states[bool_prop_get_fixture1] PASSED [ 92%] tests/text/test_run.py::DescribeRun::it_knows_its_bool_prop_states[bool_prop_get_fixture2] PASSED [ 92%] tests/text/test_run.py::DescribeRun::it_knows_its_bool_prop_states[bool_prop_get_fixture3] PASSED [ 92%] tests/text/test_run.py::DescribeRun::it_knows_its_bool_prop_states[bool_prop_get_fixture4] PASSED [ 92%] tests/text/test_run.py::DescribeRun::it_knows_its_bool_prop_states[bool_prop_get_fixture5] PASSED [ 92%] tests/text/test_run.py::DescribeRun::it_can_change_its_bool_prop_settings[bool_prop_set_fixture0] PASSED [ 92%] tests/text/test_run.py::DescribeRun::it_can_change_its_bool_prop_settings[bool_prop_set_fixture1] PASSED [ 92%] tests/text/test_run.py::DescribeRun::it_can_change_its_bool_prop_settings[bool_prop_set_fixture2] PASSED [ 92%] tests/text/test_run.py::DescribeRun::it_can_change_its_bool_prop_settings[bool_prop_set_fixture3] PASSED [ 92%] tests/text/test_run.py::DescribeRun::it_can_change_its_bool_prop_settings[bool_prop_set_fixture4] PASSED [ 93%] tests/text/test_run.py::DescribeRun::it_can_change_its_bool_prop_settings[bool_prop_set_fixture5] PASSED [ 93%] tests/text/test_run.py::DescribeRun::it_can_change_its_bool_prop_settings[bool_prop_set_fixture6] PASSED [ 93%] tests/text/test_run.py::DescribeRun::it_can_change_its_bool_prop_settings[bool_prop_set_fixture7] PASSED [ 93%] tests/text/test_run.py::DescribeRun::it_can_change_its_bool_prop_settings[bool_prop_set_fixture8] PASSED [ 93%] tests/text/test_run.py::DescribeRun::it_can_change_its_bool_prop_settings[bool_prop_set_fixture9] PASSED [ 93%] tests/text/test_run.py::DescribeRun::it_can_change_its_bool_prop_settings[bool_prop_set_fixture10] PASSED [ 93%] tests/text/test_run.py::DescribeRun::it_can_change_its_bool_prop_settings[bool_prop_set_fixture11] PASSED [ 93%] tests/text/test_run.py::DescribeRun::it_knows_whether_it_contains_a_page_break[w:r-False] PASSED [ 93%] tests/text/test_run.py::DescribeRun::it_knows_whether_it_contains_a_page_break[w:r/w:t"foobar"-False] PASSED [ 93%] tests/text/test_run.py::DescribeRun::it_knows_whether_it_contains_a_page_break[w:r/(w:t"abc", w:lastRenderedPageBreak, w:t"def")-True] PASSED [ 93%] tests/text/test_run.py::DescribeRun::it_knows_whether_it_contains_a_page_break[w:r/(w:lastRenderedPageBreak, w:lastRenderedPageBreak)-True] PASSED [ 93%] tests/text/test_run.py::DescribeRun::it_can_iterate_its_inner_content_items[w:r-expected0] PASSED [ 93%] tests/text/test_run.py::DescribeRun::it_can_iterate_its_inner_content_items[w:r/(w:t"foo",w:cr,w:t"bar")-expected1] PASSED [ 93%] tests/text/test_run.py::DescribeRun::it_can_iterate_its_inner_content_items[w:r/(w:t"abc",w:br,w:lastRenderedPageBreak,w:noBreakHyphen,w:t"def")-expected2] PASSED [ 93%] tests/text/test_run.py::DescribeRun::it_can_iterate_its_inner_content_items[w:r/(w:t"abc", w:lastRenderedPageBreak, w:drawing)-expected3] PASSED [ 93%] tests/text/test_run.py::DescribeRun::it_knows_its_character_style PASSED [ 94%] tests/text/test_run.py::DescribeRun::it_can_change_its_character_style[style_set_fixture0] PASSED [ 94%] tests/text/test_run.py::DescribeRun::it_can_change_its_character_style[style_set_fixture1] PASSED [ 94%] tests/text/test_run.py::DescribeRun::it_can_change_its_character_style[style_set_fixture2] PASSED [ 94%] tests/text/test_run.py::DescribeRun::it_can_change_its_character_style[style_set_fixture3] PASSED [ 94%] tests/text/test_run.py::DescribeRun::it_can_change_its_character_style[style_set_fixture4] PASSED [ 94%] tests/text/test_run.py::DescribeRun::it_knows_its_underline_type[underline_get_fixture0] PASSED [ 94%] tests/text/test_run.py::DescribeRun::it_knows_its_underline_type[underline_get_fixture1] PASSED [ 94%] tests/text/test_run.py::DescribeRun::it_knows_its_underline_type[underline_get_fixture2] PASSED [ 94%] tests/text/test_run.py::DescribeRun::it_knows_its_underline_type[underline_get_fixture3] PASSED [ 94%] tests/text/test_run.py::DescribeRun::it_knows_its_underline_type[underline_get_fixture4] PASSED [ 94%] tests/text/test_run.py::DescribeRun::it_knows_its_underline_type[underline_get_fixture5] PASSED [ 94%] tests/text/test_run.py::DescribeRun::it_can_change_its_underline_type[underline_set_fixture0] PASSED [ 94%] tests/text/test_run.py::DescribeRun::it_can_change_its_underline_type[underline_set_fixture1] PASSED [ 94%] tests/text/test_run.py::DescribeRun::it_can_change_its_underline_type[underline_set_fixture2] PASSED [ 94%] tests/text/test_run.py::DescribeRun::it_can_change_its_underline_type[underline_set_fixture3] PASSED [ 95%] tests/text/test_run.py::DescribeRun::it_can_change_its_underline_type[underline_set_fixture4] PASSED [ 95%] tests/text/test_run.py::DescribeRun::it_can_change_its_underline_type[underline_set_fixture5] PASSED [ 95%] tests/text/test_run.py::DescribeRun::it_can_change_its_underline_type[underline_set_fixture6] PASSED [ 95%] tests/text/test_run.py::DescribeRun::it_can_change_its_underline_type[underline_set_fixture7] PASSED [ 95%] tests/text/test_run.py::DescribeRun::it_can_change_its_underline_type[underline_set_fixture8] PASSED [ 95%] tests/text/test_run.py::DescribeRun::it_can_change_its_underline_type[underline_set_fixture9] PASSED [ 95%] tests/text/test_run.py::DescribeRun::it_raises_on_assign_invalid_underline_value[foobar] PASSED [ 95%] tests/text/test_run.py::DescribeRun::it_raises_on_assign_invalid_underline_value[42] PASSED [ 95%] tests/text/test_run.py::DescribeRun::it_raises_on_assign_invalid_underline_value[single] PASSED [ 95%] tests/text/test_run.py::DescribeRun::it_provides_access_to_its_font PASSED [ 95%] tests/text/test_run.py::DescribeRun::it_can_add_text[add_text_fixture0] PASSED [ 95%] tests/text/test_run.py::DescribeRun::it_can_add_text[add_text_fixture1] PASSED [ 95%] tests/text/test_run.py::DescribeRun::it_can_add_text[add_text_fixture2] PASSED [ 95%] tests/text/test_run.py::DescribeRun::it_can_add_text[add_text_fixture3] PASSED [ 95%] tests/text/test_run.py::DescribeRun::it_can_add_a_break[WD_BREAK_TYPE.LINE-w:r/w:br] PASSED [ 95%] tests/text/test_run.py::DescribeRun::it_can_add_a_break[WD_BREAK_TYPE.PAGE-w:r/w:br{w:type=page}] PASSED [ 96%] tests/text/test_run.py::DescribeRun::it_can_add_a_break[WD_BREAK_TYPE.COLUMN-w:r/w:br{w:type=column}] PASSED [ 96%] tests/text/test_run.py::DescribeRun::it_can_add_a_break[WD_BREAK_TYPE.LINE_CLEAR_LEFT-w:r/w:br{w:clear=left}] PASSED [ 96%] tests/text/test_run.py::DescribeRun::it_can_add_a_break[WD_BREAK_TYPE.LINE_CLEAR_RIGHT-w:r/w:br{w:clear=right}] PASSED [ 96%] tests/text/test_run.py::DescribeRun::it_can_add_a_break[WD_BREAK_TYPE.LINE_CLEAR_ALL-w:r/w:br{w:clear=all}] PASSED [ 96%] tests/text/test_run.py::DescribeRun::it_can_add_a_tab[add_tab_fixture0] PASSED [ 96%] tests/text/test_run.py::DescribeRun::it_can_add_a_picture PASSED [ 96%] tests/text/test_run.py::DescribeRun::it_can_remove_its_content_but_keep_formatting[w:r-w:r] PASSED [ 96%] tests/text/test_run.py::DescribeRun::it_can_remove_its_content_but_keep_formatting[w:r/w:t"foo"-w:r] PASSED [ 96%] tests/text/test_run.py::DescribeRun::it_can_remove_its_content_but_keep_formatting[w:r/w:br-w:r] PASSED [ 96%] tests/text/test_run.py::DescribeRun::it_can_remove_its_content_but_keep_formatting[w:r/w:rPr-w:r/w:rPr] PASSED [ 96%] tests/text/test_run.py::DescribeRun::it_can_remove_its_content_but_keep_formatting[w:r/(w:rPr, w:t"foo")-w:r/w:rPr] PASSED [ 96%] tests/text/test_run.py::DescribeRun::it_can_remove_its_content_but_keep_formatting[w:r/(w:rPr/(w:b, w:i), w:t"foo", w:cr, w:t"bar")-w:r/w:rPr/(w:b, w:i)] PASSED [ 96%] tests/text/test_run.py::DescribeRun::it_knows_the_text_it_contains[w:r-] PASSED [ 96%] tests/text/test_run.py::DescribeRun::it_knows_the_text_it_contains[w:r/w:t"foobar"-foobar] PASSED [ 96%] tests/text/test_run.py::DescribeRun::it_knows_the_text_it_contains[w:r/(w:t"abc", w:tab, w:t"def", w:cr)-abc\tdef\n] PASSED [ 96%] tests/text/test_run.py::DescribeRun::it_knows_the_text_it_contains[w:r/(w:br{w:type=page}, w:t"abc", w:t"def", w:tab)-abcdef\t] PASSED [ 97%] tests/text/test_run.py::DescribeRun::it_can_replace_the_text_it_contains[text_set_fixture0] PASSED [ 97%] tests/text/test_run.py::DescribeRun::it_can_replace_the_text_it_contains[text_set_fixture1] PASSED [ 97%] tests/text/test_run.py::DescribeRun::it_can_replace_the_text_it_contains[text_set_fixture2] PASSED [ 97%] tests/text/test_run.py::DescribeRun::it_can_replace_the_text_it_contains[text_set_fixture3] PASSED [ 97%] tests/text/test_tabstops.py::DescribeTabStop::it_knows_its_position PASSED [ 97%] tests/text/test_tabstops.py::DescribeTabStop::it_can_change_its_position[position_set_fixture0] PASSED [ 97%] tests/text/test_tabstops.py::DescribeTabStop::it_can_change_its_position[position_set_fixture1] PASSED [ 97%] tests/text/test_tabstops.py::DescribeTabStop::it_can_change_its_position[position_set_fixture2] PASSED [ 97%] tests/text/test_tabstops.py::DescribeTabStop::it_can_change_its_position[position_set_fixture3] PASSED [ 97%] tests/text/test_tabstops.py::DescribeTabStop::it_can_change_its_position[position_set_fixture4] PASSED [ 97%] tests/text/test_tabstops.py::DescribeTabStop::it_knows_its_alignment[alignment_get_fixture0] PASSED [ 97%] tests/text/test_tabstops.py::DescribeTabStop::it_knows_its_alignment[alignment_get_fixture1] PASSED [ 97%] tests/text/test_tabstops.py::DescribeTabStop::it_can_change_its_alignment[alignment_set_fixture0] PASSED [ 97%] tests/text/test_tabstops.py::DescribeTabStop::it_can_change_its_alignment[alignment_set_fixture1] PASSED [ 97%] tests/text/test_tabstops.py::DescribeTabStop::it_knows_its_leader[leader_get_fixture0] PASSED [ 98%] tests/text/test_tabstops.py::DescribeTabStop::it_knows_its_leader[leader_get_fixture1] PASSED [ 98%] tests/text/test_tabstops.py::DescribeTabStop::it_knows_its_leader[leader_get_fixture2] PASSED [ 98%] tests/text/test_tabstops.py::DescribeTabStop::it_can_change_its_leader[leader_set_fixture0] PASSED [ 98%] tests/text/test_tabstops.py::DescribeTabStop::it_can_change_its_leader[leader_set_fixture1] PASSED [ 98%] tests/text/test_tabstops.py::DescribeTabStop::it_can_change_its_leader[leader_set_fixture2] PASSED [ 98%] tests/text/test_tabstops.py::DescribeTabStop::it_can_change_its_leader[leader_set_fixture3] PASSED [ 98%] tests/text/test_tabstops.py::DescribeTabStop::it_can_change_its_leader[leader_set_fixture4] PASSED [ 98%] tests/text/test_tabstops.py::DescribeTabStop::it_can_change_its_leader[leader_set_fixture5] PASSED [ 98%] tests/text/test_tabstops.py::DescribeTabStops::it_knows_its_length[len_fixture0] PASSED [ 98%] tests/text/test_tabstops.py::DescribeTabStops::it_knows_its_length[len_fixture1] PASSED [ 98%] tests/text/test_tabstops.py::DescribeTabStops::it_can_iterate_over_its_tab_stops[iter_fixture0] PASSED [ 98%] tests/text/test_tabstops.py::DescribeTabStops::it_can_iterate_over_its_tab_stops[iter_fixture1] PASSED [ 98%] tests/text/test_tabstops.py::DescribeTabStops::it_can_iterate_over_its_tab_stops[iter_fixture2] PASSED [ 98%] tests/text/test_tabstops.py::DescribeTabStops::it_can_get_a_tab_stop_by_index[index_fixture0] PASSED [ 98%] tests/text/test_tabstops.py::DescribeTabStops::it_can_get_a_tab_stop_by_index[index_fixture1] PASSED [ 98%] tests/text/test_tabstops.py::DescribeTabStops::it_can_get_a_tab_stop_by_index[index_fixture2] PASSED [ 99%] tests/text/test_tabstops.py::DescribeTabStops::it_raises_on_indexed_access_when_empty PASSED [ 99%] tests/text/test_tabstops.py::DescribeTabStops::it_can_add_a_tab_stop[add_tab_fixture0] PASSED [ 99%] tests/text/test_tabstops.py::DescribeTabStops::it_can_add_a_tab_stop[add_tab_fixture1] PASSED [ 99%] tests/text/test_tabstops.py::DescribeTabStops::it_can_add_a_tab_stop[add_tab_fixture2] PASSED [ 99%] tests/text/test_tabstops.py::DescribeTabStops::it_can_add_a_tab_stop[add_tab_fixture3] PASSED [ 99%] tests/text/test_tabstops.py::DescribeTabStops::it_can_add_a_tab_stop[add_tab_fixture4] PASSED [ 99%] tests/text/test_tabstops.py::DescribeTabStops::it_can_add_a_tab_stop[add_tab_fixture5] PASSED [ 99%] tests/text/test_tabstops.py::DescribeTabStops::it_can_delete_a_tab_stop[del_fixture0] PASSED [ 99%] tests/text/test_tabstops.py::DescribeTabStops::it_can_delete_a_tab_stop[del_fixture1] PASSED [ 99%] tests/text/test_tabstops.py::DescribeTabStops::it_can_delete_a_tab_stop[del_fixture2] PASSED [ 99%] tests/text/test_tabstops.py::DescribeTabStops::it_raises_on_del_idx_invalid[del_raises_fixture0] PASSED [ 99%] tests/text/test_tabstops.py::DescribeTabStops::it_raises_on_del_idx_invalid[del_raises_fixture1] PASSED [ 99%] tests/text/test_tabstops.py::DescribeTabStops::it_can_clear_all_its_tab_stops[w:pPr] PASSED [ 99%] tests/text/test_tabstops.py::DescribeTabStops::it_can_clear_all_its_tab_stops[w:pPr/w:tabs/w:tab{w:pos=42}] PASSED [ 99%] tests/text/test_tabstops.py::DescribeTabStops::it_can_clear_all_its_tab_stops[w:pPr/w:tabs/(w:tab{w:pos=24},w:tab{w:pos=42})] PASSED [100%] ======================= 1566 passed in 138.81s (0:02:18) ======================= + 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 -fasynchronous-unwind-tables -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/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib64/python3.13/site-packages:/builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages + PYTHONDONTWRITEBYTECODE=1 + PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/.pyproject-builddir' + PYTEST_XDIST_AUTO_NUM_WORKERS=32 + /usr/bin/python3 -m behave --format plain --tags=-wip Feature: Open a document Scenario: Open a specified document Given I have python-docx installed ... passed in 0.002s When I call docx.Document() with the path of a .docx file ... passed in 0.106s Then document is a Document object ... passed in 0.001s Scenario: Open the default document Given I have python-docx installed ... passed in 0.001s When I call docx.Document() with no arguments ... passed in 0.249s Then document is a Document object ... passed in 0.002s Feature: Add a paragraph of text Scenario: Add a paragraph using low-level text API Given a document ... passed in 0.267s When I add a paragraph ... passed in 0.011s And I add a run to the paragraph ... passed in 0.005s And I add text to the run ... passed in 0.002s And I save the document ... passed in 0.178s Then the document contains the text I added ... passed in 0.233s Feature: Add a table Scenario: Access a table Given a document containing a table ... passed in 0.086s Then I can access the table ... passed in 0.002s Scenario: Add a table Given a document ... passed in 0.138s When I add a table ... passed in 0.008s Then the new table appears in the document ... passed in 0.001s Feature: Iterate paragraphs and tables in document-order Scenario: Document.iter_inner_content() Given a Document object with paragraphs and tables ... passed in 0.036s Then document.iter_inner_content() produces the block-items in document order ... passed in 0.003s Scenario: Header.iter_inner_content() Given a Header object with paragraphs and tables ... passed in 0.032s Then header.iter_inner_content() produces the block-items in document order ... passed in 0.004s Scenario: Footer.iter_inner_content() Given a Footer object with paragraphs and tables ... passed in 0.048s Then footer.iter_inner_content() produces the block-items in document order ... passed in 0.004s Scenario: _Cell.iter_inner_content() Given a _Cell object with paragraphs and tables ... passed in 0.037s Then cell.iter_inner_content() produces the block-items in document order ... passed in 0.002s Feature: Access document collections Scenario: Access the inline shapes collection of a document Given a document having inline shapes ... passed in 0.043s Then document.inline_shapes is an InlineShapes object ... passed in 0.001s Scenario: Access the paragraphs in the document body as a list Given a document containing three paragraphs ... passed in 0.148s Then document.paragraphs is a list containing three paragraphs ... passed in 0.001s Scenario: Access the section collection of a document Given a document having sections ... passed in 0.026s Then document.sections is a Sections object ... passed in 0.002s Scenario: Access the styles collection of a document Given a document having styles ... passed in 0.027s Then document.styles is a Styles object ... passed in 0.001s Scenario: Access the tables collection of a document Given a document having three tables ... passed in 0.028s Then document.tables is a list containing three tables ... passed in 0.002s Feature: Access document sections Scenario: Access section in section collection Given a section collection containing 3 sections ... passed in 0.026s Then len(sections) is 3 ... passed in 0.002s And I can iterate over the sections ... passed in 0.002s And I can access a section by index ... passed in 0.003s Feature: Add a heading paragraph Scenario: Add a heading specifying only its text Given a document having built-in styles ... passed in 0.209s When I add a heading specifying only its text ... passed in 0.031s Then the style of the last paragraph is 'Heading 1' ... passed in 0.005s And the last paragraph contains the heading text ... passed in 0.002s Scenario Outline: Add a heading specifying level -- @1.1 Heading level styles Given a document having built-in styles ... passed in 0.238s When I add a heading specifying level=0 ... passed in 0.031s Then the style of the last paragraph is 'Title' ... passed in 0.005s Scenario Outline: Add a heading specifying level -- @1.2 Heading level styles Given a document having built-in styles ... passed in 0.240s When I add a heading specifying level=1 ... passed in 0.106s Then the style of the last paragraph is 'Heading 1' ... passed in 0.006s Scenario Outline: Add a heading specifying level -- @1.3 Heading level styles Given a document having built-in styles ... passed in 0.141s When I add a heading specifying level=2 ... passed in 0.020s Then the style of the last paragraph is 'Heading 2' ... passed in 0.004s Scenario Outline: Add a heading specifying level -- @1.4 Heading level styles Given a document having built-in styles ... passed in 0.136s When I add a heading specifying level=5 ... passed in 0.020s Then the style of the last paragraph is 'Heading 5' ... passed in 0.006s Scenario Outline: Add a heading specifying level -- @1.5 Heading level styles Given a document having built-in styles ... passed in 0.137s When I add a heading specifying level=9 ... passed in 0.020s Then the style of the last paragraph is 'Heading 9' ... passed in 0.004s Feature: Add a page break Scenario: Add a hard page break paragraph Given a blank document ... passed in 0.025s When I add a page break to the document ... passed in 0.003s Then the last paragraph contains only a page break ... passed in 0.002s Feature: Add a paragraph with optional text and style Scenario: Add an empty paragraph Given a blank document ... passed in 0.026s When I add a paragraph without specifying text or style ... passed in 0.002s Then the last paragraph is the empty paragraph I added ... passed in 0.002s Scenario: Add a paragraph specifying its text Given a blank document ... passed in 0.023s When I add a paragraph specifying its text ... passed in 0.004s Then the last paragraph contains the text I specified ... passed in 0.002s Scenario Outline: Add a paragraph specifying its style -- @1.1 ways of specifying a style Given a document ... passed in 0.136s When I add a paragraph specifying its style as a style object ... passed in 0.021s Then the last paragraph has the style I specified ... passed in 0.005s Scenario Outline: Add a paragraph specifying its style -- @1.2 ways of specifying a style Given a document ... passed in 0.192s When I add a paragraph specifying its style as a style name ... passed in 0.028s Then the last paragraph has the style I specified ... passed in 0.004s Feature: Append an inline picture in its own paragraph Scenario: Add a picture at native size Given a blank document ... passed in 0.025s When I add a picture specifying only the image file ... passed in 0.028s Then the document contains the inline picture ... passed in 0.005s And the picture has its native width and height ... passed in 0.002s Scenario: Add a picture specifying both width and height Given a blank document ... passed in 0.030s When I add a picture specifying 1.75" width and 2.5" height ... passed in 0.015s Then picture.width is 1.75 inches ... passed in 0.001s And picture.height is 2.5 inches ... passed in 0.001s Scenario: Add a picture specifying only width Given a blank document ... passed in 0.034s When I add a picture specifying a width of 1.5 inches ... passed in 0.013s Then picture.height is 2.14 inches ... passed in 0.002s Scenario: Add a picture specifying only height Given a blank document ... passed in 0.034s When I add a picture specifying a height of 1.5 inches ... passed in 0.013s Then picture.width is 1.05 inches ... passed in 0.001s Feature: Add a document section Scenario: Add a landscape section to a portrait document Given a single-section document having portrait layout ... passed in 0.056s When I add an even-page section to the document ... passed in 0.008s And I change the new section layout to landscape ... passed in 0.002s Then the document has two sections ... passed in 0.005s And the first section is portrait ... passed in 0.002s And the second section is landscape ... passed in 0.003s Scenario: Document.add_section() adds a section that inherits headers and footers Given a single-section Document object with headers and footers as document ... passed in 0.053s When I execute section = document.add_section() ... passed in 0.005s Then section.header.is_linked_to_previous is True ... passed in 0.002s And section.even_page_header.is_linked_to_previous is True ... passed in 0.002s And section.first_page_header.is_linked_to_previous is True ... passed in 0.002s And section.footer.is_linked_to_previous is True ... passed in 0.002s And section.even_page_footer.is_linked_to_previous is True ... passed in 0.002s And section.first_page_footer.is_linked_to_previous is True ... passed in 0.002s Feature: Add a table Scenario: Add a table specifying only row and column count Given a blank document ... passed in 0.033s When I add a 2 x 2 table specifying only row and column count ... passed in 0.005s Then the document contains a 2 x 2 table ... passed in 0.003s And table.style is styles['Normal Table'] ... passed in 0.004s And the width of each column is 3.0 inches ... passed in 0.002s And the width of each cell is 3.0 inches ... passed in 0.006s Scenario: Add a table specifying style Given a document having built-in styles ... passed in 0.244s When I add a 2 x 2 table specifying style 'Table Grid' ... passed in 0.025s Then the document contains a 2 x 2 table ... passed in 0.003s And table.style is styles['Table Grid'] ... passed in 0.009s Feature: Read and write core document properties Scenario: read the core properties of a document Given a document having known core properties ... passed in 0.028s Then I can access the core properties object ... passed in 0.002s And the core property values match the known values ... passed in 0.170s Scenario: change the core properties of a document Given a document having known core properties ... passed in 0.028s When I assign new values to the properties ... passed in 0.008s Then the core property values match the new values ... passed in 0.005s Scenario: a default core properties part is added if doc doesn't have one Given a document having no core properties part ... passed in 0.022s When I access the core properties object ... passed in 0.005s Then a core properties part with default values is added ... passed in 0.003s Feature: Document.settings Scenario Outline: Access document settings -- @1.1 having a settings part or not Given a document having a settings part ... passed in 0.024s Then document.settings is a Settings object ... passed in 0.001s Scenario Outline: Access document settings -- @1.2 having a settings part or not Given a document having no settings part ... passed in 0.023s Then document.settings is a Settings object ... passed in 0.003s Scenario Outline: Settings.odd_and_even_pages_header_footer getter -- @1.1 Settings.odd_and_even_pages_header_footer states Given a Settings object with odd and even page headers as settings ... passed in 0.039s Then settings.odd_and_even_pages_header_footer is True ... passed in 0.003s Scenario Outline: Settings.odd_and_even_pages_header_footer getter -- @1.2 Settings.odd_and_even_pages_header_footer states Given a Settings object without odd and even page headers as settings ... passed in 0.031s Then settings.odd_and_even_pages_header_footer is False ... passed in 0.002s Scenario Outline: Settings.odd_and_even_pages_header_footer setter -- @1.1 Settings.odd_and_even_pages_header_footer assignment cases Given a Settings object with odd and even page headers as settings ... passed in 0.039s When I assign True to settings.odd_and_even_pages_header_footer ... passed in 0.002s Then settings.odd_and_even_pages_header_footer is True ... passed in 0.002s Scenario Outline: Settings.odd_and_even_pages_header_footer setter -- @1.2 Settings.odd_and_even_pages_header_footer assignment cases Given a Settings object with odd and even page headers as settings ... passed in 0.039s When I assign False to settings.odd_and_even_pages_header_footer ... passed in 0.002s Then settings.odd_and_even_pages_header_footer is False ... passed in 0.001s Scenario Outline: Settings.odd_and_even_pages_header_footer setter -- @1.3 Settings.odd_and_even_pages_header_footer assignment cases Given a Settings object without odd and even page headers as settings ... passed in 0.032s When I assign True to settings.odd_and_even_pages_header_footer ... passed in 0.007s Then settings.odd_and_even_pages_header_footer is True ... passed in 0.002s Scenario Outline: Settings.odd_and_even_pages_header_footer setter -- @1.4 Settings.odd_and_even_pages_header_footer assignment cases Given a Settings object without odd and even page headers as settings ... passed in 0.032s When I assign False to settings.odd_and_even_pages_header_footer ... passed in 0.002s Then settings.odd_and_even_pages_header_footer is False ... passed in 0.001s Feature: Access a document style Scenario Outline: Access style in style collection -- @1.1 having styles or not Given a document having a styles part ... passed in 0.029s Then len(styles) is 6 ... passed in 0.002s And I can iterate over its styles ... passed in 0.002s And I can access a style by style id ... passed in 0.005s And I can access a style by its UI name ... passed in 0.002s Scenario Outline: Access style in style collection -- @1.2 having styles or not Given a document having no styles part ... passed in 0.019s Then len(styles) is 4 ... passed in 0.006s And I can iterate over its styles ... passed in 0.002s And I can access a style by style id ... passed in 0.003s And I can access a style by its UI name ... passed in 0.002s Feature: Header and footer behaviors Scenario Outline: _Header.is_linked_to_previous getter -- @1.1 _Header.is_linked_to_previous states Given a _Header object with a header definition as header ... passed in 0.046s Then header.is_linked_to_previous is False ... passed in 0.003s Scenario Outline: _Header.is_linked_to_previous getter -- @1.2 _Header.is_linked_to_previous states Given a _Header object with no header definition as header ... passed in 0.062s Then header.is_linked_to_previous is True ... passed in 0.004s Scenario Outline: _Header.is_linked_to_previous setter -- @1.1 _Header.is_linked_to_previous state changes Given a _Header object with a header definition as header ... passed in 0.040s When I assign True to header.is_linked_to_previous ... passed in 0.005s Then header.is_linked_to_previous is True ... passed in 0.002s Scenario Outline: _Header.is_linked_to_previous setter -- @1.2 _Header.is_linked_to_previous state changes Given a _Header object with no header definition as header ... passed in 0.041s When I assign False to header.is_linked_to_previous ... passed in 0.006s Then header.is_linked_to_previous is False ... passed in 0.002s Scenario Outline: _Header.is_linked_to_previous setter -- @1.3 _Header.is_linked_to_previous state changes Given a _Header object with a header definition as header ... passed in 0.040s When I assign False to header.is_linked_to_previous ... passed in 0.002s Then header.is_linked_to_previous is False ... passed in 0.002s Scenario Outline: _Header.is_linked_to_previous setter -- @1.4 _Header.is_linked_to_previous state changes Given a _Header object with no header definition as header ... passed in 0.039s When I assign True to header.is_linked_to_previous ... passed in 0.004s Then header.is_linked_to_previous is True ... passed in 0.002s Scenario: _Header inherits content Given a _Header object with a header definition as header ... passed in 0.040s And the next _Header object with no header definition as header_2 ... passed in 0.002s Then header_2.paragraphs[0].text == header.paragraphs[0].text ... passed in 0.008s And header_2.is_linked_to_previous is True ... passed in 0.002s Scenario: _Header text accepts style assignment Given a _Header object with a header definition as header ... passed in 0.040s When I assign "Normal" to header.paragraphs[0].style ... passed in 0.008s Then header.paragraphs[0].style.name == "Normal" ... passed in 0.006s Scenario: _Header allows image insertion Given a _Run object from a header as run ... passed in 0.042s When I call run.add_picture() ... passed in 0.014s Then I can't detect the image but no exception is raised ... passed in 0.001s Scenario Outline: _Footer.is_linked_to_previous getter -- @1.1 _Footer.is_linked_to_previous states Given a _Footer object with a footer definition as footer ... passed in 0.043s Then footer.is_linked_to_previous is False ... passed in 0.002s Scenario Outline: _Footer.is_linked_to_previous getter -- @1.2 _Footer.is_linked_to_previous states Given a _Footer object with no footer definition as footer ... passed in 0.042s Then footer.is_linked_to_previous is True ... passed in 0.003s Scenario Outline: _Footer.is_linked_to_previous setter -- @1.1 _Footer.is_linked_to_previous state changes Given a _Footer object with a footer definition as footer ... passed in 0.044s When I assign True to footer.is_linked_to_previous ... passed in 0.004s Then footer.is_linked_to_previous is True ... passed in 0.002s Scenario Outline: _Footer.is_linked_to_previous setter -- @1.2 _Footer.is_linked_to_previous state changes Given a _Footer object with no footer definition as footer ... passed in 0.066s When I assign False to footer.is_linked_to_previous ... passed in 0.006s Then footer.is_linked_to_previous is False ... passed in 0.003s Scenario Outline: _Footer.is_linked_to_previous setter -- @1.3 _Footer.is_linked_to_previous state changes Given a _Footer object with a footer definition as footer ... passed in 0.041s When I assign False to footer.is_linked_to_previous ... passed in 0.002s Then footer.is_linked_to_previous is False ... passed in 0.002s Scenario Outline: _Footer.is_linked_to_previous setter -- @1.4 _Footer.is_linked_to_previous state changes Given a _Footer object with no footer definition as footer ... passed in 0.044s When I assign True to footer.is_linked_to_previous ... passed in 0.002s Then footer.is_linked_to_previous is True ... passed in 0.002s Scenario: _Footer inherits content Given a _Footer object with a footer definition as footer ... passed in 0.042s And the next _Footer object with no footer definition as footer_2 ... passed in 0.002s Then footer_2.paragraphs[0].text == footer.paragraphs[0].text ... passed in 0.010s And footer_2.is_linked_to_previous is True ... passed in 0.002s Scenario: _Footer text accepts style assignment Given a _Footer object with a footer definition as footer ... passed in 0.040s When I assign "Normal" to footer.paragraphs[0].style ... passed in 0.006s Then footer.paragraphs[0].style.name == "Normal" ... passed in 0.005s Scenario: _Footer allows image insertion Given a _Run object from a footer as run ... passed in 0.042s When I call run.add_picture() ... passed in 0.012s Then I can't detect the image but no exception is raised ... passed in 0.001s Feature: Access hyperlink properties Scenario: Hyperlink.address has the URL of the hyperlink Given a hyperlink ... passed in 0.034s Then hyperlink.address is the URL of the hyperlink ... passed in 0.002s Scenario Outline: Hyperlink.contains_page_break reports presence of page-break -- @1.1 Hyperlink.contains_page_break cases Given a hyperlink having no rendered page breaks ... passed in 0.028s Then hyperlink.contains_page_break is False ... passed in 0.002s Scenario Outline: Hyperlink.contains_page_break reports presence of page-break -- @1.2 Hyperlink.contains_page_break cases Given a hyperlink having one rendered page breaks ... passed in 0.027s Then hyperlink.contains_page_break is True ... passed in 0.002s Scenario: Hyperlink.fragment has the URI fragment of the hyperlink Given a hyperlink having a URI fragment ... passed in 0.028s Then hyperlink.fragment is the URI fragment of the hyperlink ... passed in 0.001s Scenario Outline: Hyperlink.runs contains Run for each run in hyperlink -- @1.1 Hyperlink.runs cases Given a hyperlink having one runs ... passed in 0.029s Then hyperlink.runs has length 1 ... passed in 0.002s And hyperlink.runs contains only Run instances ... passed in 0.002s Scenario Outline: Hyperlink.runs contains Run for each run in hyperlink -- @1.2 Hyperlink.runs cases Given a hyperlink having two runs ... passed in 0.027s Then hyperlink.runs has length 2 ... passed in 0.001s And hyperlink.runs contains only Run instances ... passed in 0.001s Scenario: Hyperlink.text has the visible text of the hyperlink Given a hyperlink ... passed in 0.029s Then hyperlink.text is the visible text of the hyperlink ... passed in 0.004s Scenario Outline: Hyperlink.url is the full URL of an internet hyperlink -- @1.1 Hyperlink.url cases Given a hyperlink having address '' and fragment linkedBookmark ... passed in 0.029s Then hyperlink.url is '' ... passed in 0.001s Scenario Outline: Hyperlink.url is the full URL of an internet hyperlink -- @1.2 Hyperlink.url cases Given a hyperlink having address https://foo.com and fragment '' ... passed in 0.028s Then hyperlink.url is https://foo.com ... passed in 0.001s Scenario Outline: Hyperlink.url is the full URL of an internet hyperlink -- @1.3 Hyperlink.url cases Given a hyperlink having address https://foo.com?q=bar and fragment '' ... passed in 0.029s Then hyperlink.url is https://foo.com?q=bar ... passed in 0.001s Scenario Outline: Hyperlink.url is the full URL of an internet hyperlink -- @1.4 Hyperlink.url cases Given a hyperlink having address http://foo.com/ and fragment intro ... passed in 0.029s Then hyperlink.url is http://foo.com/#intro ... passed in 0.001s Scenario Outline: Hyperlink.url is the full URL of an internet hyperlink -- @1.5 Hyperlink.url cases Given a hyperlink having address https://foo.com?q=bar#baz and fragment '' ... passed in 0.057s Then hyperlink.url is https://foo.com?q=bar#baz ... passed in 0.002s Scenario Outline: Hyperlink.url is the full URL of an internet hyperlink -- @1.6 Hyperlink.url cases Given a hyperlink having address court-exif.jpg and fragment '' ... passed in 0.029s Then hyperlink.url is court-exif.jpg ... passed in 0.001s Feature: Characterize an image file Scenario Outline: Characterize an image file -- @1.1 Image file characteristics Given the image file 'test.png' ... passed in 0.002s When I construct an image using the image path ... passed in 0.003s Then the image has content type 'image/png' ... passed in 0.001s And the image is 901 pixels wide ... passed in 0.001s And the image is 1350 pixels high ... passed in 0.001s And the image has 150 horizontal dpi ... passed in 0.001s And the image has 150 vertical dpi ... passed in 0.001s Scenario Outline: Characterize an image file -- @1.2 Image file characteristics Given the image file 'monty-truth.png' ... passed in 0.001s When I construct an image using the image path ... passed in 0.002s Then the image has content type 'image/png' ... passed in 0.001s And the image is 150 pixels wide ... passed in 0.001s And the image is 214 pixels high ... passed in 0.001s And the image has 72 horizontal dpi ... passed in 0.001s And the image has 72 vertical dpi ... passed in 0.001s Scenario Outline: Characterize an image file -- @1.3 Image file characteristics Given the image file 'jfif-300-dpi.jpg' ... passed in 0.001s When I construct an image using the image path ... passed in 0.006s Then the image has content type 'image/jpeg' ... passed in 0.001s And the image is 1504 pixels wide ... passed in 0.001s And the image is 1936 pixels high ... passed in 0.001s And the image has 300 horizontal dpi ... passed in 0.001s And the image has 300 vertical dpi ... passed in 0.001s Scenario Outline: Characterize an image file -- @1.4 Image file characteristics Given the image file 'lena_std.jpg' ... passed in 0.002s When I construct an image using the image path ... passed in 0.003s Then the image has content type 'image/jpeg' ... passed in 0.001s And the image is 512 pixels wide ... passed in 0.001s And the image is 512 pixels high ... passed in 0.001s And the image has 72 horizontal dpi ... passed in 0.001s And the image has 72 vertical dpi ... passed in 0.001s Scenario Outline: Characterize an image file -- @1.5 Image file characteristics Given the image file 'lena.tif' ... passed in 0.002s When I construct an image using the image path ... passed in 0.004s Then the image has content type 'image/tiff' ... passed in 0.001s And the image is 512 pixels wide ... passed in 0.001s And the image is 512 pixels high ... passed in 0.001s And the image has 72 horizontal dpi ... passed in 0.001s And the image has 72 vertical dpi ... passed in 0.001s Scenario Outline: Characterize an image file -- @1.6 Image file characteristics Given the image file 'sample.tif' ... passed in 0.002s When I construct an image using the image path ... passed in 0.004s Then the image has content type 'image/tiff' ... passed in 0.001s And the image is 1600 pixels wide ... passed in 0.001s And the image is 2100 pixels high ... passed in 0.001s And the image has 200 horizontal dpi ... passed in 0.001s And the image has 200 vertical dpi ... passed in 0.001s Scenario Outline: Characterize an image file -- @1.7 Image file characteristics Given the image file 'jpeg420exif.jpg' ... passed in 0.001s When I construct an image using the image path ... passed in 0.005s Then the image has content type 'image/jpeg' ... passed in 0.001s And the image is 2048 pixels wide ... passed in 0.001s And the image is 1536 pixels high ... passed in 0.001s And the image has 72 horizontal dpi ... passed in 0.001s And the image has 72 vertical dpi ... passed in 0.001s Scenario Outline: Characterize an image file -- @1.8 Image file characteristics Given the image file 'court-exif.jpg' ... passed in 0.001s When I construct an image using the image path ... passed in 0.004s Then the image has content type 'image/jpeg' ... passed in 0.001s And the image is 500 pixels wide ... passed in 0.001s And the image is 375 pixels high ... passed in 0.001s And the image has 256 horizontal dpi ... passed in 0.001s And the image has 256 vertical dpi ... passed in 0.001s Scenario Outline: Characterize an image file -- @1.9 Image file characteristics Given the image file 'lena.gif' ... passed in 0.001s When I construct an image using the image path ... passed in 0.002s Then the image has content type 'image/gif' ... passed in 0.001s And the image is 256 pixels wide ... passed in 0.001s And the image is 256 pixels high ... passed in 0.001s And the image has 72 horizontal dpi ... passed in 0.001s And the image has 72 vertical dpi ... passed in 0.001s Scenario Outline: Characterize an image file -- @1.10 Image file characteristics Given the image file 'lena.bmp' ... passed in 0.001s When I construct an image using the image path ... passed in 0.003s Then the image has content type 'image/bmp' ... passed in 0.001s And the image is 512 pixels wide ... passed in 0.001s And the image is 512 pixels high ... passed in 0.001s And the image has 96 horizontal dpi ... passed in 0.001s And the image has 96 vertical dpi ... passed in 0.001s Scenario Outline: Characterize an image file -- @1.11 Image file characteristics Given the image file 'mountain.bmp' ... passed in 0.001s When I construct an image using the image path ... passed in 0.002s Then the image has content type 'image/bmp' ... passed in 0.001s And the image is 640 pixels wide ... passed in 0.001s And the image is 480 pixels high ... passed in 0.001s And the image has 300 horizontal dpi ... passed in 0.001s And the image has 300 vertical dpi ... passed in 0.001s Feature: Access the document numbering part Scenario: Get an existing numbering part from document Given a document having a numbering part ... passed in 0.032s When I get the numbering part from the document ... passed in 0.001s Then the numbering part has the expected numbering definitions ... passed in 0.002s Feature: Access paragraph inner-content including hyperlinks Scenario Outline: Paragraph.contains_page_break reports presence of page-break -- @1.1 Paragraph.contains_page_break cases Given a paragraph having no rendered page breaks ... passed in 0.029s Then paragraph.contains_page_break is False ... passed in 0.002s Scenario Outline: Paragraph.contains_page_break reports presence of page-break -- @1.2 Paragraph.contains_page_break cases Given a paragraph having one rendered page breaks ... passed in 0.027s Then paragraph.contains_page_break is True ... passed in 0.002s Scenario Outline: Paragraph.contains_page_break reports presence of page-break -- @1.3 Paragraph.contains_page_break cases Given a paragraph having two rendered page breaks ... passed in 0.027s Then paragraph.contains_page_break is True ... passed in 0.002s Scenario Outline: Paragraph.hyperlinks contains Hyperlink for each link in paragraph -- @1.1 Paragraph.hyperlinks cases Given a paragraph having no hyperlinks ... passed in 0.028s Then paragraph.hyperlinks has length 0 ... passed in 0.001s And paragraph.hyperlinks contains only Hyperlink instances ... passed in 0.001s Scenario Outline: Paragraph.hyperlinks contains Hyperlink for each link in paragraph -- @1.2 Paragraph.hyperlinks cases Given a paragraph having one hyperlinks ... passed in 0.032s Then paragraph.hyperlinks has length 1 ... passed in 0.002s And paragraph.hyperlinks contains only Hyperlink instances ... passed in 0.002s Scenario Outline: Paragraph.hyperlinks contains Hyperlink for each link in paragraph -- @1.3 Paragraph.hyperlinks cases Given a paragraph having three hyperlinks ... passed in 0.031s Then paragraph.hyperlinks has length 3 ... passed in 0.002s And paragraph.hyperlinks contains only Hyperlink instances ... passed in 0.001s Scenario: Paragraph.iter_inner_content() generates the paragraph's runs and hyperlinks Given a paragraph having three hyperlinks ... passed in 0.029s Then paragraph.iter_inner_content() generates the paragraph runs and hyperlinks ... passed in 0.002s Scenario Outline: Paragraph.rendered_page_breaks contains paragraph RenderedPageBreaks -- @1.1 Paragraph.rendered_page_breaks cases Given a paragraph having no rendered page breaks ... passed in 0.029s Then paragraph.rendered_page_breaks has length 0 ... passed in 0.002s And paragraph.rendered_page_breaks contains only RenderedPageBreak instances ... passed in 0.002s Scenario Outline: Paragraph.rendered_page_breaks contains paragraph RenderedPageBreaks -- @1.2 Paragraph.rendered_page_breaks cases Given a paragraph having one rendered page breaks ... passed in 0.045s Then paragraph.rendered_page_breaks has length 1 ... passed in 0.002s And paragraph.rendered_page_breaks contains only RenderedPageBreak instances ... passed in 0.002s Scenario Outline: Paragraph.rendered_page_breaks contains paragraph RenderedPageBreaks -- @1.3 Paragraph.rendered_page_breaks cases Given a paragraph having two rendered page breaks ... passed in 0.029s Then paragraph.rendered_page_breaks has length 2 ... passed in 0.002s And paragraph.rendered_page_breaks contains only RenderedPageBreak instances ... passed in 0.002s Scenario: Paragraph.text contains both run-text and hyperlink-text Given a paragraph having three hyperlinks ... passed in 0.028s Then paragraph.text contains the text of both the runs and the hyperlinks ... passed in 0.008s Feature: Access paragraph format Scenario: Get paragraph format object Given a paragraph ... passed in 0.142s Then paragraph.paragraph_format is its ParagraphFormat object ... passed in 0.001s Feature: Add a run with optional text and style Scenario: Add a run specifying its text Given a paragraph ... passed in 0.146s When I add a run specifying its text ... passed in 0.004s Then the run contains the text I specified ... passed in 0.002s Scenario: Add a run specifying its style Given a paragraph ... passed in 0.145s When I add a run specifying the character style Emphasis ... passed in 0.030s Then run.style is styles['Emphasis'] ... passed in 0.008s Feature: Get or set paragraph alignment Scenario Outline: Get paragraph alignment -- @1.1 align property values Given a paragraph having inherited alignment ... passed in 0.028s Then the paragraph alignment property value is None ... passed in 0.001s Scenario Outline: Get paragraph alignment -- @1.2 align property values Given a paragraph having left alignment ... passed in 0.027s Then the paragraph alignment property value is WD_ALIGN_PARAGRAPH.LEFT ... passed in 0.002s Scenario Outline: Get paragraph alignment -- @1.3 align property values Given a paragraph having center alignment ... passed in 0.030s Then the paragraph alignment property value is WD_ALIGN_PARAGRAPH.CENTER ... passed in 0.002s Scenario Outline: Get paragraph alignment -- @1.4 align property values Given a paragraph having right alignment ... passed in 0.029s Then the paragraph alignment property value is WD_ALIGN_PARAGRAPH.RIGHT ... passed in 0.002s Feature: Clear paragraph content Scenario: Clear paragraph content Given a paragraph with content and formatting ... passed in 0.033s When I clear the paragraph content ... passed in 0.003s Then the paragraph has no content ... passed in 0.002s But the paragraph formatting is preserved ... passed in 0.003s Feature: Insert a paragraph before or after a paragraph Scenario: Add a new paragraph above an existing paragraph Given a document containing three paragraphs ... passed in 0.152s When I insert a paragraph above the second paragraph ... passed in 0.034s Then the document contains four paragraphs ... passed in 0.002s And the text of the second paragraph matches the text I set ... passed in 0.003s And the style of the second paragraph matches the style I set ... passed in 0.005s Feature: Replace paragraph text Scenario: Set paragraph text Given a paragraph with content and formatting ... passed in 0.035s When I set the paragraph text ... passed in 0.004s Then the paragraph has the text I set ... passed in 0.002s And the paragraph formatting is preserved ... passed in 0.003s Feature: Each paragraph has a read/write style Scenario Outline: Get the style of a paragraph -- @1.1 ways of specifying a style Given a paragraph having no specified style ... passed in 0.035s Then paragraph.style is Normal ... passed in 0.009s Scenario Outline: Get the style of a paragraph -- @1.2 ways of specifying a style Given a paragraph having a missing style ... passed in 0.037s Then paragraph.style is Normal ... passed in 0.011s Scenario Outline: Get the style of a paragraph -- @1.3 ways of specifying a style Given a paragraph having Heading 1 style ... passed in 0.036s Then paragraph.style is Heading 1 ... passed in 0.007s Scenario Outline: Get the style of a paragraph -- @1.4 ways of specifying a style Given a paragraph having Body Text style ... passed in 0.038s Then paragraph.style is Body Text ... passed in 0.008s Scenario Outline: Set the style of a paragraph -- @1.1 ways of specifying a style Given a paragraph ... passed in 0.145s When I assign a style object to paragraph.style ... passed in 0.114s Then the paragraph has the style I set ... passed in 0.005s Scenario Outline: Set the style of a paragraph -- @1.2 ways of specifying a style Given a paragraph ... passed in 0.145s When I assign a style name to paragraph.style ... passed in 0.024s Then the paragraph has the style I set ... passed in 0.004s Feature: Split paragraph on rendered page-breaks Scenario: RenderedPageBreak.preceding_paragraph_fragment is the content before break Given a rendered_page_break in a paragraph ... passed in 0.028s Then rendered_page_break.preceding_paragraph_fragment is the content before break ... passed in 0.011s Scenario: RenderedPageBreak.preceding_paragraph_fragment includes the hyperlink Given a rendered_page_break in a hyperlink ... passed in 0.027s Then rendered_page_break.preceding_paragraph_fragment includes the hyperlink ... passed in 0.010s Scenario: RenderedPageBreak.following_paragraph_fragment is the content after break Given a rendered_page_break in a paragraph ... passed in 0.027s Then rendered_page_break.following_paragraph_fragment is the content after break ... passed in 0.012s Scenario: RenderedPageBreak.following_paragraph_fragment excludes the hyperlink Given a rendered_page_break in a hyperlink ... passed in 0.026s Then rendered_page_break.following_paragraph_fragment excludes the hyperlink ... passed in 0.008s Feature: Access run font Scenario: Access the font of a run Given a run ... passed in 0.142s Then run.font is the Font object for the run ... passed in 0.001s Feature: Access run inner-content including rendered page-breaks Scenario Outline: Run.contains_page_break reports presence of page-break -- @1.1 Run.contains_page_break cases Given a run having no rendered page breaks ... passed in 0.027s Then run.contains_page_break is False ... passed in 0.002s Scenario Outline: Run.contains_page_break reports presence of page-break -- @1.2 Run.contains_page_break cases Given a run having one rendered page breaks ... passed in 0.026s Then run.contains_page_break is True ... passed in 0.002s Scenario Outline: Run.contains_page_break reports presence of page-break -- @1.3 Run.contains_page_break cases Given a run having two rendered page breaks ... passed in 0.030s Then run.contains_page_break is True ... passed in 0.002s Scenario: Run.iter_inner_content() generates the run's text and rendered page-breaks Given a run having two rendered page breaks ... passed in 0.025s Then run.iter_inner_content() generates the run text and rendered page-breaks ... passed in 0.002s Scenario: Run.text contains the text content of the run Given a run having mixed text content ... passed in 0.002s Then run.text contains the text content of the run ... passed in 0.002s Feature: Add content to a run Scenario: Add a tab Given a run ... passed in 0.143s When I add a tab ... passed in 0.001s Then the tab appears at the end of the run ... passed in 0.002s Scenario: Assign mixed text to text property Given a run ... passed in 0.142s When I assign mixed text to the text property ... passed in 0.004s Then run.text contains the text content of the run ... passed in 0.002s Feature: Add picture to a run Scenario: Add a picture to a body paragraph run Given a run ... passed in 0.168s When I add a picture to the run ... passed in 0.015s Then the picture appears at the end of the run ... passed in 0.003s And the document contains the inline picture ... passed in 0.004s Scenario Outline: Add a picture to a run in a table cell -- @1.1 Table cell sources Given a run inside a table cell retrieved from Table.cell ... passed in 0.258s When I add a picture to the run ... passed in 0.014s Then the picture appears at the end of the run ... passed in 0.004s And the document contains the inline picture ... passed in 0.004s Scenario Outline: Add a picture to a run in a table cell -- @1.2 Table cell sources Given a run inside a table cell retrieved from Table.row.cells ... passed in 0.248s When I add a picture to the run ... passed in 0.012s Then the picture appears at the end of the run ... passed in 0.003s And the document contains the inline picture ... passed in 0.004s Scenario Outline: Add a picture to a run in a table cell -- @1.3 Table cell sources Given a run inside a table cell retrieved from Table.column.cells ... passed in 0.255s When I add a picture to the run ... passed in 0.016s Then the picture appears at the end of the run ... passed in 0.003s And the document contains the inline picture ... passed in 0.004s Feature: Each run has a read/write style Scenario Outline: Get the character style of a run -- @1.1 Character styles Given a run having no explicit style ... passed in 0.185s Then run.style is styles['Default Paragraph Font'] ... passed in 0.004s Scenario Outline: Get the character style of a run -- @1.2 Character styles Given a run having Emphasis style ... passed in 0.026s Then run.style is styles['Emphasis'] ... passed in 0.003s Scenario Outline: Get the character style of a run -- @1.3 Character styles Given a run having Strong style ... passed in 0.029s Then run.style is styles['Strong'] ... passed in 0.003s Scenario Outline: Set the style of a run -- @1.1 Character style transitions Given a run having no explicit style ... passed in 0.030s When I assign Emphasis to run.style ... passed in 0.012s Then run.style is styles['Emphasis'] ... passed in 0.005s Scenario Outline: Set the style of a run -- @1.2 Character style transitions Given a run having no explicit style ... passed in 0.027s When I assign styles['Emphasis'] to run.style ... passed in 0.011s Then run.style is styles['Emphasis'] ... passed in 0.003s Scenario Outline: Set the style of a run -- @1.3 Character style transitions Given a run having Emphasis style ... passed in 0.028s When I assign Strong to run.style ... passed in 0.004s Then run.style is styles['Strong'] ... passed in 0.003s Scenario Outline: Set the style of a run -- @1.4 Character style transitions Given a run having Emphasis style ... passed in 0.026s When I assign styles['Strong'] to run.style ... passed in 0.004s Then run.style is styles['Strong'] ... passed in 0.003s Scenario Outline: Set the style of a run -- @1.5 Character style transitions Given a run having Strong style ... passed in 0.026s When I assign None to run.style ... passed in 0.002s Then run.style is styles['Default Paragraph Font'] ... passed in 0.007s Feature: Remove the content of a run Scenario: Clear run content Given a run having known text and formatting ... passed in 0.149s When I clear the run ... passed in 0.002s Then the run contains no text ... passed in 0.002s But the run formatting is preserved ... passed in 0.002s Feature: Query or apply enumerated run property Scenario Outline: Get underline value of a run -- @1.1 underline property values Given a run having inherited underline ... passed in 0.027s Then the run underline property value is None ... passed in 0.001s Scenario Outline: Get underline value of a run -- @1.2 underline property values Given a run having no underline ... passed in 0.027s Then the run underline property value is False ... passed in 0.002s Scenario Outline: Get underline value of a run -- @1.3 underline property values Given a run having single underline ... passed in 0.025s Then the run underline property value is True ... passed in 0.002s Scenario Outline: Get underline value of a run -- @1.4 underline property values Given a run having double underline ... passed in 0.026s Then the run underline property value is WD_UNDERLINE.DOUBLE ... passed in 0.002s Scenario Outline: Change underline setting for a run -- @1.1 underline property values Given a run having inherited underline ... passed in 0.027s When I set the run underline to True ... passed in 0.004s Then the run underline property value is True ... passed in 0.002s Scenario Outline: Change underline setting for a run -- @1.2 underline property values Given a run having inherited underline ... passed in 0.030s When I set the run underline to False ... passed in 0.003s Then the run underline property value is False ... passed in 0.004s Scenario Outline: Change underline setting for a run -- @1.3 underline property values Given a run having inherited underline ... passed in 0.068s When I set the run underline to None ... passed in 0.002s Then the run underline property value is None ... passed in 0.001s Scenario Outline: Change underline setting for a run -- @1.4 underline property values Given a run having inherited underline ... passed in 0.028s When I set the run underline to WD_UNDERLINE.SINGLE ... passed in 0.004s Then the run underline property value is True ... passed in 0.002s Scenario Outline: Change underline setting for a run -- @1.5 underline property values Given a run having inherited underline ... passed in 0.026s When I set the run underline to WD_UNDERLINE.DOUBLE ... passed in 0.003s Then the run underline property value is WD_UNDERLINE.DOUBLE ... passed in 0.002s Scenario Outline: Change underline setting for a run -- @1.6 underline property values Given a run having single underline ... passed in 0.026s When I set the run underline to None ... passed in 0.002s Then the run underline property value is None ... passed in 0.001s Scenario Outline: Change underline setting for a run -- @1.7 underline property values Given a run having single underline ... passed in 0.027s When I set the run underline to True ... passed in 0.003s Then the run underline property value is True ... passed in 0.002s Scenario Outline: Change underline setting for a run -- @1.8 underline property values Given a run having single underline ... passed in 0.032s When I set the run underline to False ... passed in 0.003s Then the run underline property value is False ... passed in 0.002s Scenario Outline: Change underline setting for a run -- @1.9 underline property values Given a run having single underline ... passed in 0.026s When I set the run underline to WD_UNDERLINE.SINGLE ... passed in 0.003s Then the run underline property value is True ... passed in 0.002s Scenario Outline: Change underline setting for a run -- @1.10 underline property values Given a run having single underline ... passed in 0.026s When I set the run underline to WD_UNDERLINE.DOUBLE ... passed in 0.003s Then the run underline property value is WD_UNDERLINE.DOUBLE ... passed in 0.002s Feature: Access and change section properties Scenario Outline: Section.different_first_page_header_footer getter -- @1.1 Section.different_first_page_header_footer states Given a Section object with a distinct first-page header as section ... passed in 0.033s Then section.different_first_page_header_footer is True ... passed in 0.003s Scenario Outline: Section.different_first_page_header_footer getter -- @1.2 Section.different_first_page_header_footer states Given a Section object without a distinct first-page header as section ... passed in 0.034s Then section.different_first_page_header_footer is False ... passed in 0.002s Scenario Outline: Section.different_first_page_header_footer setter -- @1.1 Section.different_first_page_header_footer assignment cases Given a Section object with a distinct first-page header as section ... passed in 0.033s When I assign True to section.different_first_page_header_footer ... passed in 0.002s Then section.different_first_page_header_footer is True ... passed in 0.002s Scenario Outline: Section.different_first_page_header_footer setter -- @1.2 Section.different_first_page_header_footer assignment cases Given a Section object with a distinct first-page header as section ... passed in 0.033s When I assign False to section.different_first_page_header_footer ... passed in 0.002s Then section.different_first_page_header_footer is False ... passed in 0.002s Scenario Outline: Section.different_first_page_header_footer setter -- @1.3 Section.different_first_page_header_footer assignment cases Given a Section object without a distinct first-page header as section ... passed in 0.036s When I assign True to section.different_first_page_header_footer ... passed in 0.003s Then section.different_first_page_header_footer is True ... passed in 0.002s Scenario Outline: Section.different_first_page_header_footer setter -- @1.4 Section.different_first_page_header_footer assignment cases Given a Section object without a distinct first-page header as section ... passed in 0.033s When I assign False to section.different_first_page_header_footer ... passed in 0.002s Then section.different_first_page_header_footer is False ... passed in 0.002s Scenario: Section.even_page_footer Given a Section object as section ... passed in 0.036s Then section.even_page_footer is a _Footer object ... passed in 0.001s Scenario: Section.even_page_header Given a Section object as section ... passed in 0.034s Then section.even_page_header is a _Header object ... passed in 0.001s Scenario: Section.first_page_footer Given a Section object as section ... passed in 0.034s Then section.first_page_footer is a _Footer object ... passed in 0.001s Scenario: Section.first_page_header Given a Section object as section ... passed in 0.037s Then section.first_page_header is a _Header object ... passed in 0.001s Scenario: Section.footer Given a Section object as section ... passed in 0.056s Then section.footer is a _Footer object ... passed in 0.001s Scenario: Section.header Given a Section object as section ... passed in 0.038s Then section.header is a _Header object ... passed in 0.001s Scenario: Section.iter_inner_content() Given a Section object of a multi-section document as section ... passed in 0.030s Then section.iter_inner_content() produces the paragraphs and tables in section ... passed in 0.006s Scenario Outline: Get section start type -- @1.1 Section start types Given a section having start type CONTINUOUS ... passed in 0.034s Then the reported section start type is CONTINUOUS ... passed in 0.004s Scenario Outline: Get section start type -- @1.2 Section start types Given a section having start type NEW_COLUMN ... passed in 0.034s Then the reported section start type is NEW_COLUMN ... passed in 0.001s Scenario Outline: Get section start type -- @1.3 Section start types Given a section having start type NEW_PAGE ... passed in 0.032s Then the reported section start type is NEW_PAGE ... passed in 0.001s Scenario Outline: Get section start type -- @1.4 Section start types Given a section having start type EVEN_PAGE ... passed in 0.034s Then the reported section start type is EVEN_PAGE ... passed in 0.002s Scenario Outline: Get section start type -- @1.5 Section start types Given a section having start type ODD_PAGE ... passed in 0.032s Then the reported section start type is ODD_PAGE ... passed in 0.002s Scenario Outline: Set section start type -- @1.1 Section start types Given a section having start type CONTINUOUS ... passed in 0.032s When I set the section start type to NEW_PAGE ... passed in 0.001s Then the reported section start type is NEW_PAGE ... passed in 0.001s Scenario Outline: Set section start type -- @1.2 Section start types Given a section having start type NEW_PAGE ... passed in 0.034s When I set the section start type to ODD_PAGE ... passed in 0.003s Then the reported section start type is ODD_PAGE ... passed in 0.001s Scenario Outline: Set section start type -- @1.3 Section start types Given a section having start type NEW_COLUMN ... passed in 0.031s When I set the section start type to None ... passed in 0.002s Then the reported section start type is NEW_PAGE ... passed in 0.001s Scenario: Get section page size Given a section having known page dimension ... passed in 0.034s Then the reported page width is 8.5 inches ... passed in 0.002s And the reported page height is 11 inches ... passed in 0.002s Scenario: Set section page size Given a section having known page dimension ... passed in 0.032s When I set the section page width to 11 inches ... passed in 0.002s And I set the section page height to 8.5 inches ... passed in 0.002s Then the reported page width is 11 inches ... passed in 0.001s And the reported page height is 8.5 inches ... passed in 0.002s Scenario Outline: Get section orientation -- @1.1 Section page orientations Given a section known to have landscape orientation ... passed in 0.032s Then the reported page orientation is WD_ORIENT.LANDSCAPE ... passed in 0.002s Scenario Outline: Get section orientation -- @1.2 Section page orientations Given a section known to have portrait orientation ... passed in 0.052s Then the reported page orientation is WD_ORIENT.PORTRAIT ... passed in 0.001s Scenario Outline: Set section orientation -- @1.1 Section page orientations Given a section known to have portrait orientation ... passed in 0.033s When I set the section orientation to WD_ORIENT.LANDSCAPE ... passed in 0.001s Then the reported page orientation is WD_ORIENT.LANDSCAPE ... passed in 0.001s Scenario Outline: Set section orientation -- @1.2 Section page orientations Given a section known to have landscape orientation ... passed in 0.033s When I set the section orientation to WD_ORIENT.PORTRAIT ... passed in 0.002s Then the reported page orientation is WD_ORIENT.PORTRAIT ... passed in 0.001s Scenario Outline: Set section orientation -- @1.3 Section page orientations Given a section known to have landscape orientation ... passed in 0.032s When I set the section orientation to None ... passed in 0.002s Then the reported page orientation is WD_ORIENT.PORTRAIT ... passed in 0.001s Scenario: Get section page margins Given a section having known page margins ... passed in 0.033s Then the reported left margin is 1.0 inches ... passed in 0.002s And the reported right margin is 1.25 inches ... passed in 0.001s And the reported top margin is 1.5 inches ... passed in 0.002s And the reported bottom margin is 1.75 inches ... passed in 0.002s And the reported gutter margin is 0.25 inches ... passed in 0.001s And the reported header margin is 0.5 inches ... passed in 0.001s And the reported footer margin is 0.75 inches ... passed in 0.002s Scenario Outline: Set section page margins -- @1.1 Section margin settings Given a section having known page margins ... passed in 0.032s When I set the left margin to 1.0 inches ... passed in 0.002s Then the reported left margin is 1.0 inches ... passed in 0.001s Scenario Outline: Set section page margins -- @1.2 Section margin settings Given a section having known page margins ... passed in 0.033s When I set the right margin to 1.25 inches ... passed in 0.002s Then the reported right margin is 1.25 inches ... passed in 0.001s Scenario Outline: Set section page margins -- @1.3 Section margin settings Given a section having known page margins ... passed in 0.033s When I set the top margin to 0.75 inches ... passed in 0.002s Then the reported top margin is 0.75 inches ... passed in 0.001s Scenario Outline: Set section page margins -- @1.4 Section margin settings Given a section having known page margins ... passed in 0.033s When I set the bottom margin to 1.5 inches ... passed in 0.002s Then the reported bottom margin is 1.5 inches ... passed in 0.001s Scenario Outline: Set section page margins -- @1.5 Section margin settings Given a section having known page margins ... passed in 0.033s When I set the header margin to 0.25 inches ... passed in 0.002s Then the reported header margin is 0.25 inches ... passed in 0.002s Scenario Outline: Set section page margins -- @1.6 Section margin settings Given a section having known page margins ... passed in 0.032s When I set the footer margin to 0.5 inches ... passed in 0.002s Then the reported footer margin is 0.5 inches ... passed in 0.001s Scenario Outline: Set section page margins -- @1.7 Section margin settings Given a section having known page margins ... passed in 0.031s When I set the gutter margin to 0.25 inches ... passed in 0.002s Then the reported gutter margin is 0.25 inches ... passed in 0.001s Feature: Access inline shape in inline shape collection Scenario: Access shape in inline shape collection Given an inline shape collection containing five shapes ... passed in 0.041s Then the length of the inline shape collection is 5 ... passed in 0.002s And I can iterate over the inline shape collection ... passed in 0.002s And I can access each inline shape by index ... passed in 0.002s Scenario Outline: Identify type of inline shape -- @1.1 Inline shapes of recognized types Given an inline shape known to be an embedded picture ... passed in 0.059s Then its inline shape type is WD_INLINE_SHAPE.PICTURE ... passed in 0.003s Scenario Outline: Identify type of inline shape -- @1.2 Inline shapes of recognized types Given an inline shape known to be a linked picture ... passed in 0.040s Then its inline shape type is WD_INLINE_SHAPE.LINKED_PICTURE ... passed in 0.002s Scenario Outline: Identify type of inline shape -- @1.3 Inline shapes of recognized types Given an inline shape known to be a link+embed picture ... passed in 0.041s Then its inline shape type is WD_INLINE_SHAPE.LINKED_PICTURE ... passed in 0.002s Scenario Outline: Identify type of inline shape -- @1.4 Inline shapes of recognized types Given an inline shape known to be a smart art diagram ... passed in 0.042s Then its inline shape type is WD_INLINE_SHAPE.SMART_ART ... passed in 0.002s Scenario Outline: Identify type of inline shape -- @1.5 Inline shapes of recognized types Given an inline shape known to be a chart ... passed in 0.040s Then its inline shape type is WD_INLINE_SHAPE.CHART ... passed in 0.001s Feature: Query and change dimensions of inline shape Scenario: Query inline shape dimensions Given an inline shape of known dimensions ... passed in 0.042s Then the dimensions of the inline shape match the known values ... passed in 0.002s Scenario: Change inline shape dimensions Given an inline shape of known dimensions ... passed in 0.046s When I change the dimensions of the inline shape ... passed in 0.005s Then the dimensions of the inline shape match the new values ... passed in 0.002s Feature: Access style font Scenario Outline: Get style font -- @1.1 Style types Given a style of type WD_STYLE_TYPE.CHARACTER ... passed in 0.028s Then style.font is the Font object for the style ... passed in 0.001s Scenario Outline: Get style font -- @1.2 Style types Given a style of type WD_STYLE_TYPE.PARAGRAPH ... passed in 0.027s Then style.font is the Font object for the style ... passed in 0.001s Scenario Outline: Get style font -- @1.3 Style types Given a style of type WD_STYLE_TYPE.TABLE ... passed in 0.028s Then style.font is the Font object for the style ... passed in 0.001s Feature: Access latent styles for a document Scenario: Access latent styles collection Given the style collection of a document ... passed in 0.026s Then styles.latent_styles is the LatentStyles object for the document ... passed in 0.002s And len(latent_styles) is 137 ... passed in 0.004s Scenario: Access latent style in collection Given a latent style collection ... passed in 0.027s Then I can iterate over the latent styles ... passed in 0.004s And I can access a latent style by name ... passed in 0.004s Feature: Access style paragraph format Scenario Outline: Get style paragraph format -- @1.1 Style types Given a style of type WD_STYLE_TYPE.PARAGRAPH ... passed in 0.028s Then style.paragraph_format is the ParagraphFormat object for the style ... passed in 0.001s Scenario Outline: Get style paragraph format -- @1.2 Style types Given a style of type WD_STYLE_TYPE.TABLE ... passed in 0.027s Then style.paragraph_format is the ParagraphFormat object for the style ... passed in 0.001s Feature: Add a style Scenario Outline: Add a style -- @1.1 New style varieties Given a document having known styles ... passed in 0.028s When I call add_style('Heading 1', WD_STYLE_TYPE.PARAGRAPH, builtin=True) ... passed in 0.008s Then the document has one additional style ... passed in 0.001s And styles['Heading 1'] is a style ... passed in 0.003s And style.type is WD_STYLE_TYPE.PARAGRAPH ... passed in 0.001s And style.builtin is True ... passed in 0.001s Scenario Outline: Add a style -- @1.2 New style varieties Given a document having known styles ... passed in 0.027s When I call add_style('Inline Code', WD_STYLE_TYPE.CHARACTER, builtin=False) ... passed in 0.006s Then the document has one additional style ... passed in 0.001s And styles['Inline Code'] is a style ... passed in 0.002s And style.type is WD_STYLE_TYPE.CHARACTER ... passed in 0.001s And style.builtin is False ... passed in 0.001s Scenario Outline: Add a style -- @1.3 New style varieties Given a document having known styles ... passed in 0.026s When I call add_style('List Bullet', WD_STYLE_TYPE.LIST, builtin=True) ... passed in 0.008s Then the document has one additional style ... passed in 0.002s And styles['List Bullet'] is a style ... passed in 0.002s And style.type is WD_STYLE_TYPE.LIST ... passed in 0.001s And style.builtin is True ... passed in 0.001s Scenario Outline: Add a style -- @1.4 New style varieties Given a document having known styles ... passed in 0.025s When I call add_style('Shipments', WD_STYLE_TYPE.TABLE, builtin=False) ... passed in 0.005s Then the document has one additional style ... passed in 0.001s And styles['Shipments'] is a style ... passed in 0.002s And style.type is WD_STYLE_TYPE.TABLE ... passed in 0.001s And style.builtin is False ... passed in 0.001s Feature: Delete a style Scenario: Delete a style Given a document having known styles ... passed in 0.028s When I delete a style ... passed in 0.002s Then the document has one fewer styles ... passed in 0.001s And the deleted style is not in the styles collection ... passed in 0.006s Feature: Add or delete a latent style Scenario: Add a latent style Given a document having known styles ... passed in 0.028s When I add a latent style named 'Foobar' ... passed in 0.004s Then the document has one additional latent style ... passed in 0.003s And latent_styles['Foobar'] is a latent style ... passed in 0.003s Scenario: Delete a latent style Given a document having known styles ... passed in 0.026s When I delete a latent style ... passed in 0.006s Then the document has one fewer latent styles ... passed in 0.003s And the deleted latent style is not in the latent styles collection ... passed in 0.003s Feature: Get and set latent style properties Scenario Outline: Get default latent style properties -- @1.1 known latent_styles property values Given a latent styles object with known defaults ... passed in 0.027s Then latent_styles.default_priority is 99 ... passed in 0.001s Scenario Outline: Get default latent style properties -- @1.2 known latent_styles property values Given a latent styles object with known defaults ... passed in 0.026s Then latent_styles.load_count is 276 ... passed in 0.001s Scenario Outline: Get default latent style properties -- @1.3 known latent_styles property values Given a latent styles object with known defaults ... passed in 0.025s Then latent_styles.default_to_hidden is True ... passed in 0.001s Scenario Outline: Get default latent style properties -- @1.4 known latent_styles property values Given a latent styles object with known defaults ... passed in 0.028s Then latent_styles.default_to_locked is False ... passed in 0.001s Scenario Outline: Get default latent style properties -- @1.5 known latent_styles property values Given a latent styles object with known defaults ... passed in 0.026s Then latent_styles.default_to_quick_style is False ... passed in 0.001s Scenario Outline: Get default latent style properties -- @1.6 known latent_styles property values Given a latent styles object with known defaults ... passed in 0.028s Then latent_styles.default_to_unhide_when_used is True ... passed in 0.002s Scenario Outline: Set default latent style properties -- @1.1 known latent_styles property values Given a latent styles object with known defaults ... passed in 0.028s When I assign 42 to latent_styles.default_priority ... passed in 0.001s Then latent_styles.default_priority is 42 ... passed in 0.001s Scenario Outline: Set default latent style properties -- @1.2 known latent_styles property values Given a latent styles object with known defaults ... passed in 0.025s When I assign 240 to latent_styles.load_count ... passed in 0.001s Then latent_styles.load_count is 240 ... passed in 0.001s Scenario Outline: Set default latent style properties -- @1.3 known latent_styles property values Given a latent styles object with known defaults ... passed in 0.025s When I assign False to latent_styles.default_to_hidden ... passed in 0.001s Then latent_styles.default_to_hidden is False ... passed in 0.001s Scenario Outline: Set default latent style properties -- @1.4 known latent_styles property values Given a latent styles object with known defaults ... passed in 0.027s When I assign True to latent_styles.default_to_locked ... passed in 0.001s Then latent_styles.default_to_locked is True ... passed in 0.001s Scenario Outline: Set default latent style properties -- @1.5 known latent_styles property values Given a latent styles object with known defaults ... passed in 0.045s When I assign True to latent_styles.default_to_quick_style ... passed in 0.001s Then latent_styles.default_to_quick_style is True ... passed in 0.001s Scenario Outline: Set default latent style properties -- @1.6 known latent_styles property values Given a latent styles object with known defaults ... passed in 0.026s When I assign False to latent_styles.default_to_unhide_when_used ... passed in 0.001s Then latent_styles.default_to_unhide_when_used is False ... passed in 0.001s Scenario: Get latent style name Given a latent style having a known name ... passed in 0.029s Then latent_style.name is the known name ... passed in 0.001s Scenario Outline: Get latent style display sort order -- @1.1 latent_style.priority values Given a latent style having priority of no setting ... passed in 0.027s Then latent_style.priority is None ... passed in 0.001s Scenario Outline: Get latent style display sort order -- @1.2 latent_style.priority values Given a latent style having priority of 42 ... passed in 0.028s Then latent_style.priority is 42 ... passed in 0.001s Scenario Outline: Set latent style display sort order -- @1.1 Latent style priority values Given a latent style having priority of no setting ... passed in 0.027s When I assign 42 to latent_style.priority ... passed in 0.001s Then latent_style.priority is 42 ... passed in 0.001s Scenario Outline: Set latent style display sort order -- @1.2 Latent style priority values Given a latent style having priority of 42 ... passed in 0.027s When I assign 24 to latent_style.priority ... passed in 0.001s Then latent_style.priority is 24 ... passed in 0.001s Scenario Outline: Set latent style display sort order -- @1.3 Latent style priority values Given a latent style having priority of 42 ... passed in 0.029s When I assign None to latent_style.priority ... passed in 0.001s Then latent_style.priority is None ... passed in 0.001s Scenario Outline: Get on/off latent style properties -- @1.1 Latent style hidden values Given a latent style having hidden set on ... passed in 0.029s Then latent_style.hidden is True ... passed in 0.001s Scenario Outline: Get on/off latent style properties -- @1.2 Latent style hidden values Given a latent style having hidden set off ... passed in 0.027s Then latent_style.hidden is False ... passed in 0.004s Scenario Outline: Get on/off latent style properties -- @1.3 Latent style hidden values Given a latent style having hidden set no setting ... passed in 0.027s Then latent_style.hidden is None ... passed in 0.001s Scenario Outline: Get on/off latent style properties -- @1.4 Latent style hidden values Given a latent style having locked set on ... passed in 0.027s Then latent_style.locked is True ... passed in 0.001s Scenario Outline: Get on/off latent style properties -- @1.5 Latent style hidden values Given a latent style having locked set off ... passed in 0.028s Then latent_style.locked is False ... passed in 0.001s Scenario Outline: Get on/off latent style properties -- @1.6 Latent style hidden values Given a latent style having locked set no setting ... passed in 0.028s Then latent_style.locked is None ... passed in 0.001s Scenario Outline: Get on/off latent style properties -- @1.7 Latent style hidden values Given a latent style having quick_style set on ... passed in 0.028s Then latent_style.quick_style is True ... passed in 0.001s Scenario Outline: Get on/off latent style properties -- @1.8 Latent style hidden values Given a latent style having quick_style set off ... passed in 0.028s Then latent_style.quick_style is False ... passed in 0.001s Scenario Outline: Get on/off latent style properties -- @1.9 Latent style hidden values Given a latent style having quick_style set no setting ... passed in 0.030s Then latent_style.quick_style is None ... passed in 0.001s Scenario Outline: Get on/off latent style properties -- @1.10 Latent style hidden values Given a latent style having unhide_when_used set on ... passed in 0.049s Then latent_style.unhide_when_used is True ... passed in 0.001s Scenario Outline: Get on/off latent style properties -- @1.11 Latent style hidden values Given a latent style having unhide_when_used set off ... passed in 0.030s Then latent_style.unhide_when_used is False ... passed in 0.001s Scenario Outline: Get on/off latent style properties -- @1.12 Latent style hidden values Given a latent style having unhide_when_used set no setting ... passed in 0.027s Then latent_style.unhide_when_used is None ... passed in 0.001s Scenario Outline: Set on/off latent style properties -- @1.1 Latent style hidden values Given a latent style having hidden set no setting ... passed in 0.027s When I assign True to latent_style.hidden ... passed in 0.001s Then latent_style.hidden is True ... passed in 0.001s Scenario Outline: Set on/off latent style properties -- @1.2 Latent style hidden values Given a latent style having hidden set on ... passed in 0.027s When I assign False to latent_style.hidden ... passed in 0.001s Then latent_style.hidden is False ... passed in 0.001s Scenario Outline: Set on/off latent style properties -- @1.3 Latent style hidden values Given a latent style having hidden set off ... passed in 0.026s When I assign None to latent_style.hidden ... passed in 0.001s Then latent_style.hidden is None ... passed in 0.001s Scenario Outline: Set on/off latent style properties -- @1.4 Latent style hidden values Given a latent style having locked set no setting ... passed in 0.026s When I assign False to latent_style.locked ... passed in 0.001s Then latent_style.locked is False ... passed in 0.001s Scenario Outline: Set on/off latent style properties -- @1.5 Latent style hidden values Given a latent style having locked set off ... passed in 0.027s When I assign True to latent_style.locked ... passed in 0.001s Then latent_style.locked is True ... passed in 0.001s Scenario Outline: Set on/off latent style properties -- @1.6 Latent style hidden values Given a latent style having locked set on ... passed in 0.029s When I assign None to latent_style.locked ... passed in 0.001s Then latent_style.locked is None ... passed in 0.001s Scenario Outline: Set on/off latent style properties -- @1.7 Latent style hidden values Given a latent style having quick_style set no setting ... passed in 0.027s When I assign True to latent_style.quick_style ... passed in 0.001s Then latent_style.quick_style is True ... passed in 0.004s Scenario Outline: Set on/off latent style properties -- @1.8 Latent style hidden values Given a latent style having quick_style set on ... passed in 0.028s When I assign False to latent_style.quick_style ... passed in 0.001s Then latent_style.quick_style is False ... passed in 0.001s Scenario Outline: Set on/off latent style properties -- @1.9 Latent style hidden values Given a latent style having quick_style set off ... passed in 0.027s When I assign None to latent_style.quick_style ... passed in 0.001s Then latent_style.quick_style is None ... passed in 0.001s Scenario Outline: Set on/off latent style properties -- @1.10 Latent style hidden values Given a latent style having unhide_when_used set no setting ... passed in 0.026s When I assign False to latent_style.unhide_when_used ... passed in 0.001s Then latent_style.unhide_when_used is False ... passed in 0.001s Scenario Outline: Set on/off latent style properties -- @1.11 Latent style hidden values Given a latent style having unhide_when_used set off ... passed in 0.028s When I assign True to latent_style.unhide_when_used ... passed in 0.001s Then latent_style.unhide_when_used is True ... passed in 0.001s Scenario Outline: Set on/off latent style properties -- @1.12 Latent style hidden values Given a latent style having unhide_when_used set on ... passed in 0.030s When I assign False to latent_style.unhide_when_used ... passed in 0.001s Then latent_style.unhide_when_used is False ... passed in 0.001s Feature: Get and set style properties Scenario Outline: Get base style -- @1.1 Base style values Given a style based on no style ... passed in 0.028s Then style.base_style is None ... passed in 0.003s Scenario Outline: Get base style -- @1.2 Base style values Given a style based on Normal ... passed in 0.028s Then style.base_style is styles['Normal'] ... passed in 0.004s Scenario Outline: Set base style -- @1.1 Base style values Given a style based on no style ... passed in 0.046s When I assign styles['Normal'] to style.base_style ... passed in 0.007s Then style.base_style is styles['Normal'] ... passed in 0.004s Scenario Outline: Set base style -- @1.2 Base style values Given a style based on Normal ... passed in 0.027s When I assign styles['Base'] to style.base_style ... passed in 0.003s Then style.base_style is styles['Base'] ... passed in 0.004s Scenario Outline: Set base style -- @1.3 Base style values Given a style based on Base ... passed in 0.026s When I assign None to style.base_style ... passed in 0.003s Then style.base_style is None ... passed in 0.003s Scenario Outline: Get hidden value -- @1.1 Style hidden values Given a style having hidden set on ... passed in 0.024s Then style.hidden is True ... passed in 0.001s Scenario Outline: Get hidden value -- @1.2 Style hidden values Given a style having hidden set off ... passed in 0.023s Then style.hidden is False ... passed in 0.001s Scenario Outline: Get hidden value -- @1.3 Style hidden values Given a style having hidden set no setting ... passed in 0.024s Then style.hidden is False ... passed in 0.002s Scenario Outline: Set hidden value -- @1.1 Style hidden values Given a style having hidden set no setting ... passed in 0.022s When I assign True to style.hidden ... passed in 0.003s Then style.hidden is True ... passed in 0.002s Scenario Outline: Set hidden value -- @1.2 Style hidden values Given a style having hidden set on ... passed in 0.021s When I assign False to style.hidden ... passed in 0.001s Then style.hidden is False ... passed in 0.001s Scenario Outline: Get locked value -- @1.1 Style locked values Given a style having locked set on ... passed in 0.022s Then style.locked is True ... passed in 0.002s Scenario Outline: Get locked value -- @1.2 Style locked values Given a style having locked set off ... passed in 0.024s Then style.locked is False ... passed in 0.001s Scenario Outline: Get locked value -- @1.3 Style locked values Given a style having locked set no setting ... passed in 0.023s Then style.locked is False ... passed in 0.001s Scenario Outline: Set locked value -- @1.1 Style locked values Given a style having locked set no setting ... passed in 0.023s When I assign True to style.locked ... passed in 0.003s Then style.locked is True ... passed in 0.001s Scenario Outline: Set locked value -- @1.2 Style locked values Given a style having locked set on ... passed in 0.024s When I assign False to style.locked ... passed in 0.001s Then style.locked is False ... passed in 0.001s Scenario: Get name Given a style having a known name ... passed in 0.028s Then style.name is the known name ... passed in 0.001s Scenario: Set name Given a style having a known name ... passed in 0.027s When I assign a new name to the style ... passed in 0.003s Then style.name is the new name ... passed in 0.001s Scenario Outline: Get next paragraph style -- @1.1 Style next paragraph style values Given a style having next paragraph style set to no setting ... passed in 0.028s Then style.next_paragraph_style is Base ... passed in 0.002s Scenario Outline: Get next paragraph style -- @1.2 Style next paragraph style values Given a style having next paragraph style set to Sub Normal ... passed in 0.028s Then style.next_paragraph_style is Sub Normal ... passed in 0.003s Scenario Outline: Get next paragraph style -- @1.3 Style next paragraph style values Given a style having next paragraph style set to Foobar ... passed in 0.028s Then style.next_paragraph_style is Sub Normal ... passed in 0.003s Scenario Outline: Set next paragraph style -- @1.1 Results of assignment to .next_paragraph_style Given a style having next paragraph style set to no setting ... passed in 0.029s When I assign Citation to style.next_paragraph_style ... passed in 0.004s Then style.next_paragraph_style is Citation ... passed in 0.003s Scenario Outline: Set next paragraph style -- @1.2 Results of assignment to .next_paragraph_style Given a style having next paragraph style set to Sub Normal ... passed in 0.035s When I assign Base to style.next_paragraph_style ... passed in 0.003s Then style.next_paragraph_style is Base ... passed in 0.003s Scenario Outline: Set next paragraph style -- @1.3 Results of assignment to .next_paragraph_style Given a style having next paragraph style set to Base ... passed in 0.026s When I assign None to style.next_paragraph_style ... passed in 0.001s Then style.next_paragraph_style is Foo ... passed in 0.005s Scenario Outline: Get style display sort order -- @1.1 style.priority values Given a style having priority of no setting ... passed in 0.023s Then style.priority is None ... passed in 0.001s Scenario Outline: Get style display sort order -- @1.2 style.priority values Given a style having priority of 42 ... passed in 0.022s Then style.priority is 42 ... passed in 0.001s Scenario Outline: Set style display sort order -- @1.1 Style priority values Given a style having priority of no setting ... passed in 0.022s When I assign 42 to style.priority ... passed in 0.003s Then style.priority is 42 ... passed in 0.002s Scenario Outline: Set style display sort order -- @1.2 Style priority values Given a style having priority of 42 ... passed in 0.022s When I assign 24 to style.priority ... passed in 0.002s Then style.priority is 24 ... passed in 0.001s Scenario Outline: Set style display sort order -- @1.3 Style priority values Given a style having priority of 42 ... passed in 0.022s When I assign None to style.priority ... passed in 0.001s Then style.priority is None ... passed in 0.001s Scenario Outline: Get quick-style value -- @1.1 Style quick-style values Given a style having quick-style set on ... passed in 0.022s Then style.quick_style is True ... passed in 0.001s Scenario Outline: Get quick-style value -- @1.2 Style quick-style values Given a style having quick-style set off ... passed in 0.026s Then style.quick_style is False ... passed in 0.003s Scenario Outline: Get quick-style value -- @1.3 Style quick-style values Given a style having quick-style set no setting ... passed in 0.034s Then style.quick_style is False ... passed in 0.002s Scenario Outline: Set quick-style value -- @1.1 Style quick_style values Given a style having quick-style set no setting ... passed in 0.023s When I assign True to style.quick_style ... passed in 0.003s Then style.quick_style is True ... passed in 0.004s Scenario Outline: Set quick-style value -- @1.2 Style quick_style values Given a style having quick-style set on ... passed in 0.029s When I assign False to style.quick_style ... passed in 0.004s Then style.quick_style is False ... passed in 0.001s Scenario: Get style id Given a style having a known style id ... passed in 0.040s Then style.style_id is the known style id ... passed in 0.002s Scenario: Set style id Given a style having a known style id ... passed in 0.038s When I assign a new value to style.style_id ... passed in 0.002s Then style.style_id is the new style id ... passed in 0.002s Scenario: Get style type Given a style having a known type ... passed in 0.041s Then style.type is the known type ... passed in 0.002s Scenario Outline: Get unhide-when-used value -- @1.1 Style unhide-when-used values Given a style having unhide-when-used set on ... passed in 0.029s Then style.unhide_when_used is True ... passed in 0.002s Scenario Outline: Get unhide-when-used value -- @1.2 Style unhide-when-used values Given a style having unhide-when-used set off ... passed in 0.038s Then style.unhide_when_used is False ... passed in 0.002s Scenario Outline: Get unhide-when-used value -- @1.3 Style unhide-when-used values Given a style having unhide-when-used set no setting ... passed in 0.023s Then style.unhide_when_used is False ... passed in 0.001s Scenario Outline: Set unhide-when-used value -- @1.1 Style unhide_when_used values Given a style having unhide-when-used set no setting ... passed in 0.023s When I assign True to style.unhide_when_used ... passed in 0.003s Then style.unhide_when_used is True ... passed in 0.001s Scenario Outline: Set unhide-when-used value -- @1.2 Style unhide_when_used values Given a style having unhide-when-used set on ... passed in 0.022s When I assign False to style.unhide_when_used ... passed in 0.001s Then style.unhide_when_used is False ... passed in 0.001s Feature: Access TabStop objects Scenario Outline: TabStops.__len__ -- @1.1 tab_stop counts Given a tab_stops having 0 tab stops ... passed in 0.025s Then len(tab_stops) is 0 ... passed in 0.001s Scenario Outline: TabStops.__len__ -- @1.2 tab_stop counts Given a tab_stops having 3 tab stops ... passed in 0.024s Then len(tab_stops) is 3 ... passed in 0.002s Scenario: Access an existing TabStop object Given a tab_stops having 3 tab stops ... passed in 0.024s Then I can iterate the TabStops object ... passed in 0.002s And I can access a tab stop by index ... passed in 0.002s Scenario Outline: TabStops.add_tab_stop() -- @1.1 tab stop object counts Given a tab_stops having 0 tab stops ... passed in 0.025s When I add a tab stop ... passed in 0.007s Then len(tab_stops) is 1 ... passed in 0.002s And the tab stops are sequenced in position order ... passed in 0.003s Scenario Outline: TabStops.add_tab_stop() -- @1.2 tab stop object counts Given a tab_stops having 3 tab stops ... passed in 0.026s When I add a tab stop ... passed in 0.002s Then len(tab_stops) is 4 ... passed in 0.003s And the tab stops are sequenced in position order ... passed in 0.004s Scenario: TabStops.__delitem__() Given a tab_stops having 3 tab stops ... passed in 0.024s When I remove a tab stop ... passed in 0.001s Then len(tab_stops) is 2 ... passed in 0.001s And the removed tab stop is no longer present in tab_stops ... passed in 0.002s Scenario: TabStops.clear_all() Given a tab_stops having 3 tab stops ... passed in 0.026s When I call tab_stops.clear_all() ... passed in 0.002s Then len(tab_stops) is 0 ... passed in 0.001s Feature: Tab stop properties Scenario Outline: Get TabStop.position -- @1.1 tab stop positions Given a tab stop 0.5 inches in from the paragraph left edge ... passed in 0.025s Then tab_stop.position is 457200 ... passed in 0.001s Scenario Outline: Get TabStop.position -- @1.2 tab stop positions Given a tab stop 0.5 inches out from the paragraph left edge ... passed in 0.025s Then tab_stop.position is -457200 ... passed in 0.001s Scenario Outline: Set TabStop.position -- @1.1 tab stop positions Given a tab stop 0.5 inches in from the paragraph left edge ... passed in 0.029s When I assign 228600 to tab_stop.position ... passed in 0.002s Then tab_stop.position is 228600 ... passed in 0.001s And the tab stops are sequenced in position order ... passed in 0.002s Scenario Outline: Set TabStop.position -- @1.2 tab stop positions Given a tab stop 0.5 inches in from the paragraph left edge ... passed in 0.025s When I assign -914400 to tab_stop.position ... passed in 0.002s Then tab_stop.position is -914400 ... passed in 0.002s And the tab stops are sequenced in position order ... passed in 0.002s Scenario Outline: Get TabStop.alignment -- @1.1 tab stop alignments Given a tab stop having LEFT alignment ... passed in 0.027s Then tab_stop.alignment is LEFT ... passed in 0.001s Scenario Outline: Get TabStop.alignment -- @1.2 tab stop alignments Given a tab stop having RIGHT alignment ... passed in 0.027s Then tab_stop.alignment is RIGHT ... passed in 0.001s Scenario Outline: Set TabStop.alignment -- @1.1 tab stop alignments Given a tab stop having LEFT alignment ... passed in 0.025s When I assign CENTER to tab_stop.alignment ... passed in 0.001s Then tab_stop.alignment is CENTER ... passed in 0.001s Scenario Outline: Set TabStop.alignment -- @1.2 tab stop alignments Given a tab stop having RIGHT alignment ... passed in 0.025s When I assign LEFT to tab_stop.alignment ... passed in 0.001s Then tab_stop.alignment is LEFT ... passed in 0.001s Scenario Outline: Get TabStop.leader -- @1.1 tab stop leaders Given a tab stop having no specified leader ... passed in 0.028s Then tab_stop.leader is SPACES ... passed in 0.001s Scenario Outline: Get TabStop.leader -- @1.2 tab stop leaders Given a tab stop having a dotted leader ... passed in 0.047s Then tab_stop.leader is DOTS ... passed in 0.001s Scenario Outline: Set TabStop.leader -- @1.1 tab stop leaders Given a tab stop having no specified leader ... passed in 0.026s When I assign DOTS to tab_stop.leader ... passed in 0.001s Then tab_stop.leader is DOTS ... passed in 0.001s Scenario Outline: Set TabStop.leader -- @1.2 tab stop leaders Given a tab stop having a dotted leader ... passed in 0.024s When I assign SPACES to tab_stop.leader ... passed in 0.001s Then tab_stop.leader is SPACES ... passed in 0.001s Feature: Add a row or column to a table Scenario: Add a row to a table Given a 2 x 2 table ... passed in 0.146s When I add a row to the table ... passed in 0.010s Then the table has 3 rows ... passed in 0.001s And the new row has 2 cells ... passed in 0.002s And the width of each cell is 3.0 inches ... passed in 0.007s Scenario: Add a column to a table Given a 2 x 2 table ... passed in 0.147s When I add a 1.0 inch column to the table ... passed in 0.008s Then the table has 3 columns ... passed in 0.001s And the new column has 2 cells ... passed in 0.005s And the new column is 1.0 inches wide ... passed in 0.001s Feature: Access table cells Scenario Outline: Access cell sequence of a row -- @1.1 Reported row cell contents Given a 3x3 table having only uniform cells ... passed in 0.046s Then the row cells text is 1 2 3 4 5 6 7 8 9 ... passed in 0.022s Scenario Outline: Access cell sequence of a row -- @1.2 Reported row cell contents Given a 3x3 table having a horizontal span ... passed in 0.029s Then the row cells text is 1 2 3 4 4 6 7 8 9 ... passed in 0.018s Scenario Outline: Access cell sequence of a row -- @1.3 Reported row cell contents Given a 3x3 table having a vertical span ... passed in 0.030s Then the row cells text is 1 2 3 4 5 6 7 5 9 ... passed in 0.022s Scenario Outline: Access cell sequence of a row -- @1.4 Reported row cell contents Given a 3x3 table having a combined span ... passed in 0.028s Then the row cells text is 1 2 3 4 4 6 4 4 9 ... passed in 0.019s Scenario Outline: Access cell sequence of a column -- @1.1 Reported column cell contents Given a 3x3 table having only uniform cells ... passed in 0.031s Then the column cells text is 1 4 7 2 5 8 3 6 9 ... passed in 0.031s Scenario Outline: Access cell sequence of a column -- @1.2 Reported column cell contents Given a 3x3 table having a horizontal span ... passed in 0.028s Then the column cells text is 1 4 7 2 4 8 3 6 9 ... passed in 0.034s Scenario Outline: Access cell sequence of a column -- @1.3 Reported column cell contents Given a 3x3 table having a vertical span ... passed in 0.030s Then the column cells text is 1 4 7 2 5 5 3 6 9 ... passed in 0.032s Scenario Outline: Access cell sequence of a column -- @1.4 Reported column cell contents Given a 3x3 table having a combined span ... passed in 0.030s Then the column cells text is 1 4 4 2 4 4 3 6 9 ... passed in 0.033s Scenario Outline: Access cell by row and column index -- @1.1 Reported cell text Given a 3x3 table having only uniform cells ... passed in 0.031s Then table.cell(1, 1).text is 5 ... passed in 0.011s Scenario Outline: Access cell by row and column index -- @1.2 Reported cell text Given a 3x3 table having a horizontal span ... passed in 0.033s Then table.cell(1, 1).text is 4 ... passed in 0.009s Scenario Outline: Access cell by row and column index -- @1.3 Reported cell text Given a 3x3 table having a vertical span ... passed in 0.084s Then table.cell(2, 1).text is 5 ... passed in 0.009s Scenario Outline: Access cell by row and column index -- @1.4 Reported cell text Given a 3x3 table having a combined span ... passed in 0.031s Then table.cell(2, 1).text is 4 ... passed in 0.011s Feature: Add a table into a table cell Scenario: Add a table into a table cell Given a table cell ... passed in 0.030s When I add a 2 x 2 table into the first cell ... passed in 0.005s Then cell.tables[0] is a 2 x 2 table ... passed in 0.002s And the width of each column is 1.5375 inches ... passed in 0.002s And the width of each cell is 1.5375 inches ... passed in 0.005s Feature: Get and set table cell properties Scenario Outline: Get _Cell.grid_span -- @1.1 Cell.grid_span value cases Given a _Cell object spanning 1 layout-grid cells ... passed in 0.028s Then cell.grid_span is 1 ... passed in 0.002s Scenario Outline: Get _Cell.grid_span -- @1.2 Cell.grid_span value cases Given a _Cell object spanning 2 layout-grid cells ... passed in 0.030s Then cell.grid_span is 2 ... passed in 0.001s Scenario Outline: Get _Cell.grid_span -- @1.3 Cell.grid_span value cases Given a _Cell object spanning 4 layout-grid cells ... passed in 0.028s Then cell.grid_span is 4 ... passed in 0.001s Scenario Outline: Get _Cell.vertical_alignment -- @1.1 Cell.vertical_alignment value cases Given a _Cell object with inherited vertical alignment as cell ... passed in 0.030s Then cell.vertical_alignment is None ... passed in 0.001s Scenario Outline: Get _Cell.vertical_alignment -- @1.2 Cell.vertical_alignment value cases Given a _Cell object with bottom vertical alignment as cell ... passed in 0.033s Then cell.vertical_alignment is WD_ALIGN_VERTICAL.BOTTOM ... passed in 0.002s Scenario Outline: Get _Cell.vertical_alignment -- @1.3 Cell.vertical_alignment value cases Given a _Cell object with center vertical alignment as cell ... passed in 0.030s Then cell.vertical_alignment is WD_ALIGN_VERTICAL.CENTER ... passed in 0.001s Scenario Outline: Set Cell.vertical_alignment -- @1.1 Cell.vertical_alignment assignment cases Given a _Cell object with inherited vertical alignment as cell ... passed in 0.034s When I assign WD_ALIGN_VERTICAL.BOTTOM to cell.vertical_alignment ... passed in 0.004s Then cell.vertical_alignment is WD_ALIGN_VERTICAL.BOTTOM ... passed in 0.002s Scenario Outline: Set Cell.vertical_alignment -- @1.2 Cell.vertical_alignment assignment cases Given a _Cell object with bottom vertical alignment as cell ... passed in 0.037s When I assign WD_ALIGN_VERTICAL.CENTER to cell.vertical_alignment ... passed in 0.003s Then cell.vertical_alignment is WD_ALIGN_VERTICAL.CENTER ... passed in 0.002s Scenario Outline: Set Cell.vertical_alignment -- @1.3 Cell.vertical_alignment assignment cases Given a _Cell object with center vertical alignment as cell ... passed in 0.035s When I assign None to cell.vertical_alignment ... passed in 0.002s Then cell.vertical_alignment is None ... passed in 0.001s Scenario Outline: Set Cell.vertical_alignment -- @1.4 Cell.vertical_alignment assignment cases Given a _Cell object with inherited vertical alignment as cell ... passed in 0.032s When I assign None to cell.vertical_alignment ... passed in 0.002s Then cell.vertical_alignment is None ... passed in 0.001s Scenario Outline: Get cell width -- @1.1 Table cell width settings Given a table cell having a width of no explicit setting ... passed in 0.034s Then the reported width of the cell is None ... passed in 0.002s Scenario Outline: Get cell width -- @1.2 Table cell width settings Given a table cell having a width of 1 inch ... passed in 0.034s Then the reported width of the cell is 1 inch ... passed in 0.002s Scenario Outline: Set cell width -- @1.1 table column width values Given a table cell having a width of no explicit setting ... passed in 0.032s When I set the cell width to 1 inch ... passed in 0.002s Then the reported width of the cell is 1 inch ... passed in 0.002s Scenario Outline: Set cell width -- @1.2 table column width values Given a table cell having a width of 2 inches ... passed in 0.033s When I set the cell width to 1 inch ... passed in 0.002s Then the reported width of the cell is 1 inch ... passed in 0.001s Feature: Set table cell text Scenario: Set table cell text Given a table cell ... passed in 0.047s When I assign a string to the cell text attribute ... passed in 0.008s Then the cell contains the string I assigned ... passed in 0.005s Feature: Get and set table column widths Scenario Outline: Get existing column width -- @1.1 table column width values Given a table column having a width of no explicit setting ... passed in 0.082s Then the reported column width is None ... passed in 0.002s Scenario Outline: Get existing column width -- @1.2 table column width values Given a table column having a width of 1440 ... passed in 0.033s Then the reported column width is 914400 ... passed in 0.001s Scenario Outline: Set column width -- @1.1 table column width values Given a table column having a width of no explicit setting ... passed in 0.026s When I set the column width to None ... passed in 0.002s Then the reported column width is None ... passed in 0.002s Scenario Outline: Set column width -- @1.2 table column width values Given a table column having a width of no explicit setting ... passed in 0.028s When I set the column width to 914400 ... passed in 0.001s Then the reported column width is 914400 ... passed in 0.001s Scenario Outline: Set column width -- @1.3 table column width values Given a table column having a width of 1440 ... passed in 0.035s When I set the column width to None ... passed in 0.001s Then the reported column width is None ... passed in 0.001s Scenario Outline: Set column width -- @1.4 table column width values Given a table column having a width of 1440 ... passed in 0.026s When I set the column width to 914400 ... passed in 0.002s Then the reported column width is 914400 ... passed in 0.001s Scenario Outline: Set column width -- @1.5 table column width values Given a table column having a width of 1440 ... passed in 0.029s When I set the column width to 424497 ... passed in 0.001s Then the reported column width is 424180 ... passed in 0.001s Feature: Access table rows and columns Scenario: Access table row collection Given a table having two rows ... passed in 0.031s Then I can access the row collection of the table ... passed in 0.001s And the length of the row collection is 2 ... passed in 0.001s Scenario: Access row in row collection Given a row collection having two rows ... passed in 0.025s Then I can iterate over the row collection ... passed in 0.002s And I can access a collection row by index ... passed in 0.002s Scenario: Access table column collection Given a table having two columns ... passed in 0.027s Then I can access the column collection of the table ... passed in 0.001s And the length of the column collection is 2 ... passed in 0.002s Scenario: Access column in column collection Given a column collection having two columns ... passed in 0.028s Then I can iterate over the column collection ... passed in 0.002s And I can access a collection column by index ... passed in 0.002s Feature: Merge table cells Scenario Outline: Merge cells -- @1.1 Reported row cell contents Given a 3x3 table having only uniform cells ... passed in 0.029s When I merge from cell 1 to cell 2 ... passed in 0.062s Then the row cells text is 1\2 1\2 3 4 5 6 7 8 9 ... passed in 0.022s Scenario Outline: Merge cells -- @1.2 Reported row cell contents Given a 3x3 table having only uniform cells ... passed in 0.031s When I merge from cell 2 to cell 5 ... passed in 0.060s Then the row cells text is 1 2\5 3 4 2\5 6 7 8 9 ... passed in 0.028s Scenario Outline: Merge cells -- @1.3 Reported row cell contents Given a 3x3 table having only uniform cells ... passed in 0.029s When I merge from cell 5 to cell 9 ... passed in 0.080s Then the row cells text is 1 2 3 4 5\6\8\9 5\6\8\9 7 5\6\8\9 5\6\8\9 ... passed in 0.035s Scenario Outline: Merge horizontal span with other cell -- @1.1 Reported row cell contents Given a 3x3 table having a horizontal span ... passed in 0.030s When I merge from cell 4 to cell 8 ... passed in 0.065s Then the row cells text is 1 2 3 4\7\8 4\7\8 6 4\7\8 4\7\8 9 ... passed in 0.029s Scenario Outline: Merge horizontal span with other cell -- @1.2 Reported row cell contents Given a 3x3 table having a horizontal span ... passed in 0.031s When I merge from cell 4 to cell 6 ... passed in 0.059s Then the row cells text is 1 2 3 4\6 4\6 4\6 7 8 9 ... passed in 0.020s Scenario Outline: Merge horizontal span with other cell -- @1.3 Reported row cell contents Given a 3x3 table having a horizontal span ... passed in 0.033s When I merge from cell 2 to cell 4 ... passed in 0.066s Then the row cells text is 1\2\4 1\2\4 3 1\2\4 1\2\4 6 7 8 9 ... passed in 0.048s Scenario Outline: Merge vertical span with other cell -- @1.1 Reported row cell contents Given a 3x3 table having a vertical span ... passed in 0.032s When I merge from cell 5 to cell 9 ... passed in 0.088s Then the row cells text is 1 2 3 4 5\6\9 5\6\9 7 5\6\9 5\6\9 ... passed in 0.029s Scenario Outline: Merge vertical span with other cell -- @1.2 Reported row cell contents Given a 3x3 table having a vertical span ... passed in 0.030s When I merge from cell 2 to cell 5 ... passed in 0.077s Then the row cells text is 1 2\5 3 4 2\5 6 7 2\5 9 ... passed in 0.030s Scenario Outline: Merge vertical span with other cell -- @1.3 Reported row cell contents Given a 3x3 table having a vertical span ... passed in 0.032s When I merge from cell 7 to cell 5 ... passed in 0.087s Then the row cells text is 1 2 3 4\5\7 4\5\7 6 4\5\7 4\5\7 9 ... passed in 0.030s Scenario Outline: Horizontal span adds cell widths -- @1.1 Reported row cell contents Given a 3x3 table having only uniform cells ... passed in 0.030s When I merge from cell 1 to cell 2 ... passed in 0.058s Then the width of cell 1 is 2.0 inches ... passed in 0.008s Scenario Outline: Horizontal span adds cell widths -- @1.2 Reported row cell contents Given a 3x3 table having only uniform cells ... passed in 0.028s When I merge from cell 1 to cell 5 ... passed in 0.075s Then the width of cell 1 is 2.0 inches ... passed in 0.008s Scenario Outline: Horizontal span adds cell widths -- @1.3 Reported row cell contents Given a 3x3 table having a horizontal span ... passed in 0.030s When I merge from cell 4 to cell 6 ... passed in 0.058s Then the width of cell 4 is 3.0 inches ... passed in 0.008s Scenario Outline: Horizontal span adds cell widths -- @1.4 Reported row cell contents Given a 3x3 table having a vertical span ... passed in 0.028s When I merge from cell 5 to cell 2 ... passed in 0.077s Then the width of cell 2 is 1.0 inches ... passed in 0.008s Scenario Outline: Horizontal span adds cell widths -- @1.5 Reported row cell contents Given a 3x3 table having a vertical span ... passed in 0.028s When I merge from cell 5 to cell 7 ... passed in 0.081s Then the width of cell 5 is 2.0 inches ... passed in 0.008s Feature: Get and set table properties Scenario Outline: Get table alignment -- @1.1 table alignment settings Given a table having inherited alignment ... passed in 0.031s Then table.alignment is None ... passed in 0.002s Scenario Outline: Get table alignment -- @1.2 table alignment settings Given a table having left alignment ... passed in 0.029s Then table.alignment is WD_TABLE_ALIGNMENT.LEFT ... passed in 0.002s Scenario Outline: Get table alignment -- @1.3 table alignment settings Given a table having right alignment ... passed in 0.029s Then table.alignment is WD_TABLE_ALIGNMENT.RIGHT ... passed in 0.001s Scenario Outline: Get table alignment -- @1.4 table alignment settings Given a table having center alignment ... passed in 0.034s Then table.alignment is WD_TABLE_ALIGNMENT.CENTER ... passed in 0.002s Scenario Outline: Set table alignment -- @1.1 results of assignment to table.alignment Given a table having inherited alignment ... passed in 0.033s When I assign WD_TABLE_ALIGNMENT.LEFT to table.alignment ... passed in 0.004s Then table.alignment is WD_TABLE_ALIGNMENT.LEFT ... passed in 0.002s Scenario Outline: Set table alignment -- @1.2 results of assignment to table.alignment Given a table having left alignment ... passed in 0.031s When I assign WD_TABLE_ALIGNMENT.RIGHT to table.alignment ... passed in 0.003s Then table.alignment is WD_TABLE_ALIGNMENT.RIGHT ... passed in 0.002s Scenario Outline: Set table alignment -- @1.3 results of assignment to table.alignment Given a table having right alignment ... passed in 0.035s When I assign WD_TABLE_ALIGNMENT.CENTER to table.alignment ... passed in 0.003s Then table.alignment is WD_TABLE_ALIGNMENT.CENTER ... passed in 0.002s Scenario Outline: Set table alignment -- @1.4 results of assignment to table.alignment Given a table having center alignment ... passed in 0.032s When I assign None to table.alignment ... passed in 0.002s Then table.alignment is None ... passed in 0.001s Scenario Outline: Get autofit layout setting -- @1.1 table autofit settings Given a table having an autofit layout of no explicit setting ... passed in 0.031s Then the reported autofit setting is autofit ... passed in 0.001s Scenario Outline: Get autofit layout setting -- @1.2 table autofit settings Given a table having an autofit layout of autofit ... passed in 0.032s Then the reported autofit setting is autofit ... passed in 0.002s Scenario Outline: Get autofit layout setting -- @1.3 table autofit settings Given a table having an autofit layout of fixed ... passed in 0.031s Then the reported autofit setting is fixed ... passed in 0.001s Scenario Outline: Set autofit layout setting -- @1.1 table column width values Given a table having an autofit layout of no explicit setting ... passed in 0.030s When I set the table autofit to autofit ... passed in 0.002s Then the reported autofit setting is autofit ... passed in 0.001s Scenario Outline: Set autofit layout setting -- @1.2 table column width values Given a table having an autofit layout of no explicit setting ... passed in 0.029s When I set the table autofit to fixed ... passed in 0.002s Then the reported autofit setting is fixed ... passed in 0.001s Scenario Outline: Set autofit layout setting -- @1.3 table column width values Given a table having an autofit layout of fixed ... passed in 0.028s When I set the table autofit to autofit ... passed in 0.002s Then the reported autofit setting is autofit ... passed in 0.001s Scenario Outline: Set autofit layout setting -- @1.4 table column width values Given a table having an autofit layout of autofit ... passed in 0.029s When I set the table autofit to autofit ... passed in 0.002s Then the reported autofit setting is autofit ... passed in 0.001s Scenario Outline: Set autofit layout setting -- @1.5 table column width values Given a table having an autofit layout of fixed ... passed in 0.029s When I set the table autofit to fixed ... passed in 0.003s Then the reported autofit setting is fixed ... passed in 0.001s Scenario Outline: Set autofit layout setting -- @1.6 table column width values Given a table having an autofit layout of autofit ... passed in 0.031s When I set the table autofit to fixed ... passed in 0.002s Then the reported autofit setting is fixed ... passed in 0.002s Scenario Outline: Get table direction -- @1.1 Table on/off property values Given a table having table direction set to inherit ... passed in 0.029s Then table.table_direction is None ... passed in 0.002s Scenario Outline: Get table direction -- @1.2 Table on/off property values Given a table having table direction set right-to-left ... passed in 0.032s Then table.table_direction is RTL ... passed in 0.001s Scenario Outline: Get table direction -- @1.3 Table on/off property values Given a table having table direction set left-to-right ... passed in 0.025s Then table.table_direction is LTR ... passed in 0.002s Scenario Outline: Set table direction -- @1.1 Results of assignment to Table.table_direction Given a table having table direction set to inherit ... passed in 0.028s When I assign RTL to table.table_direction ... passed in 0.003s Then table.table_direction is RTL ... passed in 0.001s Scenario Outline: Set table direction -- @1.2 Results of assignment to Table.table_direction Given a table having table direction set right-to-left ... passed in 0.029s When I assign LTR to table.table_direction ... passed in 0.002s Then table.table_direction is LTR ... passed in 0.002s Scenario Outline: Set table direction -- @1.3 Results of assignment to Table.table_direction Given a table having table direction set left-to-right ... passed in 0.028s When I assign None to table.table_direction ... passed in 0.001s Then table.table_direction is None ... passed in 0.001s Feature: Get and set table row properties Scenario Outline: Get Row.grid_cols_after -- @1.1 Row.grid_cols_after value cases Given a table row ending with 0 empty grid columns ... passed in 0.038s Then row.grid_cols_after is 0 ... passed in 0.001s Scenario Outline: Get Row.grid_cols_after -- @1.2 Row.grid_cols_after value cases Given a table row ending with 1 empty grid columns ... passed in 0.031s Then row.grid_cols_after is 1 ... passed in 0.002s Scenario Outline: Get Row.grid_cols_after -- @1.3 Row.grid_cols_after value cases Given a table row ending with 2 empty grid columns ... passed in 0.115s Then row.grid_cols_after is 2 ... passed in 0.001s Scenario Outline: Get Row.grid_cols_before -- @1.1 Row.grid_cols_before value cases Given a table row starting with 0 empty grid columns ... passed in 0.030s Then row.grid_cols_before is 0 ... passed in 0.001s Scenario Outline: Get Row.grid_cols_before -- @1.2 Row.grid_cols_before value cases Given a table row starting with 1 empty grid columns ... passed in 0.030s Then row.grid_cols_before is 1 ... passed in 0.002s Scenario Outline: Get Row.grid_cols_before -- @1.3 Row.grid_cols_before value cases Given a table row starting with 3 empty grid columns ... passed in 0.029s Then row.grid_cols_before is 3 ... passed in 0.001s Scenario Outline: Get Row.height_rule -- @1.1 Row.height_rule value cases Given a table row having height rule no explicit setting ... passed in 0.030s Then row.height_rule is None ... passed in 0.001s Scenario Outline: Get Row.height_rule -- @1.2 Row.height_rule value cases Given a table row having height rule automatic ... passed in 0.029s Then row.height_rule is AUTO ... passed in 0.002s Scenario Outline: Get Row.height_rule -- @1.3 Row.height_rule value cases Given a table row having height rule at least ... passed in 0.029s Then row.height_rule is AT_LEAST ... passed in 0.001s Scenario Outline: Set Row.height_rule -- @1.1 Row.height_rule assignment cases Given a table row having height rule no explicit setting ... passed in 0.033s When I assign AUTO to row.height_rule ... passed in 0.004s Then row.height_rule is AUTO ... passed in 0.001s Scenario Outline: Set Row.height_rule -- @1.2 Row.height_rule assignment cases Given a table row having height rule automatic ... passed in 0.030s When I assign AT_LEAST to row.height_rule ... passed in 0.002s Then row.height_rule is AT_LEAST ... passed in 0.001s Scenario Outline: Set Row.height_rule -- @1.3 Row.height_rule assignment cases Given a table row having height rule at least ... passed in 0.029s When I assign None to row.height_rule ... passed in 0.002s Then row.height_rule is None ... passed in 0.004s Scenario Outline: Set Row.height_rule -- @1.4 Row.height_rule assignment cases Given a table row having height rule no explicit setting ... passed in 0.030s When I assign None to row.height_rule ... passed in 0.002s Then row.height_rule is None ... passed in 0.001s Scenario Outline: Get Row.height -- @1.1 Row.height value cases Given a table row having height of no explicit setting ... passed in 0.034s Then row.height is None ... passed in 0.001s Scenario Outline: Get Row.height -- @1.2 Row.height value cases Given a table row having height of 2 inches ... passed in 0.031s Then row.height is 1828800 ... passed in 0.002s Scenario Outline: Get Row.height -- @1.3 Row.height value cases Given a table row having height of 3 inches ... passed in 0.029s Then row.height is 2743200 ... passed in 0.002s Scenario Outline: Set row height -- @1.1 Row.height assignment cases Given a table row having height of no explicit setting ... passed in 0.032s When I assign 1828800 to row.height ... passed in 0.003s Then row.height is 1828800 ... passed in 0.002s Scenario Outline: Set row height -- @1.2 Row.height assignment cases Given a table row having height of 2 inches ... passed in 0.032s When I assign 2743200 to row.height ... passed in 0.002s Then row.height is 2743200 ... passed in 0.002s Scenario Outline: Set row height -- @1.3 Row.height assignment cases Given a table row having height of 3 inches ... passed in 0.060s When I assign None to row.height ... passed in 0.002s Then row.height is None ... passed in 0.002s Scenario Outline: Set row height -- @1.4 Row.height assignment cases Given a table row having height of no explicit setting ... passed in 0.029s When I assign None to row.height ... passed in 0.002s Then row.height is None ... passed in 0.001s Feature: Query and apply a table style Scenario Outline: Get the style of a table -- @1.1 Table styles Given a table having no explicit style ... passed in 0.030s Then table.style is styles['Normal Table'] ... passed in 0.004s Scenario Outline: Get the style of a table -- @1.2 Table styles Given a table having Table Grid style ... passed in 0.033s Then table.style is styles['Table Grid'] ... passed in 0.004s Scenario Outline: Get the style of a table -- @1.3 Table styles Given a table having Light Shading - Accent 1 style ... passed in 0.029s Then table.style is styles['Light Shading Accent 1'] ... passed in 0.003s Scenario Outline: Apply a table style -- @1.1 Character style transitions Given a table having no explicit style ... passed in 0.033s When I assign Table Grid to table.style ... passed in 0.006s Then table.style is styles['Table Grid'] ... passed in 0.003s Scenario Outline: Apply a table style -- @1.2 Character style transitions Given a table having no explicit style ... passed in 0.030s When I assign styles['Table Grid'] to table.style ... passed in 0.005s Then table.style is styles['Table Grid'] ... passed in 0.003s Scenario Outline: Apply a table style -- @1.3 Character style transitions Given a table having Table Grid style ... passed in 0.031s When I assign Normal Table to table.style ... passed in 0.004s Then table.style is styles['Normal Table'] ... passed in 0.004s Scenario Outline: Apply a table style -- @1.4 Character style transitions Given a table having Table Grid style ... passed in 0.030s When I assign styles['Normal Table'] to table.style ... passed in 0.004s Then table.style is styles['Normal Table'] ... passed in 0.004s Scenario Outline: Apply a table style -- @1.5 Character style transitions Given a table having Table Grid style ... passed in 0.030s When I assign None to table.style ... passed in 0.002s Then table.style is styles['Normal Table'] ... passed in 0.004s Feature: Add a line, page, or column break Scenario: Add a line break Given a run ... passed in 0.141s When I add a line break ... passed in 0.001s Then the last item in the run is a break ... passed in 0.001s And it is a line break ... passed in 0.002s Scenario: Add a page break Given a run ... passed in 0.142s When I add a page break ... passed in 0.002s Then the last item in the run is a break ... passed in 0.002s And it is a page break ... passed in 0.002s Scenario: Add a column break Given a run ... passed in 0.148s When I add a column break ... passed in 0.002s Then the last item in the run is a break ... passed in 0.001s And it is a column break ... passed in 0.001s Feature: Get and set font color Scenario Outline: Get font color type -- @1.1 Color type settings Given a font having no color ... passed in 0.028s Then font.color.type is None ... passed in 0.002s Scenario Outline: Get font color type -- @1.2 Color type settings Given a font having auto color ... passed in 0.026s Then font.color.type is AUTO ... passed in 0.002s Scenario Outline: Get font color type -- @1.3 Color type settings Given a font having an RGB color ... passed in 0.028s Then font.color.type is RGB ... passed in 0.002s Scenario Outline: Get font color type -- @1.4 Color type settings Given a font having a theme color ... passed in 0.028s Then font.color.type is THEME ... passed in 0.002s Scenario Outline: Get font RGB color -- @1.1 Color type settings Given a font having no color ... passed in 0.108s Then font.color.rgb is None ... passed in 0.002s Scenario Outline: Get font RGB color -- @1.2 Color type settings Given a font having auto color ... passed in 0.028s Then font.color.rgb is None ... passed in 0.002s Scenario Outline: Get font RGB color -- @1.3 Color type settings Given a font having an RGB color ... passed in 0.027s Then font.color.rgb is 008000 ... passed in 0.002s Scenario Outline: Get font RGB color -- @1.4 Color type settings Given a font having a theme color ... passed in 0.024s Then font.color.rgb is 4f81bd ... passed in 0.002s Scenario Outline: Set font RGB color -- @1.1 Color type settings Given a font having no color ... passed in 0.028s When I assign f00ba5 to font.color.rgb ... passed in 0.007s Then font.color.type is RGB ... passed in 0.002s Then font.color.rgb is f00ba5 ... passed in 0.002s Scenario Outline: Set font RGB color -- @1.2 Color type settings Given a font having auto color ... passed in 0.026s When I assign 2468ac to font.color.rgb ... passed in 0.004s Then font.color.type is RGB ... passed in 0.002s Then font.color.rgb is 2468ac ... passed in 0.002s Scenario Outline: Set font RGB color -- @1.3 Color type settings Given a font having an RGB color ... passed in 0.025s When I assign feeb1e to font.color.rgb ... passed in 0.003s Then font.color.type is RGB ... passed in 0.002s Then font.color.rgb is feeb1e ... passed in 0.001s Scenario Outline: Set font RGB color -- @1.4 Color type settings Given a font having a theme color ... passed in 0.028s When I assign 987bac to font.color.rgb ... passed in 0.006s Then font.color.type is RGB ... passed in 0.002s Then font.color.rgb is 987bac ... passed in 0.003s Scenario Outline: Set font RGB color -- @1.5 Color type settings Given a font having an RGB color ... passed in 0.026s When I assign None to font.color.rgb ... passed in 0.002s Then font.color.type is None ... passed in 0.001s Then font.color.rgb is None ... passed in 0.001s Scenario Outline: Set font RGB color -- @1.6 Color type settings Given a font having a theme color ... passed in 0.025s When I assign None to font.color.rgb ... passed in 0.002s Then font.color.type is None ... passed in 0.001s Then font.color.rgb is None ... passed in 0.001s Scenario Outline: Get font theme color -- @1.1 Color type settings Given a font having no color ... passed in 0.027s Then font.color.theme_color is None ... passed in 0.001s Scenario Outline: Get font theme color -- @1.2 Color type settings Given a font having auto color ... passed in 0.026s Then font.color.theme_color is None ... passed in 0.001s Scenario Outline: Get font theme color -- @1.3 Color type settings Given a font having an RGB color ... passed in 0.025s Then font.color.theme_color is None ... passed in 0.002s Scenario Outline: Get font theme color -- @1.4 Color type settings Given a font having a theme color ... passed in 0.027s Then font.color.theme_color is ACCENT_1 ... passed in 0.002s Scenario Outline: Set font theme color -- @1.1 Color type settings Given a font having no color ... passed in 0.027s When I assign ACCENT_2 to font.color.theme_color ... passed in 0.004s Then font.color.type is THEME ... passed in 0.001s Then font.color.theme_color is ACCENT_2 ... passed in 0.002s Scenario Outline: Set font theme color -- @1.2 Color type settings Given a font having auto color ... passed in 0.029s When I assign DARK_1 to font.color.theme_color ... passed in 0.002s Then font.color.type is THEME ... passed in 0.002s Then font.color.theme_color is DARK_1 ... passed in 0.001s Scenario Outline: Set font theme color -- @1.3 Color type settings Given a font having an RGB color ... passed in 0.046s When I assign TEXT_1 to font.color.theme_color ... passed in 0.002s Then font.color.type is THEME ... passed in 0.002s Then font.color.theme_color is TEXT_1 ... passed in 0.002s Scenario Outline: Set font theme color -- @1.4 Color type settings Given a font having a theme color ... passed in 0.026s When I assign LIGHT_2 to font.color.theme_color ... passed in 0.001s Then font.color.type is THEME ... passed in 0.001s Then font.color.theme_color is LIGHT_2 ... passed in 0.002s Scenario Outline: Set font theme color -- @1.5 Color type settings Given a font having a theme color ... passed in 0.027s When I assign None to font.color.theme_color ... passed in 0.002s Then font.color.type is None ... passed in 0.001s Then font.color.theme_color is None ... passed in 0.002s Scenario Outline: Set font theme color -- @1.6 Color type settings Given a font having an RGB color ... passed in 0.027s When I assign None to font.color.theme_color ... passed in 0.002s Then font.color.type is None ... passed in 0.001s Then font.color.theme_color is None ... passed in 0.001s Feature: Get or set font properties Scenario Outline: Get highlight color -- @1.1 font.highlight_color values Given a font having no highlighting ... passed in 0.029s Then font.highlight_color is None ... passed in 0.001s Scenario Outline: Get highlight color -- @1.2 font.highlight_color values Given a font having yellow highlighting ... passed in 0.025s Then font.highlight_color is YELLOW ... passed in 0.002s Scenario Outline: Get highlight color -- @1.3 font.highlight_color values Given a font having bright green highlighting ... passed in 0.026s Then font.highlight_color is BRIGHT_GREEN ... passed in 0.002s Scenario Outline: Set highlight color -- @1.1 font.highlight_color values Given a font having no highlighting ... passed in 0.026s When I assign YELLOW to font.highlight_color ... passed in 0.003s Then font.highlight_color is YELLOW ... passed in 0.001s Scenario Outline: Set highlight color -- @1.2 font.highlight_color values Given a font having yellow highlighting ... passed in 0.024s When I assign None to font.highlight_color ... passed in 0.001s Then font.highlight_color is None ... passed in 0.001s Scenario Outline: Set highlight color -- @1.3 font.highlight_color values Given a font having bright green highlighting ... passed in 0.024s When I assign BRIGHT_GREEN to font.highlight_color ... passed in 0.002s Then font.highlight_color is BRIGHT_GREEN ... passed in 0.001s Scenario Outline: Get typeface name -- @1.1 font.name values Given a font having typeface name not specified ... passed in 0.032s Then font.name is None ... passed in 0.002s Scenario Outline: Get typeface name -- @1.2 font.name values Given a font having typeface name Avenir Black ... passed in 0.033s Then font.name is Avenir Black ... passed in 0.002s Scenario Outline: Set typeface name -- @1.1 font.name values Given a font having typeface name not specified ... passed in 0.031s When I assign Avenir Black to font.name ... passed in 0.010s Then font.name is Avenir Black ... passed in 0.002s Scenario Outline: Set typeface name -- @1.2 font.name values Given a font having typeface name Avenir Black ... passed in 0.036s When I assign Calibri to font.name ... passed in 0.002s Then font.name is Calibri ... passed in 0.001s Scenario Outline: Set typeface name -- @1.3 font.name values Given a font having typeface name Avenir Black ... passed in 0.031s When I assign None to font.name ... passed in 0.002s Then font.name is None ... passed in 0.002s Scenario Outline: Get font size -- @1.1 font.size values Given a font of size unspecified ... passed in 0.032s Then font.size is None ... passed in 0.001s Scenario Outline: Get font size -- @1.2 font.size values Given a font of size 14 pt ... passed in 0.032s Then font.size is 177800 ... passed in 0.002s Scenario Outline: Set font size -- @1.1 font.size post-assignment values Given a font of size unspecified ... passed in 0.034s When I assign 177800 to font.size ... passed in 0.005s Then font.size is 177800 ... passed in 0.002s Scenario Outline: Set font size -- @1.2 font.size post-assignment values Given a font of size 14 pt ... passed in 0.037s When I assign 228600 to font.size ... passed in 0.002s Then font.size is 228600 ... passed in 0.001s Scenario Outline: Set font size -- @1.3 font.size post-assignment values Given a font of size 18 pt ... passed in 0.060s When I assign None to font.size ... passed in 0.002s Then font.size is None ... passed in 0.001s Scenario: Get font color object Given a font ... passed in 0.035s Then font.color is a ColorFormat object ... passed in 0.001s Scenario Outline: Get font underline value -- @1.1 font underline values Given a font having inherited underline ... passed in 0.032s Then font.underline is None ... passed in 0.001s Scenario Outline: Get font underline value -- @1.2 font underline values Given a font having no underline ... passed in 0.031s Then font.underline is False ... passed in 0.002s Scenario Outline: Get font underline value -- @1.3 font underline values Given a font having single underline ... passed in 0.032s Then font.underline is True ... passed in 0.002s Scenario Outline: Get font underline value -- @1.4 font underline values Given a font having double underline ... passed in 0.032s Then font.underline is WD_UNDERLINE.DOUBLE ... passed in 0.001s Scenario Outline: Change font underline -- @1.1 underline property values Given a font having inherited underline ... passed in 0.034s When I assign True to font.underline ... passed in 0.004s Then font.underline is True ... passed in 0.001s Scenario Outline: Change font underline -- @1.2 underline property values Given a font having inherited underline ... passed in 0.031s When I assign False to font.underline ... passed in 0.003s Then font.underline is False ... passed in 0.002s Scenario Outline: Change font underline -- @1.3 underline property values Given a font having inherited underline ... passed in 0.032s When I assign None to font.underline ... passed in 0.002s Then font.underline is None ... passed in 0.002s Scenario Outline: Change font underline -- @1.4 underline property values Given a font having inherited underline ... passed in 0.032s When I assign WD_UNDERLINE.SINGLE to font.underline ... passed in 0.006s Then font.underline is True ... passed in 0.002s Scenario Outline: Change font underline -- @1.5 underline property values Given a font having inherited underline ... passed in 0.030s When I assign WD_UNDERLINE.DOUBLE to font.underline ... passed in 0.003s Then font.underline is WD_UNDERLINE.DOUBLE ... passed in 0.001s Scenario Outline: Change font underline -- @1.6 underline property values Given a font having single underline ... passed in 0.033s When I assign None to font.underline ... passed in 0.004s Then font.underline is None ... passed in 0.003s Scenario Outline: Change font underline -- @1.7 underline property values Given a font having single underline ... passed in 0.032s When I assign True to font.underline ... passed in 0.003s Then font.underline is True ... passed in 0.001s Scenario Outline: Change font underline -- @1.8 underline property values Given a font having single underline ... passed in 0.032s When I assign False to font.underline ... passed in 0.003s Then font.underline is False ... passed in 0.001s Scenario Outline: Change font underline -- @1.9 underline property values Given a font having single underline ... passed in 0.033s When I assign WD_UNDERLINE.SINGLE to font.underline ... passed in 0.003s Then font.underline is True ... passed in 0.001s Scenario Outline: Change font underline -- @1.10 underline property values Given a font having single underline ... passed in 0.032s When I assign WD_UNDERLINE.DOUBLE to font.underline ... passed in 0.003s Then font.underline is WD_UNDERLINE.DOUBLE ... passed in 0.001s Scenario Outline: Get font sub/superscript value -- @1.1 font sub/superscript values Given a font having inherited vertical alignment ... passed in 0.061s Then font.subscript is None ... passed in 0.001s And font.superscript is None ... passed in 0.001s Scenario Outline: Get font sub/superscript value -- @1.2 font sub/superscript values Given a font having subscript vertical alignment ... passed in 0.030s Then font.subscript is True ... passed in 0.002s And font.superscript is False ... passed in 0.001s Scenario Outline: Get font sub/superscript value -- @1.3 font sub/superscript values Given a font having superscript vertical alignment ... passed in 0.032s Then font.subscript is False ... passed in 0.002s And font.superscript is True ... passed in 0.001s Scenario Outline: Change font sub/superscript -- @1.1 value of sub/superscript after assignment Given a font having inherited vertical alignment ... passed in 0.033s When I assign True to font.subscript ... passed in 0.003s Then font.subscript is True ... passed in 0.001s Scenario Outline: Change font sub/superscript -- @1.2 value of sub/superscript after assignment Given a font having inherited vertical alignment ... passed in 0.034s When I assign True to font.subscript ... passed in 0.004s Then font.superscript is False ... passed in 0.002s Scenario Outline: Change font sub/superscript -- @1.3 value of sub/superscript after assignment Given a font having inherited vertical alignment ... passed in 0.031s When I assign False to font.subscript ... passed in 0.002s Then font.subscript is None ... passed in 0.001s Scenario Outline: Change font sub/superscript -- @1.4 value of sub/superscript after assignment Given a font having inherited vertical alignment ... passed in 0.034s When I assign True to font.superscript ... passed in 0.003s Then font.superscript is True ... passed in 0.001s Scenario Outline: Change font sub/superscript -- @1.5 value of sub/superscript after assignment Given a font having inherited vertical alignment ... passed in 0.031s When I assign True to font.superscript ... passed in 0.003s Then font.subscript is False ... passed in 0.001s Scenario Outline: Change font sub/superscript -- @1.6 value of sub/superscript after assignment Given a font having inherited vertical alignment ... passed in 0.032s When I assign False to font.superscript ... passed in 0.002s Then font.superscript is None ... passed in 0.001s Scenario Outline: Change font sub/superscript -- @1.7 value of sub/superscript after assignment Given a font having subscript vertical alignment ... passed in 0.032s When I assign True to font.subscript ... passed in 0.002s Then font.subscript is True ... passed in 0.002s Scenario Outline: Change font sub/superscript -- @1.8 value of sub/superscript after assignment Given a font having subscript vertical alignment ... passed in 0.031s When I assign False to font.subscript ... passed in 0.002s Then font.subscript is None ... passed in 0.001s Scenario Outline: Change font sub/superscript -- @1.9 value of sub/superscript after assignment Given a font having subscript vertical alignment ... passed in 0.033s When I assign None to font.subscript ... passed in 0.002s Then font.subscript is None ... passed in 0.001s Scenario Outline: Change font sub/superscript -- @1.10 value of sub/superscript after assignment Given a font having subscript vertical alignment ... passed in 0.031s When I assign True to font.superscript ... passed in 0.002s Then font.subscript is False ... passed in 0.001s Scenario Outline: Change font sub/superscript -- @1.11 value of sub/superscript after assignment Given a font having subscript vertical alignment ... passed in 0.030s When I assign False to font.superscript ... passed in 0.002s Then font.subscript is True ... passed in 0.001s Scenario Outline: Change font sub/superscript -- @1.12 value of sub/superscript after assignment Given a font having subscript vertical alignment ... passed in 0.033s When I assign None to font.superscript ... passed in 0.002s Then font.subscript is None ... passed in 0.001s Scenario Outline: Change font sub/superscript -- @1.13 value of sub/superscript after assignment Given a font having superscript vertical alignment ... passed in 0.058s When I assign True to font.superscript ... passed in 0.002s Then font.superscript is True ... passed in 0.001s Scenario Outline: Change font sub/superscript -- @1.14 value of sub/superscript after assignment Given a font having superscript vertical alignment ... passed in 0.037s When I assign False to font.superscript ... passed in 0.002s Then font.superscript is None ... passed in 0.001s Scenario Outline: Change font sub/superscript -- @1.15 value of sub/superscript after assignment Given a font having superscript vertical alignment ... passed in 0.030s When I assign None to font.superscript ... passed in 0.001s Then font.superscript is None ... passed in 0.001s Scenario Outline: Change font sub/superscript -- @1.16 value of sub/superscript after assignment Given a font having superscript vertical alignment ... passed in 0.031s When I assign True to font.subscript ... passed in 0.002s Then font.superscript is False ... passed in 0.002s Scenario Outline: Change font sub/superscript -- @1.17 value of sub/superscript after assignment Given a font having superscript vertical alignment ... passed in 0.032s When I assign False to font.subscript ... passed in 0.002s Then font.superscript is True ... passed in 0.001s Scenario Outline: Change font sub/superscript -- @1.18 value of sub/superscript after assignment Given a font having superscript vertical alignment ... passed in 0.031s When I assign None to font.subscript ... passed in 0.001s Then font.superscript is None ... passed in 0.001s Scenario Outline: Apply boolean property to a run -- @1.1 Boolean run properties Given a run ... passed in 0.140s When I assign True to its all_caps property ... passed in 0.001s Then the run appears in all_caps unconditionally ... passed in 0.001s Scenario Outline: Apply boolean property to a run -- @1.2 Boolean run properties Given a run ... passed in 0.141s When I assign True to its bold property ... passed in 0.006s Then the run appears in bold unconditionally ... passed in 0.001s Scenario Outline: Apply boolean property to a run -- @1.3 Boolean run properties Given a run ... passed in 0.146s When I assign True to its complex_script property ... passed in 0.001s Then the run appears in complex_script unconditionally ... passed in 0.001s Scenario Outline: Apply boolean property to a run -- @1.4 Boolean run properties Given a run ... passed in 0.149s When I assign True to its cs_bold property ... passed in 0.001s Then the run appears in cs_bold unconditionally ... passed in 0.001s Scenario Outline: Apply boolean property to a run -- @1.5 Boolean run properties Given a run ... passed in 0.150s When I assign True to its cs_italic property ... passed in 0.001s Then the run appears in cs_italic unconditionally ... passed in 0.001s Scenario Outline: Apply boolean property to a run -- @1.6 Boolean run properties Given a run ... passed in 0.148s When I assign True to its double_strike property ... passed in 0.001s Then the run appears in double_strike unconditionally ... passed in 0.001s Scenario Outline: Apply boolean property to a run -- @1.7 Boolean run properties Given a run ... passed in 0.257s When I assign True to its emboss property ... passed in 0.001s Then the run appears in emboss unconditionally ... passed in 0.001s Scenario Outline: Apply boolean property to a run -- @1.8 Boolean run properties Given a run ... passed in 0.254s When I assign True to its hidden property ... passed in 0.002s Then the run appears in hidden unconditionally ... passed in 0.001s Scenario Outline: Apply boolean property to a run -- @1.9 Boolean run properties Given a run ... passed in 0.300s When I assign True to its italic property ... passed in 0.005s Then the run appears in italic unconditionally ... passed in 0.002s Scenario Outline: Apply boolean property to a run -- @1.10 Boolean run properties Given a run ... passed in 0.146s When I assign True to its imprint property ... passed in 0.001s Then the run appears in imprint unconditionally ... passed in 0.001s Scenario Outline: Apply boolean property to a run -- @1.11 Boolean run properties Given a run ... passed in 0.144s When I assign True to its math property ... passed in 0.001s Then the run appears in math unconditionally ... passed in 0.001s Scenario Outline: Apply boolean property to a run -- @1.12 Boolean run properties Given a run ... passed in 0.143s When I assign True to its no_proof property ... passed in 0.001s Then the run appears in no_proof unconditionally ... passed in 0.001s Scenario Outline: Apply boolean property to a run -- @1.13 Boolean run properties Given a run ... passed in 0.145s When I assign True to its outline property ... passed in 0.001s Then the run appears in outline unconditionally ... passed in 0.001s Scenario Outline: Apply boolean property to a run -- @1.14 Boolean run properties Given a run ... passed in 0.144s When I assign True to its rtl property ... passed in 0.001s Then the run appears in rtl unconditionally ... passed in 0.001s Scenario Outline: Apply boolean property to a run -- @1.15 Boolean run properties Given a run ... passed in 0.143s When I assign True to its shadow property ... passed in 0.001s Then the run appears in shadow unconditionally ... passed in 0.001s Scenario Outline: Apply boolean property to a run -- @1.16 Boolean run properties Given a run ... passed in 0.144s When I assign True to its small_caps property ... passed in 0.002s Then the run appears in small_caps unconditionally ... passed in 0.001s Scenario Outline: Apply boolean property to a run -- @1.17 Boolean run properties Given a run ... passed in 0.213s When I assign True to its snap_to_grid property ... passed in 0.001s Then the run appears in snap_to_grid unconditionally ... passed in 0.001s Scenario Outline: Apply boolean property to a run -- @1.18 Boolean run properties Given a run ... passed in 0.246s When I assign True to its spec_vanish property ... passed in 0.001s Then the run appears in spec_vanish unconditionally ... passed in 0.002s Scenario Outline: Apply boolean property to a run -- @1.19 Boolean run properties Given a run ... passed in 0.333s When I assign True to its strike property ... passed in 0.003s Then the run appears in strike unconditionally ... passed in 0.003s Scenario Outline: Apply boolean property to a run -- @1.20 Boolean run properties Given a run ... passed in 0.298s When I assign True to its web_hidden property ... passed in 0.002s Then the run appears in web_hidden unconditionally ... passed in 0.002s Scenario Outline: Set all_caps off unconditionally -- @1.1 Boolean run properties Given a run ... passed in 0.272s When I assign False to its all_caps property ... passed in 0.002s Then the run appears without all_caps unconditionally ... passed in 0.002s Scenario Outline: Set bold off unconditionally -- @1.2 Boolean run properties Given a run ... passed in 0.446s When I assign False to its bold property ... passed in 0.006s Then the run appears without bold unconditionally ... passed in 0.002s Scenario Outline: Set complex_script off unconditionally -- @1.3 Boolean run properties Given a run ... passed in 0.190s When I assign False to its complex_script property ... passed in 0.001s Then the run appears without complex_script unconditionally ... passed in 0.001s Scenario Outline: Set cs_bold off unconditionally -- @1.4 Boolean run properties Given a run ... passed in 0.154s When I assign False to its cs_bold property ... passed in 0.001s Then the run appears without cs_bold unconditionally ... passed in 0.001s Scenario Outline: Set cs_italic off unconditionally -- @1.5 Boolean run properties Given a run ... passed in 0.158s When I assign False to its cs_italic property ... passed in 0.001s Then the run appears without cs_italic unconditionally ... passed in 0.001s Scenario Outline: Set double_strike off unconditionally -- @1.6 Boolean run properties Given a run ... passed in 0.165s When I assign False to its double_strike property ... passed in 0.001s Then the run appears without double_strike unconditionally ... passed in 0.001s Scenario Outline: Set emboss off unconditionally -- @1.7 Boolean run properties Given a run ... passed in 0.147s When I assign False to its emboss property ... passed in 0.001s Then the run appears without emboss unconditionally ... passed in 0.001s Scenario Outline: Set hidden off unconditionally -- @1.8 Boolean run properties Given a run ... passed in 0.147s When I assign False to its hidden property ... passed in 0.001s Then the run appears without hidden unconditionally ... passed in 0.001s Scenario Outline: Set italic off unconditionally -- @1.9 Boolean run properties Given a run ... passed in 0.142s When I assign False to its italic property ... passed in 0.005s Then the run appears without italic unconditionally ... passed in 0.002s Scenario Outline: Set imprint off unconditionally -- @1.10 Boolean run properties Given a run ... passed in 0.148s When I assign False to its imprint property ... passed in 0.001s Then the run appears without imprint unconditionally ... passed in 0.001s Scenario Outline: Set math off unconditionally -- @1.11 Boolean run properties Given a run ... passed in 0.141s When I assign False to its math property ... passed in 0.001s Then the run appears without math unconditionally ... passed in 0.001s Scenario Outline: Set no_proof off unconditionally -- @1.12 Boolean run properties Given a run ... passed in 0.140s When I assign False to its no_proof property ... passed in 0.001s Then the run appears without no_proof unconditionally ... passed in 0.001s Scenario Outline: Set outline off unconditionally -- @1.13 Boolean run properties Given a run ... passed in 0.143s When I assign False to its outline property ... passed in 0.001s Then the run appears without outline unconditionally ... passed in 0.001s Scenario Outline: Set rtl off unconditionally -- @1.14 Boolean run properties Given a run ... passed in 0.143s When I assign False to its rtl property ... passed in 0.001s Then the run appears without rtl unconditionally ... passed in 0.001s Scenario Outline: Set shadow off unconditionally -- @1.15 Boolean run properties Given a run ... passed in 0.250s When I assign False to its shadow property ... passed in 0.001s Then the run appears without shadow unconditionally ... passed in 0.001s Scenario Outline: Set small_caps off unconditionally -- @1.16 Boolean run properties Given a run ... passed in 0.248s When I assign False to its small_caps property ... passed in 0.002s Then the run appears without small_caps unconditionally ... passed in 0.002s Scenario Outline: Set snap_to_grid off unconditionally -- @1.17 Boolean run properties Given a run ... passed in 0.247s When I assign False to its snap_to_grid property ... passed in 0.001s Then the run appears without snap_to_grid unconditionally ... passed in 0.002s Scenario Outline: Set spec_vanish off unconditionally -- @1.18 Boolean run properties Given a run ... passed in 0.251s When I assign False to its spec_vanish property ... passed in 0.002s Then the run appears without spec_vanish unconditionally ... passed in 0.001s Scenario Outline: Set strike off unconditionally -- @1.19 Boolean run properties Given a run ... passed in 0.250s When I assign False to its strike property ... passed in 0.002s Then the run appears without strike unconditionally ... passed in 0.001s Scenario Outline: Set web_hidden off unconditionally -- @1.20 Boolean run properties Given a run ... passed in 0.460s When I assign False to its web_hidden property ... passed in 0.001s Then the run appears without web_hidden unconditionally ... passed in 0.001s Scenario Outline: Remove boolean property from a run -- @1.1 Boolean run properties Given a run having all_caps set on ... passed in 0.139s When I assign None to its all_caps property ... passed in 0.001s Then the run appears with its inherited all_caps setting ... passed in 0.001s Scenario Outline: Remove boolean property from a run -- @1.2 Boolean run properties Given a run having bold set on ... passed in 0.146s When I assign None to its bold property ... passed in 0.002s Then the run appears with its inherited bold setting ... passed in 0.004s Scenario Outline: Remove boolean property from a run -- @1.3 Boolean run properties Given a run having complex_script set on ... passed in 0.140s When I assign None to its complex_script property ... passed in 0.001s Then the run appears with its inherited complex_script setting ... passed in 0.001s Scenario Outline: Remove boolean property from a run -- @1.4 Boolean run properties Given a run having cs_bold set on ... passed in 0.156s When I assign None to its cs_bold property ... passed in 0.001s Then the run appears with its inherited cs_bold setting ... passed in 0.001s Scenario Outline: Remove boolean property from a run -- @1.5 Boolean run properties Given a run having cs_italic set on ... passed in 0.142s When I assign None to its cs_italic property ... passed in 0.001s Then the run appears with its inherited cs_italic setting ... passed in 0.001s Scenario Outline: Remove boolean property from a run -- @1.6 Boolean run properties Given a run having double_strike set on ... passed in 0.141s When I assign None to its double_strike property ... passed in 0.001s Then the run appears with its inherited double_strike setting ... passed in 0.001s Scenario Outline: Remove boolean property from a run -- @1.7 Boolean run properties Given a run having emboss set on ... passed in 0.146s When I assign None to its emboss property ... passed in 0.001s Then the run appears with its inherited emboss setting ... passed in 0.001s Scenario Outline: Remove boolean property from a run -- @1.8 Boolean run properties Given a run having hidden set on ... passed in 0.144s When I assign None to its hidden property ... passed in 0.001s Then the run appears with its inherited hidden setting ... passed in 0.001s Scenario Outline: Remove boolean property from a run -- @1.9 Boolean run properties Given a run having italic set on ... passed in 0.145s When I assign None to its italic property ... passed in 0.002s Then the run appears with its inherited italic setting ... passed in 0.001s Scenario Outline: Remove boolean property from a run -- @1.10 Boolean run properties Given a run having imprint set on ... passed in 0.147s When I assign None to its imprint property ... passed in 0.001s Then the run appears with its inherited imprint setting ... passed in 0.001s Scenario Outline: Remove boolean property from a run -- @1.11 Boolean run properties Given a run having math set on ... passed in 0.140s When I assign None to its math property ... passed in 0.001s Then the run appears with its inherited math setting ... passed in 0.001s Scenario Outline: Remove boolean property from a run -- @1.12 Boolean run properties Given a run having no_proof set on ... passed in 0.142s When I assign None to its no_proof property ... passed in 0.001s Then the run appears with its inherited no_proof setting ... passed in 0.001s Scenario Outline: Remove boolean property from a run -- @1.13 Boolean run properties Given a run having outline set on ... passed in 0.362s When I assign None to its outline property ... passed in 0.001s Then the run appears with its inherited outline setting ... passed in 0.001s Scenario Outline: Remove boolean property from a run -- @1.14 Boolean run properties Given a run having rtl set on ... passed in 0.142s When I assign None to its rtl property ... passed in 0.001s Then the run appears with its inherited rtl setting ... passed in 0.001s Scenario Outline: Remove boolean property from a run -- @1.15 Boolean run properties Given a run having shadow set on ... passed in 0.142s When I assign None to its shadow property ... passed in 0.001s Then the run appears with its inherited shadow setting ... passed in 0.001s Scenario Outline: Remove boolean property from a run -- @1.16 Boolean run properties Given a run having small_caps set on ... passed in 0.140s When I assign None to its small_caps property ... passed in 0.001s Then the run appears with its inherited small_caps setting ... passed in 0.001s Scenario Outline: Remove boolean property from a run -- @1.17 Boolean run properties Given a run having snap_to_grid set on ... passed in 0.140s When I assign None to its snap_to_grid property ... passed in 0.001s Then the run appears with its inherited snap_to_grid setting ... passed in 0.001s Scenario Outline: Remove boolean property from a run -- @1.18 Boolean run properties Given a run having spec_vanish set on ... passed in 0.141s When I assign None to its spec_vanish property ... passed in 0.001s Then the run appears with its inherited spec_vanish setting ... passed in 0.001s Scenario Outline: Remove boolean property from a run -- @1.19 Boolean run properties Given a run having strike set on ... passed in 0.138s When I assign None to its strike property ... passed in 0.001s Then the run appears with its inherited strike setting ... passed in 0.001s Scenario Outline: Remove boolean property from a run -- @1.20 Boolean run properties Given a run having web_hidden set on ... passed in 0.142s When I assign None to its web_hidden property ... passed in 0.001s Then the run appears with its inherited web_hidden setting ... passed in 0.001s Feature: Get or set paragraph formatting properties Scenario: Get tab stops Given a paragraph format ... passed in 0.025s Then paragraph_format.tab_stops is a TabStops object ... passed in 0.002s Scenario Outline: Get paragraph alignment -- @1.1 paragraph_format.alignment values Given a paragraph format having inherited alignment ... passed in 0.027s Then paragraph_format.alignment is None ... passed in 0.001s Scenario Outline: Get paragraph alignment -- @1.2 paragraph_format.alignment values Given a paragraph format having center alignment ... passed in 0.027s Then paragraph_format.alignment is WD_ALIGN_PARAGRAPH.CENTER ... passed in 0.002s Scenario Outline: Get paragraph alignment -- @1.3 paragraph_format.alignment values Given a paragraph format having right alignment ... passed in 0.026s Then paragraph_format.alignment is WD_ALIGN_PARAGRAPH.RIGHT ... passed in 0.002s Scenario Outline: Set paragraph alignment -- @1.1 paragraph_format.alignment assignment results Given a paragraph format having inherited alignment ... passed in 0.027s When I assign WD_ALIGN_PARAGRAPH.CENTER to paragraph_format.alignment ... passed in 0.005s Then paragraph_format.alignment is WD_ALIGN_PARAGRAPH.CENTER ... passed in 0.002s Scenario Outline: Set paragraph alignment -- @1.2 paragraph_format.alignment assignment results Given a paragraph format having center alignment ... passed in 0.028s When I assign WD_ALIGN_PARAGRAPH.RIGHT to paragraph_format.alignment ... passed in 0.002s Then paragraph_format.alignment is WD_ALIGN_PARAGRAPH.RIGHT ... passed in 0.002s Scenario Outline: Set paragraph alignment -- @1.3 paragraph_format.alignment assignment results Given a paragraph format having right alignment ... passed in 0.026s When I assign None to paragraph_format.alignment ... passed in 0.001s Then paragraph_format.alignment is None ... passed in 0.002s Scenario Outline: Get paragraph spacing -- @1.1 paragraph_format spacing values Given a paragraph format having inherited space before ... passed in 0.028s Then paragraph_format.space_before is None ... passed in 0.001s Scenario Outline: Get paragraph spacing -- @1.2 paragraph_format spacing values Given a paragraph format having 24 pt space before ... passed in 0.027s Then paragraph_format.space_before is 304800 ... passed in 0.002s Scenario Outline: Get paragraph spacing -- @1.3 paragraph_format spacing values Given a paragraph format having inherited space after ... passed in 0.169s Then paragraph_format.space_after is None ... passed in 0.002s Scenario Outline: Get paragraph spacing -- @1.4 paragraph_format spacing values Given a paragraph format having 42 pt space after ... passed in 0.031s Then paragraph_format.space_after is 533400 ... passed in 0.002s Scenario Outline: Set paragraph spacing -- @1.1 paragraph_format spacing assignment results Given a paragraph format having inherited space before ... passed in 0.026s When I assign Pt(12) to paragraph_format.space_before ... passed in 0.004s Then paragraph_format.space_before is 152400 ... passed in 0.001s Scenario Outline: Set paragraph spacing -- @1.2 paragraph_format spacing assignment results Given a paragraph format having 24 pt space before ... passed in 0.027s When I assign Pt(18) to paragraph_format.space_before ... passed in 0.002s Then paragraph_format.space_before is 228600 ... passed in 0.002s Scenario Outline: Set paragraph spacing -- @1.3 paragraph_format spacing assignment results Given a paragraph format having 24 pt space before ... passed in 0.026s When I assign None to paragraph_format.space_before ... passed in 0.002s Then paragraph_format.space_before is None ... passed in 0.001s Scenario Outline: Set paragraph spacing -- @1.4 paragraph_format spacing assignment results Given a paragraph format having inherited space after ... passed in 0.025s When I assign Pt(12) to paragraph_format.space_after ... passed in 0.003s Then paragraph_format.space_after is 152400 ... passed in 0.002s Scenario Outline: Set paragraph spacing -- @1.5 paragraph_format spacing assignment results Given a paragraph format having 42 pt space after ... passed in 0.024s When I assign Pt(18) to paragraph_format.space_after ... passed in 0.002s Then paragraph_format.space_after is 228600 ... passed in 0.001s Scenario Outline: Set paragraph spacing -- @1.6 paragraph_format spacing assignment results Given a paragraph format having 42 pt space after ... passed in 0.025s When I assign None to paragraph_format.space_after ... passed in 0.002s Then paragraph_format.space_after is None ... passed in 0.001s Scenario Outline: Get line spacing -- @1.1 paragraph_format.line_spacing values Given a paragraph format having inherited line spacing ... passed in 0.025s Then paragraph_format.line_spacing is None ... passed in 0.001s Then paragraph_format.line_spacing_rule is None ... passed in 0.001s Scenario Outline: Get line spacing -- @1.2 paragraph_format.line_spacing values Given a paragraph format having 14 pt line spacing ... passed in 0.025s Then paragraph_format.line_spacing is 177800 ... passed in 0.002s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.EXACTLY ... passed in 0.002s Scenario Outline: Get line spacing -- @1.3 paragraph_format.line_spacing values Given a paragraph format having double line spacing ... passed in 0.025s Then paragraph_format.line_spacing is 2.0 ... passed in 0.002s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.DOUBLE ... passed in 0.002s Scenario Outline: Set line spacing -- @1.1 paragraph_format.line_spacing assignment results Given a paragraph format having inherited line spacing ... passed in 0.026s When I assign Pt(14) to paragraph_format.line_spacing ... passed in 0.004s Then paragraph_format.line_spacing is 177800 ... passed in 0.002s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.EXACTLY ... passed in 0.002s Scenario Outline: Set line spacing -- @1.2 paragraph_format.line_spacing assignment results Given a paragraph format having 14 pt line spacing ... passed in 0.029s When I assign 2 to paragraph_format.line_spacing ... passed in 0.002s Then paragraph_format.line_spacing is 2.0 ... passed in 0.002s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.DOUBLE ... passed in 0.002s Scenario Outline: Set line spacing -- @1.3 paragraph_format.line_spacing assignment results Given a paragraph format having double line spacing ... passed in 0.028s When I assign 1.75 to paragraph_format.line_spacing ... passed in 0.002s Then paragraph_format.line_spacing is 1.75 ... passed in 0.002s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.MULTIPLE ... passed in 0.002s Scenario Outline: Set line spacing -- @1.4 paragraph_format.line_spacing assignment results Given a paragraph format having inherited line spacing ... passed in 0.025s When I assign 1.0 to paragraph_format.line_spacing ... passed in 0.004s Then paragraph_format.line_spacing is 1.0 ... passed in 0.002s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.SINGLE ... passed in 0.002s Scenario Outline: Set line spacing -- @1.5 paragraph_format.line_spacing assignment results Given a paragraph format having 14 pt line spacing ... passed in 0.028s When I assign 1.5 to paragraph_format.line_spacing ... passed in 0.002s Then paragraph_format.line_spacing is 1.5 ... passed in 0.002s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.ONE_POINT_FIVE ... passed in 0.002s Scenario Outline: Set line spacing rule -- @1.1 paragraph_format.line_spacing_rule assignment results Given a paragraph format having 14 pt line spacing ... passed in 0.044s When I assign WD_LINE_SPACING.DOUBLE to paragraph_format.line_spacing_rule ... passed in 0.002s Then paragraph_format.line_spacing is 2.0 ... passed in 0.002s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.DOUBLE ... passed in 0.002s Scenario Outline: Set line spacing rule -- @1.2 paragraph_format.line_spacing_rule assignment results Given a paragraph format having double line spacing ... passed in 0.027s When I assign WD_LINE_SPACING.SINGLE to paragraph_format.line_spacing_rule ... passed in 0.002s Then paragraph_format.line_spacing is 1.0 ... passed in 0.002s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.SINGLE ... passed in 0.002s Scenario Outline: Set line spacing rule -- @1.3 paragraph_format.line_spacing_rule assignment results Given a paragraph format having 14 pt line spacing ... passed in 0.026s When I assign WD_LINE_SPACING.AT_LEAST to paragraph_format.line_spacing_rule ... passed in 0.002s Then paragraph_format.line_spacing is 177800 ... passed in 0.002s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.AT_LEAST ... passed in 0.002s Scenario Outline: Set line spacing rule -- @1.4 paragraph_format.line_spacing_rule assignment results Given a paragraph format having 14 pt line spacing ... passed in 0.025s When I assign None to paragraph_format.line_spacing_rule ... passed in 0.002s Then paragraph_format.line_spacing is 1.1666 ... passed in 0.002s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.MULTIPLE ... passed in 0.002s Scenario Outline: Get paragraph indents -- @1.1 paragraph_format indent values Given a paragraph format having first_line indent of inherit ... passed in 0.026s Then paragraph_format.first_line_indent is None ... passed in 0.001s Scenario Outline: Get paragraph indents -- @1.2 paragraph_format indent values Given a paragraph format having first_line indent of 18 pt ... passed in 0.025s Then paragraph_format.first_line_indent is 228600 ... passed in 0.002s Scenario Outline: Get paragraph indents -- @1.3 paragraph_format indent values Given a paragraph format having first_line indent of -17.3 pt ... passed in 0.028s Then paragraph_format.first_line_indent is -219710 ... passed in 0.002s Scenario Outline: Get paragraph indents -- @1.4 paragraph_format indent values Given a paragraph format having left indent of inherit ... passed in 0.026s Then paragraph_format.left_indent is None ... passed in 0.001s Scenario Outline: Get paragraph indents -- @1.5 paragraph_format indent values Given a paragraph format having left indent of 46.1 pt ... passed in 0.025s Then paragraph_format.left_indent is 585470 ... passed in 0.002s Scenario Outline: Get paragraph indents -- @1.6 paragraph_format indent values Given a paragraph format having right indent of inherit ... passed in 0.028s Then paragraph_format.right_indent is None ... passed in 0.001s Scenario Outline: Get paragraph indents -- @1.7 paragraph_format indent values Given a paragraph format having right indent of 17.3 pt ... passed in 0.029s Then paragraph_format.right_indent is 219710 ... passed in 0.002s Scenario Outline: Set paragraph indents -- @1.1 paragraph_format indent assignment results Given a paragraph format having first_line indent of inherit ... passed in 0.028s When I assign 18 pt to paragraph_format.first_line_indent ... passed in 0.004s Then paragraph_format.first_line_indent is 228600 ... passed in 0.002s Scenario Outline: Set paragraph indents -- @1.2 paragraph_format indent assignment results Given a paragraph format having first_line indent of 18 pt ... passed in 0.028s When I assign -18 pt to paragraph_format.first_line_indent ... passed in 0.002s Then paragraph_format.first_line_indent is -228600 ... passed in 0.001s Scenario Outline: Set paragraph indents -- @1.3 paragraph_format indent assignment results Given a paragraph format having first_line indent of -17.3 pt ... passed in 0.028s When I assign None to paragraph_format.first_line_indent ... passed in 0.002s Then paragraph_format.first_line_indent is None ... passed in 0.002s Scenario Outline: Set paragraph indents -- @1.4 paragraph_format indent assignment results Given a paragraph format having left indent of inherit ... passed in 0.028s When I assign 36 pt to paragraph_format.left_indent ... passed in 0.004s Then paragraph_format.left_indent is 457200 ... passed in 0.003s Scenario Outline: Set paragraph indents -- @1.5 paragraph_format indent assignment results Given a paragraph format having left indent of 46.1 pt ... passed in 0.029s When I assign -12 pt to paragraph_format.left_indent ... passed in 0.002s Then paragraph_format.left_indent is -152400 ... passed in 0.001s Scenario Outline: Set paragraph indents -- @1.6 paragraph_format indent assignment results Given a paragraph format having left indent of 46.1 pt ... passed in 0.025s When I assign None to paragraph_format.left_indent ... passed in 0.002s Then paragraph_format.left_indent is None ... passed in 0.001s Scenario Outline: Set paragraph indents -- @1.7 paragraph_format indent assignment results Given a paragraph format having right indent of inherit ... passed in 0.028s When I assign 24 pt to paragraph_format.right_indent ... passed in 0.004s Then paragraph_format.right_indent is 304800 ... passed in 0.001s Scenario Outline: Set paragraph indents -- @1.8 paragraph_format indent assignment results Given a paragraph format having right indent of 17.3 pt ... passed in 0.048s When I assign -6 pt to paragraph_format.right_indent ... passed in 0.002s Then paragraph_format.right_indent is -76200 ... passed in 0.002s Scenario Outline: Set paragraph indents -- @1.9 paragraph_format indent assignment results Given a paragraph format having right indent of 17.3 pt ... passed in 0.026s When I assign None to paragraph_format.right_indent ... passed in 0.002s Then paragraph_format.right_indent is None ... passed in 0.001s Scenario Outline: Get On/Off paragraph property -- @1.1 ParagraphFormat On/Off property values Given a paragraph format having keep_together set to inherit ... passed in 0.028s Then paragraph_format.keep_together is None ... passed in 0.001s Scenario Outline: Get On/Off paragraph property -- @1.2 ParagraphFormat On/Off property values Given a paragraph format having keep_together set On ... passed in 0.026s Then paragraph_format.keep_together is True ... passed in 0.002s Scenario Outline: Get On/Off paragraph property -- @1.3 ParagraphFormat On/Off property values Given a paragraph format having keep_together set Off ... passed in 0.026s Then paragraph_format.keep_together is False ... passed in 0.002s Scenario Outline: Get On/Off paragraph property -- @1.4 ParagraphFormat On/Off property values Given a paragraph format having keep_with_next set to inherit ... passed in 0.029s Then paragraph_format.keep_with_next is None ... passed in 0.001s Scenario Outline: Get On/Off paragraph property -- @1.5 ParagraphFormat On/Off property values Given a paragraph format having keep_with_next set On ... passed in 0.026s Then paragraph_format.keep_with_next is True ... passed in 0.002s Scenario Outline: Get On/Off paragraph property -- @1.6 ParagraphFormat On/Off property values Given a paragraph format having keep_with_next set Off ... passed in 0.025s Then paragraph_format.keep_with_next is False ... passed in 0.001s Scenario Outline: Get On/Off paragraph property -- @1.7 ParagraphFormat On/Off property values Given a paragraph format having page_break_before set to inherit ... passed in 0.028s Then paragraph_format.page_break_before is None ... passed in 0.001s Scenario Outline: Get On/Off paragraph property -- @1.8 ParagraphFormat On/Off property values Given a paragraph format having page_break_before set On ... passed in 0.026s Then paragraph_format.page_break_before is True ... passed in 0.002s Scenario Outline: Get On/Off paragraph property -- @1.9 ParagraphFormat On/Off property values Given a paragraph format having page_break_before set Off ... passed in 0.025s Then paragraph_format.page_break_before is False ... passed in 0.001s Scenario Outline: Get On/Off paragraph property -- @1.10 ParagraphFormat On/Off property values Given a paragraph format having widow_control set to inherit ... passed in 0.025s Then paragraph_format.widow_control is None ... passed in 0.001s Scenario Outline: Get On/Off paragraph property -- @1.11 ParagraphFormat On/Off property values Given a paragraph format having widow_control set On ... passed in 0.026s Then paragraph_format.widow_control is True ... passed in 0.002s Scenario Outline: Get On/Off paragraph property -- @1.12 ParagraphFormat On/Off property values Given a paragraph format having widow_control set Off ... passed in 0.027s Then paragraph_format.widow_control is False ... passed in 0.001s Scenario Outline: Set On/Off paragraph property -- @1.1 ParagraphFormat On/Off property values Given a paragraph format having keep_together set to inherit ... passed in 0.030s When I assign True to paragraph_format.keep_together ... passed in 0.007s Then paragraph_format.keep_together is True ... passed in 0.001s Scenario Outline: Set On/Off paragraph property -- @1.2 ParagraphFormat On/Off property values Given a paragraph format having keep_together set On ... passed in 0.029s When I assign False to paragraph_format.keep_together ... passed in 0.002s Then paragraph_format.keep_together is False ... passed in 0.001s Scenario Outline: Set On/Off paragraph property -- @1.3 ParagraphFormat On/Off property values Given a paragraph format having keep_together set Off ... passed in 0.047s When I assign None to paragraph_format.keep_together ... passed in 0.002s Then paragraph_format.keep_together is None ... passed in 0.001s Scenario Outline: Set On/Off paragraph property -- @1.4 ParagraphFormat On/Off property values Given a paragraph format having keep_with_next set to inherit ... passed in 0.028s When I assign False to paragraph_format.keep_with_next ... passed in 0.005s Then paragraph_format.keep_with_next is False ... passed in 0.001s Scenario Outline: Set On/Off paragraph property -- @1.5 ParagraphFormat On/Off property values Given a paragraph format having keep_with_next set Off ... passed in 0.027s When I assign True to paragraph_format.keep_with_next ... passed in 0.002s Then paragraph_format.keep_with_next is True ... passed in 0.001s Scenario Outline: Set On/Off paragraph property -- @1.6 ParagraphFormat On/Off property values Given a paragraph format having keep_with_next set On ... passed in 0.029s When I assign None to paragraph_format.keep_with_next ... passed in 0.002s Then paragraph_format.keep_with_next is None ... passed in 0.001s Scenario Outline: Set On/Off paragraph property -- @1.7 ParagraphFormat On/Off property values Given a paragraph format having page_break_before set to inherit ... passed in 0.026s When I assign True to paragraph_format.page_break_before ... passed in 0.005s Then paragraph_format.page_break_before is True ... passed in 0.001s Scenario Outline: Set On/Off paragraph property -- @1.8 ParagraphFormat On/Off property values Given a paragraph format having page_break_before set On ... passed in 0.026s When I assign False to paragraph_format.page_break_before ... passed in 0.002s Then paragraph_format.page_break_before is False ... passed in 0.001s Scenario Outline: Set On/Off paragraph property -- @1.9 ParagraphFormat On/Off property values Given a paragraph format having page_break_before set Off ... passed in 0.028s When I assign None to paragraph_format.page_break_before ... passed in 0.002s Then paragraph_format.page_break_before is None ... passed in 0.002s Scenario Outline: Set On/Off paragraph property -- @1.10 ParagraphFormat On/Off property values Given a paragraph format having widow_control set to inherit ... passed in 0.027s When I assign False to paragraph_format.widow_control ... passed in 0.005s Then paragraph_format.widow_control is False ... passed in 0.001s Scenario Outline: Set On/Off paragraph property -- @1.11 ParagraphFormat On/Off property values Given a paragraph format having widow_control set Off ... passed in 0.026s When I assign True to paragraph_format.widow_control ... passed in 0.002s Then paragraph_format.widow_control is True ... passed in 0.001s Scenario Outline: Set On/Off paragraph property -- @1.12 ParagraphFormat On/Off property values Given a paragraph format having widow_control set On ... passed in 0.028s When I assign None to paragraph_format.widow_control ... passed in 0.002s Then paragraph_format.widow_control is None ... passed in 0.001s 63 features passed, 0 failed, 0 skipped 630 scenarios passed, 0 failed, 0 skipped 1790 steps passed, 0 failed, 0 skipped, 0 undefined Took 0m38.660s ++ find . -type f -name 'ISO*.pdf' + banned= + '[' -n '' ']' + '[' -e ref ']' + RPM_EC=0 ++ jobs -p + exit 0 Processing files: python3-docx-1.1.2-3.fc41.noarch Provides: python-docx = 1.1.2-3.fc41 python3-docx = 1.1.2-3.fc41 python3.13-docx = 1.1.2-3.fc41 python3.13dist(python-docx) = 1.1.2 python3dist(python-docx) = 1.1.2 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PartialHardlinkSets) <= 4.0.4-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Requires: python(abi) = 3.13 python3.13dist(lxml) >= 3.1 python3.13dist(typing-extensions) >= 4.9 Processing files: python-docx-doc-1.1.2-3.fc41.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.3aZEzY + umask 022 + cd /builddir/build/BUILD/python-docx-1.1.2-build + cd python_docx-1.1.2 + DOCDIR=/builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/share/doc/python-docx-doc + export LC_ALL=C.UTF-8 + LC_ALL=C.UTF-8 + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/share/doc/python-docx-doc + cp -pr /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/HISTORY.rst /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/share/doc/python-docx-doc + cp -pr /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/README.md /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/share/doc/python-docx-doc + cp -pr /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/docs/.build/latex/python-docx.pdf /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/share/doc/python-docx-doc + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.fNI4Hb + umask 022 + cd /builddir/build/BUILD/python-docx-1.1.2-build + cd python_docx-1.1.2 + LICENSEDIR=/builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/share/licenses/python-docx-doc + export LC_ALL=C.UTF-8 + LC_ALL=C.UTF-8 + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/share/licenses/python-docx-doc + cp -pr /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/LICENSE /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/share/licenses/python-docx-doc + RPM_EC=0 ++ jobs -p + exit 0 Provides: python-docx-doc = 1.1.2-3.fc41 Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT Wrote: /builddir/build/SRPMS/python-docx-1.1.2-3.fc41.src.rpm Wrote: /builddir/build/RPMS/python-docx-doc-1.1.2-3.fc41.noarch.rpm Wrote: /builddir/build/RPMS/python3-docx-1.1.2-3.fc41.noarch.rpm Child return code was: 0