Mock Version: 6.0 Mock Version: 6.0 Mock Version: 6.0 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/f43-build-57086773-6548328/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=201600uid=1000gid=425user='mockbuild'unshare_net=TrueprintOutput=Falsenspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.05foa6sg:/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']) Using nspawn with args ['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.05foa6sg:/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', '509373d9cdef4c65bb112ed97c8d2aeb', '-D', '/var/lib/mock/f43-build-57086773-6548328/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.05foa6sg:/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=1737158400 Wrote: /builddir/build/SRPMS/python-docx-1.1.2-4.fc43.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/f43-build-57086773-6548328/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=201600uid=1000gid=425user='mockbuild'unshare_net=TrueraiseExc=FalseprintOutput=Falsenspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.05foa6sg:/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']) Using nspawn with args ['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.05foa6sg:/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', '0673fae4303c4e98820696b3658bd400', '-D', '/var/lib/mock/f43-build-57086773-6548328/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.05foa6sg:/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=1737158400 Executing(%mkbuilddir): /bin/sh -e /var/tmp/rpm-tmp.RG6cIB + 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.P3zzvp + 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/LICENSE' removed 'docs/_themes/armstrong/layout.html' removed 'docs/_themes/armstrong/rtd-themes.conf' removed 'docs/_themes/armstrong/static/rtd.css_t' removed directory 'docs/_themes/armstrong/static' removed 'docs/_themes/armstrong/theme.conf' 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.sbEV74 + umask 022 + cd /builddir/build/BUILD/python-docx-1.1.2-build + cd python_docx-1.1.2 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + 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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + 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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + 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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + 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 ' + LT_SYS_LIBRARY_PATH=/usr/lib: + CC=gcc + CXX=g++ + 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-4.fc43.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-4.fc43.noarch-pyproject-buildrequires + rm -rfv '*.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-docx-1.1.2-4.fc43.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/f43-build-57086773-6548328/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=201600uid=1000gid=425user='mockbuild'unshare_net=TrueraiseExc=FalseprintOutput=Falsenspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.05foa6sg:/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']) Using nspawn with args ['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.05foa6sg:/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', 'f5b46c42d99c4d0fabedff0e2af85bd7', '-D', '/var/lib/mock/f43-build-57086773-6548328/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.05foa6sg:/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=1737158400 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.pB8Aze + umask 022 + cd /builddir/build/BUILD/python-docx-1.1.2-build + cd python_docx-1.1.2 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + 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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + 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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + 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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + 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 ' + LT_SYS_LIBRARY_PATH=/usr/lib: + CC=gcc + CXX=g++ + 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-4.fc43.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.3.0) 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 8.3.4) 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-4.fc43.noarch-pyproject-buildrequires + rm -rfv '*.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-docx-1.1.2-4.fc43.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/f43-build-57086773-6548328/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=201600uid=1000gid=425user='mockbuild'unshare_net=TrueraiseExc=FalseprintOutput=Falsenspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.05foa6sg:/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']) Using nspawn with args ['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.05foa6sg:/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', '05ec2286386740a8bddeb16b9a0d03bb', '-D', '/var/lib/mock/f43-build-57086773-6548328/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.05foa6sg:/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=1737158400 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.Rmx0yj + umask 022 + cd /builddir/build/BUILD/python-docx-1.1.2-build + cd python_docx-1.1.2 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + 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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + 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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + 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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + 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 ' + LT_SYS_LIBRARY_PATH=/usr/lib: + CC=gcc + CXX=g++ + 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-4.fc43.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.3.0) 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 8.3.4) 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 74.1.3) No `packages` or `py_modules` configuration, performing automatic discovery. `src-layout` detected -- analysing ./src discovered packages -- ['docx', 'docx.dml', 'docx.drawing', 'docx.enum', 'docx.image', 'docx.opc', 'docx.oxml', 'docx.parts', 'docx.styles', 'docx.templates', 'docx.text', 'docx.opc.parts', 'docx.oxml.text', 'docx.templates.default-docx-template', 'docx.templates.default-docx-template._rels', 'docx.templates.default-docx-template.customXml', 'docx.templates.default-docx-template.docProps', 'docx.templates.default-docx-template.word', 'docx.templates.default-docx-template.customXml._rels', 'docx.templates.default-docx-template.word._rels', 'docx.templates.default-docx-template.word.theme'] 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' 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.3.0) 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-4.fc43.noarch-pyproject-buildrequires + rm -rfv python_docx-1.1.2.dist-info/ removed 'python_docx-1.1.2.dist-info/top_level.txt' removed 'python_docx-1.1.2.dist-info/METADATA' 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-4.fc43.buildreqs.nosrc.rpm Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --noclean --target noarch /builddir/build/SPECS/python-docx.spec'], chrootPath='/var/lib/mock/f43-build-57086773-6548328/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=201600uid=1000gid=425user='mockbuild'unshare_net=TrueprintOutput=Falsenspawn_args=['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.05foa6sg:/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']) Using nspawn with args ['--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.05foa6sg:/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', '2098ef0096214d74bfbd0bc382af4712', '-D', '/var/lib/mock/f43-build-57086773-6548328/root', '-a', '-u', 'mockbuild', '--capability=cap_ipc_lock', '--bind=/tmp/mock-resolv.05foa6sg:/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 /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=1737158400 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.pAlNwZ + umask 022 + cd /builddir/build/BUILD/python-docx-1.1.2-build + cd python_docx-1.1.2 + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(packaging)' + echo 'python3dist(pip) >= 19' + '[' -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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + 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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + 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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + 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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + 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 ' + LT_SYS_LIBRARY_PATH=/usr/lib: + CC=gcc + CXX=g++ + 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-4.fc43.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.3.0) 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 8.3.4) 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 74.1.3) No `packages` or `py_modules` configuration, performing automatic discovery. `src-layout` detected -- analysing ./src discovered packages -- ['docx', 'docx.dml', 'docx.drawing', 'docx.enum', 'docx.image', 'docx.opc', 'docx.oxml', 'docx.parts', 'docx.styles', 'docx.templates', 'docx.text', 'docx.opc.parts', 'docx.oxml.text', 'docx.templates.default-docx-template', 'docx.templates.default-docx-template._rels', 'docx.templates.default-docx-template.customXml', 'docx.templates.default-docx-template.docProps', 'docx.templates.default-docx-template.word', 'docx.templates.default-docx-template.customXml._rels', 'docx.templates.default-docx-template.word._rels', 'docx.templates.default-docx-template.word.theme'] 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' 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.3.0) 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-4.fc43.noarch-pyproject-buildrequires + rm -rfv python_docx-1.1.2.dist-info/ removed 'python_docx-1.1.2.dist-info/top_level.txt' removed 'python_docx-1.1.2.dist-info/METADATA' 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.tnO6uZ + 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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + 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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + 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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + 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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + VALAFLAGS=-g + RUSTFLAGS='-Copt-level=3 -Cdebuginfo=2 -Ccodegen-units=1 -Cstrip=none -Cforce-frame-pointers=yes --cap-lints=warn' + 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 ' + LT_SYS_LIBRARY_PATH=/usr/lib: + CC=gcc + CXX=g++ + 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.enum', 'docx.image', 'docx.opc', 'docx.oxml', 'docx.parts', 'docx.styles', 'docx.templates', 'docx.text', 'docx.opc.parts', 'docx.oxml.text', 'docx.templates.default-docx-template', 'docx.templates.default-docx-template._rels', 'docx.templates.default-docx-template.customXml', 'docx.templates.default-docx-template.docProps', 'docx.templates.default-docx-template.word', 'docx.templates.default-docx-template.customXml._rels', 'docx.templates.default-docx-template.word._rels', 'docx.templates.default-docx-template.word.theme'] 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-axxbk0jy/python_docx.egg-info writing /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/.pyproject-builddir/pip-modern-metadata-axxbk0jy/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-axxbk0jy/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-axxbk0jy/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-axxbk0jy/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-axxbk0jy/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-axxbk0jy/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-axxbk0jy/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-axxbk0jy/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.enum', 'docx.image', 'docx.opc', 'docx.oxml', 'docx.parts', 'docx.styles', 'docx.templates', 'docx.text', 'docx.opc.parts', 'docx.oxml.text', 'docx.templates.default-docx-template', 'docx.templates.default-docx-template._rels', 'docx.templates.default-docx-template.customXml', 'docx.templates.default-docx-template.docProps', 'docx.templates.default-docx-template.word', 'docx.templates.default-docx-template.customXml._rels', 'docx.templates.default-docx-template.word._rels', 'docx.templates.default-docx-template.word.theme'] 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/api.py -> build/lib/docx copying src/docx/blkcntnr.py -> build/lib/docx copying src/docx/document.py -> build/lib/docx copying src/docx/exceptions.py -> build/lib/docx copying src/docx/package.py -> build/lib/docx copying src/docx/section.py -> build/lib/docx copying src/docx/settings.py -> build/lib/docx copying src/docx/shape.py -> build/lib/docx copying src/docx/shared.py -> build/lib/docx copying src/docx/table.py -> build/lib/docx copying src/docx/types.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/enum copying src/docx/enum/__init__.py -> build/lib/docx/enum copying src/docx/enum/base.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/shape.py -> build/lib/docx/enum copying src/docx/enum/style.py -> build/lib/docx/enum copying src/docx/enum/table.py -> build/lib/docx/enum copying src/docx/enum/text.py -> build/lib/docx/enum creating build/lib/docx/image copying src/docx/image/__init__.py -> build/lib/docx/image copying src/docx/image/bmp.py -> build/lib/docx/image copying src/docx/image/constants.py -> build/lib/docx/image copying src/docx/image/exceptions.py -> build/lib/docx/image copying src/docx/image/gif.py -> build/lib/docx/image copying src/docx/image/helpers.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/png.py -> build/lib/docx/image copying src/docx/image/tiff.py -> build/lib/docx/image 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/coreprops.py -> build/lib/docx/opc copying src/docx/opc/exceptions.py -> build/lib/docx/opc copying src/docx/opc/oxml.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/part.py -> build/lib/docx/opc copying src/docx/opc/phys_pkg.py -> build/lib/docx/opc copying src/docx/opc/pkgreader.py -> build/lib/docx/opc copying src/docx/opc/pkgwriter.py -> build/lib/docx/opc copying src/docx/opc/rel.py -> build/lib/docx/opc copying src/docx/opc/shared.py -> build/lib/docx/opc copying src/docx/opc/spec.py -> build/lib/docx/opc creating build/lib/docx/oxml copying src/docx/oxml/__init__.py -> build/lib/docx/oxml copying src/docx/oxml/coreprops.py -> build/lib/docx/oxml copying src/docx/oxml/document.py -> build/lib/docx/oxml copying src/docx/oxml/drawing.py -> build/lib/docx/oxml copying src/docx/oxml/exceptions.py -> build/lib/docx/oxml copying src/docx/oxml/ns.py -> build/lib/docx/oxml copying src/docx/oxml/numbering.py -> build/lib/docx/oxml copying src/docx/oxml/parser.py -> build/lib/docx/oxml copying src/docx/oxml/section.py -> build/lib/docx/oxml copying src/docx/oxml/settings.py -> build/lib/docx/oxml copying src/docx/oxml/shape.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/table.py -> build/lib/docx/oxml copying src/docx/oxml/xmlchemy.py -> build/lib/docx/oxml creating build/lib/docx/parts copying src/docx/parts/__init__.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/image.py -> build/lib/docx/parts copying src/docx/parts/numbering.py -> build/lib/docx/parts copying src/docx/parts/settings.py -> build/lib/docx/parts copying src/docx/parts/story.py -> build/lib/docx/parts copying src/docx/parts/styles.py -> build/lib/docx/parts creating build/lib/docx/styles copying src/docx/styles/__init__.py -> build/lib/docx/styles copying src/docx/styles/latent.py -> build/lib/docx/styles copying src/docx/styles/style.py -> build/lib/docx/styles copying src/docx/styles/styles.py -> build/lib/docx/styles creating build/lib/docx/text copying src/docx/text/__init__.py -> build/lib/docx/text copying src/docx/text/font.py -> build/lib/docx/text copying src/docx/text/hyperlink.py -> build/lib/docx/text copying src/docx/text/pagebreak.py -> build/lib/docx/text copying src/docx/text/paragraph.py -> build/lib/docx/text copying src/docx/text/parfmt.py -> build/lib/docx/text copying src/docx/text/run.py -> build/lib/docx/text copying src/docx/text/tabstops.py -> build/lib/docx/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 creating build/lib/docx/oxml/text copying src/docx/oxml/text/__init__.py -> build/lib/docx/oxml/text copying src/docx/oxml/text/font.py -> build/lib/docx/oxml/text copying src/docx/oxml/text/hyperlink.py -> build/lib/docx/oxml/text copying src/docx/oxml/text/pagebreak.py -> build/lib/docx/oxml/text copying src/docx/oxml/text/paragraph.py -> build/lib/docx/oxml/text copying src/docx/oxml/text/parfmt.py -> build/lib/docx/oxml/text copying src/docx/oxml/text/run.py -> build/lib/docx/oxml/text 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/_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/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/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 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/_rels copying src/docx/templates/default-docx-template/customXml/_rels/item1.xml.rels -> build/lib/docx/templates/default-docx-template/customXml/_rels 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/word/theme copying src/docx/templates/default-docx-template/word/theme/theme1.xml -> build/lib/docx/templates/default-docx-template/word/theme installing to build/bdist.linux-aarch64/wheel running install running install_lib creating build/bdist.linux-aarch64 creating build/bdist.linux-aarch64/wheel creating build/bdist.linux-aarch64/wheel/docx copying build/lib/docx/__init__.py -> build/bdist.linux-aarch64/wheel/./docx copying build/lib/docx/api.py -> build/bdist.linux-aarch64/wheel/./docx copying build/lib/docx/blkcntnr.py -> build/bdist.linux-aarch64/wheel/./docx copying build/lib/docx/document.py -> build/bdist.linux-aarch64/wheel/./docx copying build/lib/docx/exceptions.py -> build/bdist.linux-aarch64/wheel/./docx copying build/lib/docx/package.py -> build/bdist.linux-aarch64/wheel/./docx copying build/lib/docx/section.py -> build/bdist.linux-aarch64/wheel/./docx copying build/lib/docx/settings.py -> build/bdist.linux-aarch64/wheel/./docx copying build/lib/docx/shape.py -> build/bdist.linux-aarch64/wheel/./docx copying build/lib/docx/shared.py -> build/bdist.linux-aarch64/wheel/./docx copying build/lib/docx/table.py -> build/bdist.linux-aarch64/wheel/./docx copying build/lib/docx/types.py -> build/bdist.linux-aarch64/wheel/./docx creating build/bdist.linux-aarch64/wheel/docx/dml copying build/lib/docx/dml/__init__.py -> build/bdist.linux-aarch64/wheel/./docx/dml copying build/lib/docx/dml/color.py -> build/bdist.linux-aarch64/wheel/./docx/dml creating build/bdist.linux-aarch64/wheel/docx/drawing copying build/lib/docx/drawing/__init__.py -> build/bdist.linux-aarch64/wheel/./docx/drawing creating build/bdist.linux-aarch64/wheel/docx/enum copying build/lib/docx/enum/__init__.py -> build/bdist.linux-aarch64/wheel/./docx/enum copying build/lib/docx/enum/base.py -> build/bdist.linux-aarch64/wheel/./docx/enum copying build/lib/docx/enum/dml.py -> build/bdist.linux-aarch64/wheel/./docx/enum copying build/lib/docx/enum/section.py -> build/bdist.linux-aarch64/wheel/./docx/enum copying build/lib/docx/enum/shape.py -> build/bdist.linux-aarch64/wheel/./docx/enum copying build/lib/docx/enum/style.py -> build/bdist.linux-aarch64/wheel/./docx/enum copying build/lib/docx/enum/table.py -> build/bdist.linux-aarch64/wheel/./docx/enum copying build/lib/docx/enum/text.py -> build/bdist.linux-aarch64/wheel/./docx/enum creating build/bdist.linux-aarch64/wheel/docx/image copying build/lib/docx/image/__init__.py -> build/bdist.linux-aarch64/wheel/./docx/image copying build/lib/docx/image/bmp.py -> build/bdist.linux-aarch64/wheel/./docx/image copying build/lib/docx/image/constants.py -> build/bdist.linux-aarch64/wheel/./docx/image copying build/lib/docx/image/exceptions.py -> build/bdist.linux-aarch64/wheel/./docx/image copying build/lib/docx/image/gif.py -> build/bdist.linux-aarch64/wheel/./docx/image copying build/lib/docx/image/helpers.py -> build/bdist.linux-aarch64/wheel/./docx/image copying build/lib/docx/image/image.py -> build/bdist.linux-aarch64/wheel/./docx/image copying build/lib/docx/image/jpeg.py -> build/bdist.linux-aarch64/wheel/./docx/image copying build/lib/docx/image/png.py -> build/bdist.linux-aarch64/wheel/./docx/image copying build/lib/docx/image/tiff.py -> build/bdist.linux-aarch64/wheel/./docx/image creating build/bdist.linux-aarch64/wheel/docx/opc copying build/lib/docx/opc/__init__.py -> build/bdist.linux-aarch64/wheel/./docx/opc copying build/lib/docx/opc/constants.py -> build/bdist.linux-aarch64/wheel/./docx/opc copying build/lib/docx/opc/coreprops.py -> build/bdist.linux-aarch64/wheel/./docx/opc copying build/lib/docx/opc/exceptions.py -> build/bdist.linux-aarch64/wheel/./docx/opc copying build/lib/docx/opc/oxml.py -> build/bdist.linux-aarch64/wheel/./docx/opc copying build/lib/docx/opc/package.py -> build/bdist.linux-aarch64/wheel/./docx/opc copying build/lib/docx/opc/packuri.py -> build/bdist.linux-aarch64/wheel/./docx/opc copying build/lib/docx/opc/part.py -> build/bdist.linux-aarch64/wheel/./docx/opc copying build/lib/docx/opc/phys_pkg.py -> build/bdist.linux-aarch64/wheel/./docx/opc copying build/lib/docx/opc/pkgreader.py -> build/bdist.linux-aarch64/wheel/./docx/opc copying build/lib/docx/opc/pkgwriter.py -> build/bdist.linux-aarch64/wheel/./docx/opc copying build/lib/docx/opc/rel.py -> build/bdist.linux-aarch64/wheel/./docx/opc copying build/lib/docx/opc/shared.py -> build/bdist.linux-aarch64/wheel/./docx/opc copying build/lib/docx/opc/spec.py -> build/bdist.linux-aarch64/wheel/./docx/opc creating build/bdist.linux-aarch64/wheel/docx/opc/parts copying build/lib/docx/opc/parts/__init__.py -> build/bdist.linux-aarch64/wheel/./docx/opc/parts copying build/lib/docx/opc/parts/coreprops.py -> build/bdist.linux-aarch64/wheel/./docx/opc/parts creating build/bdist.linux-aarch64/wheel/docx/oxml copying build/lib/docx/oxml/__init__.py -> build/bdist.linux-aarch64/wheel/./docx/oxml copying build/lib/docx/oxml/coreprops.py -> build/bdist.linux-aarch64/wheel/./docx/oxml copying build/lib/docx/oxml/document.py -> build/bdist.linux-aarch64/wheel/./docx/oxml copying build/lib/docx/oxml/drawing.py -> build/bdist.linux-aarch64/wheel/./docx/oxml copying build/lib/docx/oxml/exceptions.py -> build/bdist.linux-aarch64/wheel/./docx/oxml copying build/lib/docx/oxml/ns.py -> build/bdist.linux-aarch64/wheel/./docx/oxml copying build/lib/docx/oxml/numbering.py -> build/bdist.linux-aarch64/wheel/./docx/oxml copying build/lib/docx/oxml/parser.py -> build/bdist.linux-aarch64/wheel/./docx/oxml copying build/lib/docx/oxml/section.py -> build/bdist.linux-aarch64/wheel/./docx/oxml copying build/lib/docx/oxml/settings.py -> build/bdist.linux-aarch64/wheel/./docx/oxml copying build/lib/docx/oxml/shape.py -> build/bdist.linux-aarch64/wheel/./docx/oxml copying build/lib/docx/oxml/shared.py -> build/bdist.linux-aarch64/wheel/./docx/oxml copying build/lib/docx/oxml/simpletypes.py -> build/bdist.linux-aarch64/wheel/./docx/oxml copying build/lib/docx/oxml/styles.py -> build/bdist.linux-aarch64/wheel/./docx/oxml copying build/lib/docx/oxml/table.py -> build/bdist.linux-aarch64/wheel/./docx/oxml copying build/lib/docx/oxml/xmlchemy.py -> build/bdist.linux-aarch64/wheel/./docx/oxml creating build/bdist.linux-aarch64/wheel/docx/oxml/text copying build/lib/docx/oxml/text/__init__.py -> build/bdist.linux-aarch64/wheel/./docx/oxml/text copying build/lib/docx/oxml/text/font.py -> build/bdist.linux-aarch64/wheel/./docx/oxml/text copying build/lib/docx/oxml/text/hyperlink.py -> build/bdist.linux-aarch64/wheel/./docx/oxml/text copying build/lib/docx/oxml/text/pagebreak.py -> build/bdist.linux-aarch64/wheel/./docx/oxml/text copying build/lib/docx/oxml/text/paragraph.py -> build/bdist.linux-aarch64/wheel/./docx/oxml/text copying build/lib/docx/oxml/text/parfmt.py -> build/bdist.linux-aarch64/wheel/./docx/oxml/text copying build/lib/docx/oxml/text/run.py -> build/bdist.linux-aarch64/wheel/./docx/oxml/text creating build/bdist.linux-aarch64/wheel/docx/parts copying build/lib/docx/parts/__init__.py -> build/bdist.linux-aarch64/wheel/./docx/parts copying build/lib/docx/parts/document.py -> build/bdist.linux-aarch64/wheel/./docx/parts copying build/lib/docx/parts/hdrftr.py -> build/bdist.linux-aarch64/wheel/./docx/parts copying build/lib/docx/parts/image.py -> build/bdist.linux-aarch64/wheel/./docx/parts copying build/lib/docx/parts/numbering.py -> build/bdist.linux-aarch64/wheel/./docx/parts copying build/lib/docx/parts/settings.py -> build/bdist.linux-aarch64/wheel/./docx/parts copying build/lib/docx/parts/story.py -> build/bdist.linux-aarch64/wheel/./docx/parts copying build/lib/docx/parts/styles.py -> build/bdist.linux-aarch64/wheel/./docx/parts creating build/bdist.linux-aarch64/wheel/docx/styles copying build/lib/docx/styles/__init__.py -> build/bdist.linux-aarch64/wheel/./docx/styles copying build/lib/docx/styles/latent.py -> build/bdist.linux-aarch64/wheel/./docx/styles copying build/lib/docx/styles/style.py -> build/bdist.linux-aarch64/wheel/./docx/styles copying build/lib/docx/styles/styles.py -> build/bdist.linux-aarch64/wheel/./docx/styles creating build/bdist.linux-aarch64/wheel/docx/text copying build/lib/docx/text/__init__.py -> build/bdist.linux-aarch64/wheel/./docx/text copying build/lib/docx/text/font.py -> build/bdist.linux-aarch64/wheel/./docx/text copying build/lib/docx/text/hyperlink.py -> build/bdist.linux-aarch64/wheel/./docx/text copying build/lib/docx/text/pagebreak.py -> build/bdist.linux-aarch64/wheel/./docx/text copying build/lib/docx/text/paragraph.py -> build/bdist.linux-aarch64/wheel/./docx/text copying build/lib/docx/text/parfmt.py -> build/bdist.linux-aarch64/wheel/./docx/text copying build/lib/docx/text/run.py -> build/bdist.linux-aarch64/wheel/./docx/text copying build/lib/docx/text/tabstops.py -> build/bdist.linux-aarch64/wheel/./docx/text copying build/lib/docx/py.typed -> build/bdist.linux-aarch64/wheel/./docx creating build/bdist.linux-aarch64/wheel/docx/templates copying build/lib/docx/templates/default-footer.xml -> build/bdist.linux-aarch64/wheel/./docx/templates copying build/lib/docx/templates/default-header.xml -> build/bdist.linux-aarch64/wheel/./docx/templates copying build/lib/docx/templates/default-settings.xml -> build/bdist.linux-aarch64/wheel/./docx/templates copying build/lib/docx/templates/default-styles.xml -> build/bdist.linux-aarch64/wheel/./docx/templates copying build/lib/docx/templates/default.docx -> build/bdist.linux-aarch64/wheel/./docx/templates creating build/bdist.linux-aarch64/wheel/docx/templates/default-docx-template copying build/lib/docx/templates/default-docx-template/[Content_Types].xml -> build/bdist.linux-aarch64/wheel/./docx/templates/default-docx-template creating build/bdist.linux-aarch64/wheel/docx/templates/default-docx-template/_rels copying build/lib/docx/templates/default-docx-template/_rels/.rels -> build/bdist.linux-aarch64/wheel/./docx/templates/default-docx-template/_rels creating build/bdist.linux-aarch64/wheel/docx/templates/default-docx-template/customXml copying build/lib/docx/templates/default-docx-template/customXml/item1.xml -> build/bdist.linux-aarch64/wheel/./docx/templates/default-docx-template/customXml copying build/lib/docx/templates/default-docx-template/customXml/itemProps1.xml -> build/bdist.linux-aarch64/wheel/./docx/templates/default-docx-template/customXml creating build/bdist.linux-aarch64/wheel/docx/templates/default-docx-template/customXml/_rels copying build/lib/docx/templates/default-docx-template/customXml/_rels/item1.xml.rels -> build/bdist.linux-aarch64/wheel/./docx/templates/default-docx-template/customXml/_rels creating build/bdist.linux-aarch64/wheel/docx/templates/default-docx-template/docProps copying build/lib/docx/templates/default-docx-template/docProps/app.xml -> build/bdist.linux-aarch64/wheel/./docx/templates/default-docx-template/docProps copying build/lib/docx/templates/default-docx-template/docProps/core.xml -> build/bdist.linux-aarch64/wheel/./docx/templates/default-docx-template/docProps copying build/lib/docx/templates/default-docx-template/docProps/thumbnail.jpeg -> build/bdist.linux-aarch64/wheel/./docx/templates/default-docx-template/docProps creating build/bdist.linux-aarch64/wheel/docx/templates/default-docx-template/word copying build/lib/docx/templates/default-docx-template/word/document.xml -> build/bdist.linux-aarch64/wheel/./docx/templates/default-docx-template/word copying build/lib/docx/templates/default-docx-template/word/fontTable.xml -> build/bdist.linux-aarch64/wheel/./docx/templates/default-docx-template/word copying build/lib/docx/templates/default-docx-template/word/numbering.xml -> build/bdist.linux-aarch64/wheel/./docx/templates/default-docx-template/word copying build/lib/docx/templates/default-docx-template/word/settings.xml -> build/bdist.linux-aarch64/wheel/./docx/templates/default-docx-template/word copying build/lib/docx/templates/default-docx-template/word/styles.xml -> build/bdist.linux-aarch64/wheel/./docx/templates/default-docx-template/word copying build/lib/docx/templates/default-docx-template/word/stylesWithEffects.xml -> build/bdist.linux-aarch64/wheel/./docx/templates/default-docx-template/word copying build/lib/docx/templates/default-docx-template/word/webSettings.xml -> build/bdist.linux-aarch64/wheel/./docx/templates/default-docx-template/word creating build/bdist.linux-aarch64/wheel/docx/templates/default-docx-template/word/_rels copying build/lib/docx/templates/default-docx-template/word/_rels/document.xml.rels -> build/bdist.linux-aarch64/wheel/./docx/templates/default-docx-template/word/_rels creating build/bdist.linux-aarch64/wheel/docx/templates/default-docx-template/word/theme copying build/lib/docx/templates/default-docx-template/word/theme/theme1.xml -> build/bdist.linux-aarch64/wheel/./docx/templates/default-docx-template/word/theme running install_egg_info Copying src/python_docx.egg-info to build/bdist.linux-aarch64/wheel/./python_docx-1.1.2-py3.13.egg-info running install_scripts creating build/bdist.linux-aarch64/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-5829154b/.tmp-8a97cg0p/python_docx-1.1.2-py3-none-any.whl' and adding 'build/bdist.linux-aarch64/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-aarch64/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=243351 sha256=25c0e57a17816a834fcb45c116a2dedb2531a32530c9ed5ff12080b6ca198c86 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 -j12 V=1 VERBOSE=1 -C docs latex SPHINXOPTS=-j12 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 -j12 . .build/latex Running Sphinx v8.1.3 loading translations [en]... done making output directory... done Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. 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... [ 8%] api/dml .. api/enum/WdBuiltinStyle reading sources... [ 17%] api/enum/WdCellVerticalAlignment .. api/enum/WdRowHeightRule reading sources... [ 25%] api/enum/WdSectionStart .. api/enum/WdUnderline reading sources... [ 33%] api/enum/index .. api/style reading sources... [ 42%] api/table .. dev/analysis/features/sections reading sources... [ 50%] dev/analysis/features/settings .. dev/analysis/features/styles/character-style reading sources... [ 58%] dev/analysis/features/styles/index .. dev/analysis/features/table/cell-merge reading sources... [ 67%] dev/analysis/features/table/index .. dev/analysis/features/text/font reading sources... [ 75%] dev/analysis/features/text/font-color .. dev/analysis/features/text/run-content reading sources... [ 83%] dev/analysis/features/text/tab-stops .. dev/analysis/schema/ct_p reading sources... [ 92%] index .. user/quickstart reading sources... [100%] user/sections .. user/text looking for now-outdated files... none found pickling environment... done checking consistency... done preparing documents... done copying assets... copying TeX support files... Writing evaluated template result to /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/docs/.build/latex/Makefile Writing evaluated template result to /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/docs/.build/latex/latexmkjarc Writing evaluated template result to /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/docs/.build/latex/latexmkrc Writing evaluated template result to /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/docs/.build/latex/make.bat done copying assets: 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... processing python-docx.tex: 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 Writing evaluated template result to /builddir/build/BUILD/python-docx-1.1.2-build/python_docx-1.1.2/docs/.build/latex/sphinxmessages.sty 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 -j12 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.x95Vyn + 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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -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 ++ 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 ++ xargs basename --multiple ++ 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.3.1 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-4.fc43.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-4.fc43.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-4.fc43.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-4.fc43.noarch-pyproject-files --output-modules /builddir/build/BUILD/python-docx-1.1.2-build/python-docx-1.1.2-4.fc43.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-4.fc43.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 -j12 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 -j12 /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/dml/__pycache__/__init__.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.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.pyc: rewriting with normalized contents /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/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__/__init__.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__/bmp.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__/helpers.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__/section.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__/__init__.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.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__/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/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/image/__pycache__/exceptions.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__/style.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.pyc: rewriting with normalized contents /builddir/build/BUILD/python-docx-1.1.2-build/BUILDROOT/usr/lib/python3.13/site-packages/docx/enum/__pycache__/text.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.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.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__/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/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/opc/__pycache__/exceptions.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.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/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/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/opc/__pycache__/coreprops.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__/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/image/__pycache__/tiff.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__/phys_pkg.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.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__/part.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__/constants.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__/jpeg.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.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/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/oxml/text/__pycache__/pagebreak.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.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.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.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__/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/__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/__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__/parfmt.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__/__init__.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__/ns.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__/font.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__/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__/shape.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__/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/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/__pycache__/coreprops.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.pyc: replacing with normalized version /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/__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/parts/__pycache__/image.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__/__init__.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__/section.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__/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__/__init__.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__/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/text/__pycache__/__init__.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__/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/text/__pycache__/pagebreak.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__/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__/latent.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/__pycache__/__init__.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__/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/styles/__pycache__/style.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__/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/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/__pycache__/exceptions.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/__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/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/__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/text/__pycache__/parfmt.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.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/text/__pycache__/font.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__/xmlchemy.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__/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/__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/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/__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/__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/__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/__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.xRnG0g + 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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer -I/usr/lib/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + PATH=/builddir/build/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=12 + /usr/bin/pytest -k '' -v ============================= test session starts ============================== platform linux -- Python 3.13.2, pytest-8.3.4, pluggy-1.5.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/dml/test_color.py::DescribeColorFormat::it_knows_its_color_type[type_fixture0] PASSED [ 0%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_color_type[type_fixture1] PASSED [ 0%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_color_type[type_fixture2] PASSED [ 0%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_color_type[type_fixture3] PASSED [ 0%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_color_type[type_fixture4] PASSED [ 0%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_color_type[type_fixture5] PASSED [ 0%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_RGB_value[rgb_get_fixture0] PASSED [ 0%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_RGB_value[rgb_get_fixture1] PASSED [ 0%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_RGB_value[rgb_get_fixture2] PASSED [ 0%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_RGB_value[rgb_get_fixture3] PASSED [ 0%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_RGB_value[rgb_get_fixture4] PASSED [ 0%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_RGB_value[rgb_get_fixture5] PASSED [ 0%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_RGB_value[rgb_set_fixture0] PASSED [ 0%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_RGB_value[rgb_set_fixture1] PASSED [ 0%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_RGB_value[rgb_set_fixture2] PASSED [ 0%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_RGB_value[rgb_set_fixture3] PASSED [ 1%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_RGB_value[rgb_set_fixture4] PASSED [ 1%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_RGB_value[rgb_set_fixture5] PASSED [ 1%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_RGB_value[rgb_set_fixture6] PASSED [ 1%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_theme_color[theme_color_get_fixture0] PASSED [ 1%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_theme_color[theme_color_get_fixture1] PASSED [ 1%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_theme_color[theme_color_get_fixture2] PASSED [ 1%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_theme_color[theme_color_get_fixture3] PASSED [ 1%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_theme_color[theme_color_get_fixture4] PASSED [ 1%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_theme_color[theme_color_get_fixture5] PASSED [ 1%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_theme_color[theme_color_set_fixture0] PASSED [ 1%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_theme_color[theme_color_set_fixture1] PASSED [ 1%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_theme_color[theme_color_set_fixture2] PASSED [ 1%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_theme_color[theme_color_set_fixture3] PASSED [ 1%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_theme_color[theme_color_set_fixture4] PASSED [ 1%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_theme_color[theme_color_set_fixture5] PASSED [ 1%] tests/image/test_bmp.py::DescribeBmp::it_can_construct_from_a_bmp_stream PASSED [ 2%] tests/image/test_bmp.py::DescribeBmp::it_knows_its_content_type PASSED [ 2%] tests/image/test_bmp.py::DescribeBmp::it_knows_its_default_ext PASSED [ 2%] tests/image/test_gif.py::DescribeGif::it_can_construct_from_a_gif_stream PASSED [ 2%] tests/image/test_gif.py::DescribeGif::it_knows_its_content_type PASSED [ 2%] tests/image/test_gif.py::DescribeGif::it_knows_its_default_ext PASSED [ 2%] tests/image/test_helpers.py::DescribeStreamReader::it_can_read_a_string_of_specified_len_at_offset PASSED [ 2%] tests/image/test_helpers.py::DescribeStreamReader::it_raises_on_unexpected_EOF PASSED [ 2%] tests/image/test_helpers.py::DescribeStreamReader::it_can_read_a_long[read_long_fixture0] PASSED [ 2%] tests/image/test_helpers.py::DescribeStreamReader::it_can_read_a_long[read_long_fixture1] PASSED [ 2%] tests/image/test_image.py::DescribeImage::it_can_construct_from_an_image_blob PASSED [ 2%] tests/image/test_image.py::DescribeImage::it_can_construct_from_an_image_path PASSED [ 2%] tests/image/test_image.py::DescribeImage::it_can_construct_from_an_image_file_like PASSED [ 2%] tests/image/test_image.py::DescribeImage::it_can_construct_from_an_image_stream[foobar.png] PASSED [ 2%] tests/image/test_image.py::DescribeImage::it_can_construct_from_an_image_stream[None] PASSED [ 2%] tests/image/test_image.py::DescribeImage::it_provides_access_to_the_image_blob PASSED [ 3%] tests/image/test_image.py::DescribeImage::it_knows_the_image_content_type PASSED [ 3%] tests/image/test_image.py::DescribeImage::it_knows_the_image_px_dimensions PASSED [ 3%] tests/image/test_image.py::DescribeImage::it_knows_the_horz_and_vert_dpi_of_the_image PASSED [ 3%] tests/image/test_image.py::DescribeImage::it_knows_the_image_native_size PASSED [ 3%] tests/image/test_image.py::DescribeImage::it_can_scale_its_dimensions[scale_fixture0] PASSED [ 3%] tests/image/test_image.py::DescribeImage::it_can_scale_its_dimensions[scale_fixture1] PASSED [ 3%] tests/image/test_image.py::DescribeImage::it_can_scale_its_dimensions[scale_fixture2] PASSED [ 3%] tests/image/test_image.py::DescribeImage::it_can_scale_its_dimensions[scale_fixture3] PASSED [ 3%] tests/image/test_image.py::DescribeImage::it_knows_the_image_filename PASSED [ 3%] tests/image/test_image.py::DescribeImage::it_knows_the_image_filename_extension PASSED [ 3%] tests/image/test_image.py::DescribeImage::it_knows_the_sha1_of_its_image PASSED [ 3%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[0] PASSED [ 3%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[1] PASSED [ 3%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[2] PASSED [ 3%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[3] PASSED [ 3%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[4] PASSED [ 4%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[5] PASSED [ 4%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[6] PASSED [ 4%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[7] PASSED [ 4%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[8] PASSED [ 4%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_constructs_the_right_class_for_a_given_image_stream[call_fixture0] PASSED [ 4%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_constructs_the_right_class_for_a_given_image_stream[call_fixture1] PASSED [ 4%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_constructs_the_right_class_for_a_given_image_stream[call_fixture2] PASSED [ 4%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_constructs_the_right_class_for_a_given_image_stream[call_fixture3] PASSED [ 4%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_constructs_the_right_class_for_a_given_image_stream[call_fixture4] PASSED [ 4%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_constructs_the_right_class_for_a_given_image_stream[call_fixture5] PASSED [ 4%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_constructs_the_right_class_for_a_given_image_stream[call_fixture6] PASSED [ 4%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_raises_on_unrecognized_image_stream PASSED [ 4%] tests/image/test_image.py::DescribeBaseImageHeader::it_defines_content_type_as_an_abstract_property PASSED [ 4%] tests/image/test_image.py::DescribeBaseImageHeader::it_defines_default_ext_as_an_abstract_property PASSED [ 4%] tests/image/test_image.py::DescribeBaseImageHeader::it_knows_the_image_dimensions PASSED [ 4%] tests/image/test_image.py::DescribeBaseImageHeader::it_knows_the_horz_and_vert_dpi_of_the_image PASSED [ 5%] tests/image/test_jpeg.py::DescribeJpeg::it_knows_its_content_type PASSED [ 5%] tests/image/test_jpeg.py::DescribeJpeg::it_knows_its_default_ext PASSED [ 5%] tests/image/test_jpeg.py::DescribeJpeg::DescribeExif::it_can_construct_from_an_exif_stream PASSED [ 5%] tests/image/test_jpeg.py::DescribeJpeg::DescribeJfif::it_can_construct_from_a_jfif_stream PASSED [ 5%] tests/image/test_jpeg.py::Describe_JfifMarkers::it_can_construct_from_a_jfif_stream PASSED [ 5%] tests/image/test_jpeg.py::Describe_JfifMarkers::it_can_find_the_APP0_marker PASSED [ 5%] tests/image/test_jpeg.py::Describe_JfifMarkers::it_can_find_the_APP1_marker PASSED [ 5%] tests/image/test_jpeg.py::Describe_JfifMarkers::it_raises_if_it_cant_find_the_APP0_marker PASSED [ 5%] tests/image/test_jpeg.py::Describe_JfifMarkers::it_raises_if_it_cant_find_the_APP1_marker PASSED [ 5%] tests/image/test_jpeg.py::Describe_JfifMarkers::it_can_find_the_SOF_marker PASSED [ 5%] tests/image/test_jpeg.py::Describe_JfifMarkers::it_raises_if_it_cant_find_the_SOF_marker PASSED [ 5%] tests/image/test_jpeg.py::Describe_Marker::it_can_construct_from_a_stream_and_offset[from_stream_fixture0] PASSED [ 5%] tests/image/test_jpeg.py::Describe_Marker::it_can_construct_from_a_stream_and_offset[from_stream_fixture1] PASSED [ 5%] tests/image/test_jpeg.py::Describe_App0Marker::it_can_construct_from_a_stream_and_offset PASSED [ 5%] tests/image/test_jpeg.py::Describe_App0Marker::it_knows_the_image_dpi[dpi_fixture0] PASSED [ 6%] tests/image/test_jpeg.py::Describe_App0Marker::it_knows_the_image_dpi[dpi_fixture1] PASSED [ 6%] tests/image/test_jpeg.py::Describe_App0Marker::it_knows_the_image_dpi[dpi_fixture2] PASSED [ 6%] tests/image/test_jpeg.py::Describe_App1Marker::it_can_construct_from_a_stream_and_offset PASSED [ 6%] tests/image/test_jpeg.py::Describe_App1Marker::it_can_construct_from_non_Exif_APP1_segment PASSED [ 6%] tests/image/test_jpeg.py::Describe_App1Marker::it_gets_a_tiff_from_its_Exif_segment_to_help_construct PASSED [ 6%] tests/image/test_jpeg.py::Describe_App1Marker::it_knows_the_image_dpi PASSED [ 6%] tests/image/test_jpeg.py::Describe_SofMarker::it_can_construct_from_a_stream_and_offset PASSED [ 6%] tests/image/test_jpeg.py::Describe_SofMarker::it_knows_the_image_width_and_height PASSED [ 6%] tests/image/test_jpeg.py::Describe_MarkerFactory::it_constructs_the_appropriate_marker_object[\xe0] PASSED [ 6%] tests/image/test_jpeg.py::Describe_MarkerFactory::it_constructs_the_appropriate_marker_object[\xe1] PASSED [ 6%] tests/image/test_jpeg.py::Describe_MarkerFactory::it_constructs_the_appropriate_marker_object[\xc0] PASSED [ 6%] tests/image/test_jpeg.py::Describe_MarkerFactory::it_constructs_the_appropriate_marker_object[\xc7] PASSED [ 6%] tests/image/test_jpeg.py::Describe_MarkerFactory::it_constructs_the_appropriate_marker_object[\xda] PASSED [ 6%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_construct_from_a_stream PASSED [ 6%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_find_the_next_marker_after_a_given_offset[next_fixture0] PASSED [ 6%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_find_the_next_marker_after_a_given_offset[next_fixture1] PASSED [ 7%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_find_the_next_marker_after_a_given_offset[next_fixture2] PASSED [ 7%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_find_the_next_marker_after_a_given_offset[next_fixture3] PASSED [ 7%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_find_the_next_marker_after_a_given_offset[next_fixture4] PASSED [ 7%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_find_the_next_marker_after_a_given_offset[next_fixture5] PASSED [ 7%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_find_the_next_marker_after_a_given_offset[next_fixture6] PASSED [ 7%] tests/image/test_jpeg.py::Describe_MarkerParser::it_can_construct_from_a_jfif_stream PASSED [ 7%] tests/image/test_jpeg.py::Describe_MarkerParser::it_can_iterate_over_the_jfif_markers_in_its_stream PASSED [ 7%] tests/image/test_png.py::DescribePng::it_can_construct_from_a_png_stream PASSED [ 7%] tests/image/test_png.py::DescribePng::it_knows_its_content_type PASSED [ 7%] tests/image/test_png.py::DescribePng::it_knows_its_default_ext PASSED [ 7%] tests/image/test_png.py::Describe_PngParser::it_can_parse_the_headers_of_a_PNG_stream PASSED [ 7%] tests/image/test_png.py::Describe_PngParser::it_knows_the_image_width_and_height PASSED [ 7%] tests/image/test_png.py::Describe_PngParser::it_knows_the_image_dpi PASSED [ 7%] tests/image/test_png.py::Describe_PngParser::it_defaults_image_dpi_to_72[no_dpi_fixture0] PASSED [ 7%] tests/image/test_png.py::Describe_PngParser::it_defaults_image_dpi_to_72[no_dpi_fixture1] PASSED [ 7%] tests/image/test_png.py::Describe_PngParser::it_defaults_image_dpi_to_72[no_dpi_fixture2] PASSED [ 8%] tests/image/test_png.py::Describe_PngParser::it_defaults_image_dpi_to_72[no_dpi_fixture3] PASSED [ 8%] tests/image/test_png.py::Describe_PngParser::it_defaults_image_dpi_to_72[no_dpi_fixture4] PASSED [ 8%] tests/image/test_png.py::Describe_Chunks::it_can_construct_from_a_stream PASSED [ 8%] tests/image/test_png.py::Describe_Chunks::it_provides_access_to_the_IHDR_chunk PASSED [ 8%] tests/image/test_png.py::Describe_Chunks::it_provides_access_to_the_pHYs_chunk[True] PASSED [ 8%] tests/image/test_png.py::Describe_Chunks::it_provides_access_to_the_pHYs_chunk[False] PASSED [ 8%] tests/image/test_png.py::Describe_Chunks::it_raises_if_theres_no_IHDR_chunk PASSED [ 8%] tests/image/test_png.py::Describe_ChunkParser::it_can_construct_from_a_stream PASSED [ 8%] tests/image/test_png.py::Describe_ChunkParser::it_can_iterate_over_the_chunks_in_its_png_stream PASSED [ 8%] tests/image/test_png.py::Describe_ChunkParser::it_iterates_over_the_chunk_offsets_to_help_parse PASSED [ 8%] tests/image/test_png.py::Describe_ChunkFactory::it_constructs_the_appropriate_Chunk_subclass[IHDR] PASSED [ 8%] tests/image/test_png.py::Describe_ChunkFactory::it_constructs_the_appropriate_Chunk_subclass[pHYs] PASSED [ 8%] tests/image/test_png.py::Describe_ChunkFactory::it_constructs_the_appropriate_Chunk_subclass[IEND] PASSED [ 8%] tests/image/test_png.py::Describe_Chunk::it_can_construct_from_a_stream_and_offset PASSED [ 8%] tests/image/test_png.py::Describe_IHDRChunk::it_can_construct_from_a_stream_and_offset PASSED [ 9%] tests/image/test_png.py::Describe_pHYsChunk::it_can_construct_from_a_stream_and_offset PASSED [ 9%] tests/image/test_tiff.py::DescribeTiff::it_can_construct_from_a_tiff_stream PASSED [ 9%] tests/image/test_tiff.py::DescribeTiff::it_knows_its_content_type PASSED [ 9%] tests/image/test_tiff.py::DescribeTiff::it_knows_its_default_ext PASSED [ 9%] tests/image/test_tiff.py::Describe_TiffParser::it_can_parse_the_properties_from_a_tiff_stream PASSED [ 9%] tests/image/test_tiff.py::Describe_TiffParser::it_makes_a_stream_reader_to_help_parse[mk_stream_rdr_fixture0] PASSED [ 9%] tests/image/test_tiff.py::Describe_TiffParser::it_makes_a_stream_reader_to_help_parse[mk_stream_rdr_fixture1] PASSED [ 9%] tests/image/test_tiff.py::Describe_TiffParser::it_knows_image_width_and_height_after_parsing PASSED [ 9%] tests/image/test_tiff.py::Describe_TiffParser::it_knows_the_horz_and_vert_dpi_after_parsing[dpi_fixture0] PASSED [ 9%] tests/image/test_tiff.py::Describe_TiffParser::it_knows_the_horz_and_vert_dpi_after_parsing[dpi_fixture1] PASSED [ 9%] tests/image/test_tiff.py::Describe_TiffParser::it_knows_the_horz_and_vert_dpi_after_parsing[dpi_fixture2] PASSED [ 9%] tests/image/test_tiff.py::Describe_TiffParser::it_knows_the_horz_and_vert_dpi_after_parsing[dpi_fixture3] PASSED [ 9%] tests/image/test_tiff.py::Describe_TiffParser::it_knows_the_horz_and_vert_dpi_after_parsing[dpi_fixture4] PASSED [ 9%] tests/image/test_tiff.py::Describe_IfdEntries::it_can_construct_from_a_stream_and_offset PASSED [ 9%] tests/image/test_tiff.py::Describe_IfdEntries::it_has_basic_mapping_semantics PASSED [ 9%] tests/image/test_tiff.py::Describe_IfdParser::it_can_iterate_through_the_directory_entries_in_an_IFD PASSED [ 10%] tests/image/test_tiff.py::Describe_IfdEntryFactory::it_constructs_the_right_class_for_a_given_ifd_entry[fixture0] PASSED [ 10%] tests/image/test_tiff.py::Describe_IfdEntryFactory::it_constructs_the_right_class_for_a_given_ifd_entry[fixture1] PASSED [ 10%] tests/image/test_tiff.py::Describe_IfdEntryFactory::it_constructs_the_right_class_for_a_given_ifd_entry[fixture2] PASSED [ 10%] tests/image/test_tiff.py::Describe_IfdEntryFactory::it_constructs_the_right_class_for_a_given_ifd_entry[fixture3] PASSED [ 10%] tests/image/test_tiff.py::Describe_IfdEntryFactory::it_constructs_the_right_class_for_a_given_ifd_entry[fixture4] PASSED [ 10%] tests/image/test_tiff.py::Describe_IfdEntryFactory::it_constructs_the_right_class_for_a_given_ifd_entry[fixture5] PASSED [ 10%] tests/image/test_tiff.py::Describe_IfdEntry::it_can_construct_from_a_stream_and_offset PASSED [ 10%] tests/image/test_tiff.py::Describe_IfdEntry::it_provides_read_only_access_to_the_directory_entry PASSED [ 10%] tests/image/test_tiff.py::Describe_AsciiIfdEntry::it_can_parse_an_ascii_string_IFD_entry PASSED [ 10%] tests/image/test_tiff.py::Describe_ShortIfdEntry::it_can_parse_a_short_int_IFD_entry PASSED [ 10%] tests/image/test_tiff.py::Describe_LongIfdEntry::it_can_parse_a_long_int_IFD_entry PASSED [ 10%] tests/image/test_tiff.py::Describe_RationalIfdEntry::it_can_parse_a_rational_IFD_entry PASSED [ 10%] tests/opc/parts/test_coreprops.py::DescribeCorePropertiesPart::it_provides_access_to_its_core_props_object PASSED [ 10%] tests/opc/parts/test_coreprops.py::DescribeCorePropertiesPart::it_can_create_a_default_core_properties_part PASSED [ 10%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[author-python-docx] PASSED [ 10%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[category-] PASSED [ 11%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[comments-] PASSED [ 11%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[content_status-DRAFT] PASSED [ 11%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[identifier-GXS 10.2.1ab] PASSED [ 11%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[keywords-foo bar baz] PASSED [ 11%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[language-US-EN] PASSED [ 11%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[last_modified_by-Steve Canny] PASSED [ 11%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[subject-Spam] PASSED [ 11%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[title-Word Document] PASSED [ 11%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[version-1.2.88] PASSED [ 11%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[author-dc:creator-scanny] PASSED [ 11%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[category-cp:category-silly stories] PASSED [ 11%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[comments-dc:description-Bar foo to you] PASSED [ 11%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[content_status-cp:contentStatus-FINAL] PASSED [ 11%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[identifier-dc:identifier-GT 5.2.xab] PASSED [ 11%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[keywords-cp:keywords-dog cat moo] PASSED [ 12%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[language-dc:language-GB-EN] PASSED [ 12%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[last_modified_by-cp:lastModifiedBy-Billy Bob] PASSED [ 12%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[subject-dc:subject-Eggs] PASSED [ 12%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[title-dc:title-Dissertation] PASSED [ 12%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[version-cp:version-81.2.8] PASSED [ 12%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_date_property_values[created-expected_datetime0] PASSED [ 12%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_date_property_values[last_printed-expected_datetime1] PASSED [ 12%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_date_property_values[modified-None] PASSED [ 12%] 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 [ 12%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_date_property_values[last_printed-cp:lastPrinted-value1-2014-06-04T04:00:00Z-] PASSED [ 12%] 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 [ 12%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_revision_number[42-42] PASSED [ 12%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_revision_number[None-0] PASSED [ 12%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_revision_number[foobar-0] PASSED [ 12%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_revision_number[-17-0] PASSED [ 12%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_revision_number[32.7-0] PASSED [ 13%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_revision_number[42-42] PASSED [ 13%] tests/opc/test_oxml.py::DescribeCT_Default::it_provides_read_access_to_xml_values PASSED [ 13%] tests/opc/test_oxml.py::DescribeCT_Default::it_can_construct_a_new_default_element PASSED [ 13%] tests/opc/test_oxml.py::DescribeCT_Override::it_provides_read_access_to_xml_values PASSED [ 13%] tests/opc/test_oxml.py::DescribeCT_Override::it_can_construct_a_new_override_element PASSED [ 13%] tests/opc/test_oxml.py::DescribeCT_Relationship::it_provides_read_access_to_xml_values PASSED [ 13%] tests/opc/test_oxml.py::DescribeCT_Relationship::it_can_construct_from_attribute_values PASSED [ 13%] tests/opc/test_oxml.py::DescribeCT_Relationships::it_can_construct_a_new_relationships_element PASSED [ 13%] tests/opc/test_oxml.py::DescribeCT_Relationships::it_can_build_rels_element_incrementally PASSED [ 13%] tests/opc/test_oxml.py::DescribeCT_Relationships::it_can_generate_rels_file_xml PASSED [ 13%] tests/opc/test_oxml.py::DescribeCT_Types::it_provides_access_to_default_child_elements PASSED [ 13%] tests/opc/test_oxml.py::DescribeCT_Types::it_provides_access_to_override_child_elements PASSED [ 13%] tests/opc/test_oxml.py::DescribeCT_Types::it_should_have_empty_list_on_no_matching_elements PASSED [ 13%] tests/opc/test_oxml.py::DescribeCT_Types::it_can_construct_a_new_types_element PASSED [ 13%] tests/opc/test_oxml.py::DescribeCT_Types::it_can_build_types_element_incrementally PASSED [ 13%] tests/opc/test_package.py::DescribeOpcPackage::it_can_open_a_pkg_file PASSED [ 14%] tests/opc/test_package.py::DescribeOpcPackage::it_initializes_its_rels_collection_on_first_reference PASSED [ 14%] tests/opc/test_package.py::DescribeOpcPackage::it_can_add_a_relationship_to_a_part PASSED [ 14%] tests/opc/test_package.py::DescribeOpcPackage::it_can_establish_a_relationship_to_another_part PASSED [ 14%] tests/opc/test_package.py::DescribeOpcPackage::it_can_provide_a_list_of_the_parts_it_contains PASSED [ 14%] tests/opc/test_package.py::DescribeOpcPackage::it_can_iterate_over_parts_by_walking_rels_graph PASSED [ 14%] tests/opc/test_package.py::DescribeOpcPackage::it_can_find_the_next_available_vector_partname[next_partname_fixture0] PASSED [ 14%] tests/opc/test_package.py::DescribeOpcPackage::it_can_find_the_next_available_vector_partname[next_partname_fixture1] PASSED [ 14%] tests/opc/test_package.py::DescribeOpcPackage::it_can_find_the_next_available_vector_partname[next_partname_fixture2] PASSED [ 14%] tests/opc/test_package.py::DescribeOpcPackage::it_can_find_the_next_available_vector_partname[next_partname_fixture3] PASSED [ 14%] tests/opc/test_package.py::DescribeOpcPackage::it_can_find_the_next_available_vector_partname[next_partname_fixture4] PASSED [ 14%] tests/opc/test_package.py::DescribeOpcPackage::it_can_find_a_part_related_by_reltype PASSED [ 14%] tests/opc/test_package.py::DescribeOpcPackage::it_can_save_to_a_pkg_file PASSED [ 14%] tests/opc/test_package.py::DescribeOpcPackage::it_provides_access_to_the_core_properties PASSED [ 14%] tests/opc/test_package.py::DescribeOpcPackage::it_provides_access_to_the_core_properties_part_to_help PASSED [ 14%] tests/opc/test_package.py::DescribeOpcPackage::it_creates_a_default_core_props_part_if_none_present PASSED [ 15%] tests/opc/test_package.py::DescribeUnmarshaller::it_can_unmarshal_from_a_pkg_reader PASSED [ 15%] tests/opc/test_package.py::DescribeUnmarshaller::it_can_unmarshal_parts PASSED [ 15%] tests/opc/test_package.py::DescribeUnmarshaller::it_can_unmarshal_relationships PASSED [ 15%] tests/opc/test_packuri.py::DescribePackURI::it_can_construct_from_relative_ref PASSED [ 15%] tests/opc/test_packuri.py::DescribePackURI::it_should_raise_on_construct_with_bad_pack_uri_str PASSED [ 15%] tests/opc/test_packuri.py::DescribePackURI::it_can_calculate_baseURI PASSED [ 15%] tests/opc/test_packuri.py::DescribePackURI::it_can_calculate_extension PASSED [ 15%] tests/opc/test_packuri.py::DescribePackURI::it_can_calculate_filename PASSED [ 15%] tests/opc/test_packuri.py::DescribePackURI::it_knows_the_filename_index PASSED [ 15%] tests/opc/test_packuri.py::DescribePackURI::it_can_calculate_membername PASSED [ 15%] tests/opc/test_packuri.py::DescribePackURI::it_can_calculate_relative_ref_value PASSED [ 15%] tests/opc/test_packuri.py::DescribePackURI::it_can_calculate_rels_uri PASSED [ 15%] tests/opc/test_part.py::DescribePart::it_can_be_constructed_by_PartFactory PASSED [ 15%] tests/opc/test_part.py::DescribePart::it_knows_its_partname PASSED [ 15%] tests/opc/test_part.py::DescribePart::it_can_change_its_partname PASSED [ 15%] tests/opc/test_part.py::DescribePart::it_knows_its_content_type PASSED [ 16%] tests/opc/test_part.py::DescribePart::it_knows_the_package_it_belongs_to PASSED [ 16%] tests/opc/test_part.py::DescribePart::it_can_be_notified_after_unmarshalling_is_complete PASSED [ 16%] tests/opc/test_part.py::DescribePart::it_can_be_notified_before_marshalling_is_started PASSED [ 16%] tests/opc/test_part.py::DescribePart::it_uses_the_load_blob_as_its_blob PASSED [ 16%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_provides_access_to_its_relationships PASSED [ 16%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_load_a_relationship PASSED [ 16%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_establish_a_relationship_to_another_part PASSED [ 16%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_establish_an_external_relationship PASSED [ 16%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_drop_a_relationship PASSED [ 16%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_find_a_related_part_by_reltype PASSED [ 16%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_find_a_related_part_by_rId PASSED [ 16%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_find_the_uri_of_an_external_relationship PASSED [ 16%] tests/opc/test_part.py::DescribePartFactory::it_constructs_part_from_selector_if_defined PASSED [ 16%] tests/opc/test_part.py::DescribePartFactory::it_constructs_custom_part_type_for_registered_content_types PASSED [ 16%] tests/opc/test_part.py::DescribePartFactory::it_constructs_part_using_default_class_when_no_custom_registered PASSED [ 16%] tests/opc/test_part.py::DescribeXmlPart::it_can_be_constructed_by_PartFactory PASSED [ 17%] tests/opc/test_part.py::DescribeXmlPart::it_can_serialize_to_xml PASSED [ 17%] tests/opc/test_part.py::DescribeXmlPart::it_knows_its_the_part_for_its_child_objects PASSED [ 17%] tests/opc/test_part.py::DescribeXmlPart::it_only_drops_a_relationship_with_zero_reference_count[w:p-True] PASSED [ 17%] tests/opc/test_part.py::DescribeXmlPart::it_only_drops_a_relationship_with_zero_reference_count[w:p/r:a{r:id=rId42}-True] PASSED [ 17%] 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 [ 17%] tests/opc/test_phys_pkg.py::DescribeDirPkgReader::it_is_used_by_PhysPkgReader_when_pkg_is_a_dir PASSED [ 17%] tests/opc/test_phys_pkg.py::DescribeDirPkgReader::it_doesnt_mind_being_closed_even_though_it_doesnt_need_it PASSED [ 17%] tests/opc/test_phys_pkg.py::DescribeDirPkgReader::it_can_retrieve_the_blob_for_a_pack_uri PASSED [ 17%] tests/opc/test_phys_pkg.py::DescribeDirPkgReader::it_can_get_the_content_types_xml PASSED [ 17%] tests/opc/test_phys_pkg.py::DescribeDirPkgReader::it_can_retrieve_the_rels_xml_for_a_source_uri PASSED [ 17%] tests/opc/test_phys_pkg.py::DescribeDirPkgReader::it_returns_none_when_part_has_no_rels_xml PASSED [ 17%] tests/opc/test_phys_pkg.py::DescribePhysPkgReader::it_raises_when_pkg_path_is_not_a_package PASSED [ 17%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_is_used_by_PhysPkgReader_when_pkg_is_a_zip PASSED [ 17%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_is_used_by_PhysPkgReader_when_pkg_is_a_stream PASSED [ 17%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_opens_pkg_file_zip_on_construction PASSED [ 18%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_can_be_closed PASSED [ 18%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_can_retrieve_the_blob_for_a_pack_uri PASSED [ 18%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_has_the_content_types_xml PASSED [ 18%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_can_retrieve_rels_xml_for_source_uri PASSED [ 18%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_returns_none_when_part_has_no_rels_xml PASSED [ 18%] tests/opc/test_phys_pkg.py::DescribeZipPkgWriter::it_is_used_by_PhysPkgWriter_unconditionally PASSED [ 18%] tests/opc/test_phys_pkg.py::DescribeZipPkgWriter::it_opens_pkg_file_zip_on_construction PASSED [ 18%] tests/opc/test_phys_pkg.py::DescribeZipPkgWriter::it_can_be_closed PASSED [ 18%] tests/opc/test_phys_pkg.py::DescribeZipPkgWriter::it_can_write_a_blob PASSED [ 18%] tests/opc/test_pkgreader.py::DescribePackageReader::it_can_construct_from_pkg_file PASSED [ 18%] tests/opc/test_pkgreader.py::DescribePackageReader::it_can_iterate_over_the_serialized_parts PASSED [ 18%] tests/opc/test_pkgreader.py::DescribePackageReader::it_can_iterate_over_all_the_srels PASSED [ 18%] tests/opc/test_pkgreader.py::DescribePackageReader::it_can_load_serialized_parts PASSED [ 18%] tests/opc/test_pkgreader.py::DescribePackageReader::it_can_walk_phys_pkg_parts PASSED [ 18%] tests/opc/test_pkgreader.py::DescribePackageReader::it_can_retrieve_srels_for_a_source_uri PASSED [ 18%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_can_construct_from_ct_item_xml PASSED [ 19%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_matches_an_override_on_case_insensitive_partname[match_override_fixture0] PASSED [ 19%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_matches_an_override_on_case_insensitive_partname[match_override_fixture1] PASSED [ 19%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_matches_an_override_on_case_insensitive_partname[match_override_fixture2] PASSED [ 19%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_falls_back_to_case_insensitive_extension_default_match[match_default_fixture0] PASSED [ 19%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_falls_back_to_case_insensitive_extension_default_match[match_default_fixture1] PASSED [ 19%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_falls_back_to_case_insensitive_extension_default_match[match_default_fixture2] PASSED [ 19%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_should_raise_on_partname_not_found PASSED [ 19%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_should_raise_on_key_not_instance_of_PackURI PASSED [ 19%] tests/opc/test_pkgreader.py::Describe_SerializedPart::it_remembers_construction_values PASSED [ 19%] tests/opc/test_pkgreader.py::Describe_SerializedRelationship::it_remembers_construction_values PASSED [ 19%] tests/opc/test_pkgreader.py::Describe_SerializedRelationship::it_knows_when_it_is_external PASSED [ 19%] tests/opc/test_pkgreader.py::Describe_SerializedRelationship::it_can_calculate_its_target_partname PASSED [ 19%] tests/opc/test_pkgreader.py::Describe_SerializedRelationship::it_raises_on_target_partname_when_external PASSED [ 19%] tests/opc/test_pkgreader.py::Describe_SerializedRelationships::it_can_load_from_xml PASSED [ 19%] tests/opc/test_pkgreader.py::Describe_SerializedRelationships::it_should_be_iterable PASSED [ 19%] tests/opc/test_pkgwriter.py::DescribePackageWriter::it_can_write_a_package PASSED [ 20%] tests/opc/test_pkgwriter.py::DescribePackageWriter::it_can_write_a_content_types_stream PASSED [ 20%] tests/opc/test_pkgwriter.py::DescribePackageWriter::it_can_write_a_pkg_rels_item PASSED [ 20%] tests/opc/test_pkgwriter.py::DescribePackageWriter::it_can_write_a_list_of_parts PASSED [ 20%] tests/opc/test_pkgwriter.py::Describe_ContentTypesItem::it_can_compose_content_types_element[xml_for_fixture0] PASSED [ 20%] tests/opc/test_pkgwriter.py::Describe_ContentTypesItem::it_can_compose_content_types_element[xml_for_fixture1] PASSED [ 20%] tests/opc/test_pkgwriter.py::Describe_ContentTypesItem::it_can_compose_content_types_element[xml_for_fixture2] PASSED [ 20%] tests/opc/test_pkgwriter.py::Describe_ContentTypesItem::it_can_compose_content_types_element[xml_for_fixture3] PASSED [ 20%] tests/opc/test_pkgwriter.py::Describe_ContentTypesItem::it_can_compose_content_types_element[xml_for_fixture4] PASSED [ 20%] tests/opc/test_pkgwriter.py::Describe_ContentTypesItem::it_can_compose_content_types_element[xml_for_fixture5] PASSED [ 20%] tests/opc/test_pkgwriter.py::Describe_ContentTypesItem::it_can_compose_content_types_element[xml_for_fixture6] PASSED [ 20%] tests/opc/test_rel.py::Describe_Relationship::it_remembers_construction_values PASSED [ 20%] tests/opc/test_rel.py::Describe_Relationship::it_should_raise_on_target_part_access_on_external_rel PASSED [ 20%] tests/opc/test_rel.py::Describe_Relationship::it_should_have_target_ref_for_external_rel PASSED [ 20%] tests/opc/test_rel.py::Describe_Relationship::it_should_have_relative_ref_for_internal_rel PASSED [ 20%] tests/opc/test_rel.py::DescribeRelationships::it_can_add_a_relationship PASSED [ 21%] tests/opc/test_rel.py::DescribeRelationships::it_can_add_an_external_relationship PASSED [ 21%] tests/opc/test_rel.py::DescribeRelationships::it_can_find_a_relationship_by_rId PASSED [ 21%] tests/opc/test_rel.py::DescribeRelationships::it_can_find_or_add_a_relationship PASSED [ 21%] tests/opc/test_rel.py::DescribeRelationships::it_can_find_or_add_an_external_relationship PASSED [ 21%] tests/opc/test_rel.py::DescribeRelationships::it_can_find_a_related_part_by_rId PASSED [ 21%] tests/opc/test_rel.py::DescribeRelationships::it_raises_on_related_part_not_found PASSED [ 21%] tests/opc/test_rel.py::DescribeRelationships::it_can_find_a_related_part_by_reltype PASSED [ 21%] tests/opc/test_rel.py::DescribeRelationships::it_can_compose_rels_xml PASSED [ 21%] tests/opc/test_rel.py::DescribeRelationships::it_knows_the_next_available_rId_to_help PASSED [ 21%] tests/oxml/parts/test_document.py::DescribeCT_Body::it_can_clear_all_its_content[clear_fixture0] PASSED [ 21%] tests/oxml/parts/test_document.py::DescribeCT_Body::it_can_clear_all_its_content[clear_fixture1] PASSED [ 21%] tests/oxml/parts/test_document.py::DescribeCT_Body::it_can_clear_all_its_content[clear_fixture2] PASSED [ 21%] tests/oxml/parts/test_document.py::DescribeCT_Body::it_can_clear_all_its_content[clear_fixture3] PASSED [ 21%] tests/oxml/parts/test_document.py::DescribeCT_Body::it_can_clear_all_its_content[clear_fixture4] PASSED [ 21%] tests/oxml/parts/test_document.py::DescribeCT_Body::it_can_add_a_section_break PASSED [ 21%] tests/oxml/test__init__.py::DescribeOxmlElement::it_returns_an_lxml_element_with_matching_tag_name PASSED [ 22%] tests/oxml/test__init__.py::DescribeOxmlElement::it_adds_supplied_attributes PASSED [ 22%] tests/oxml/test__init__.py::DescribeOxmlElement::it_adds_additional_namespace_declarations_when_supplied PASSED [ 22%] tests/oxml/test__init__.py::DescribeOxmlParser::it_strips_whitespace_between_elements PASSED [ 22%] tests/oxml/test__init__.py::DescribeParseXml::it_accepts_bytes_and_assumes_utf8_encoding PASSED [ 22%] tests/oxml/test__init__.py::DescribeParseXml::it_accepts_unicode_providing_there_is_no_encoding_declaration PASSED [ 22%] tests/oxml/test__init__.py::DescribeParseXml::it_uses_registered_element_classes PASSED [ 22%] tests/oxml/test__init__.py::DescribeRegisterElementCls::it_determines_class_used_for_elements_with_matching_tagname PASSED [ 22%] tests/oxml/test_document.py::DescribeCT_Body::it_knows_its_inner_content_block_item_elements PASSED [ 22%] tests/oxml/test_ns.py::DescribeNamespacePrefixedTag::it_behaves_like_a_string_when_you_want_it_to PASSED [ 22%] tests/oxml/test_ns.py::DescribeNamespacePrefixedTag::it_knows_its_clark_name PASSED [ 22%] tests/oxml/test_ns.py::DescribeNamespacePrefixedTag::it_can_construct_from_a_clark_name PASSED [ 22%] tests/oxml/test_ns.py::DescribeNamespacePrefixedTag::it_knows_its_local_part PASSED [ 22%] tests/oxml/test_ns.py::DescribeNamespacePrefixedTag::it_can_compose_a_single_entry_nsmap_for_itself PASSED [ 22%] tests/oxml/test_ns.py::DescribeNamespacePrefixedTag::it_knows_its_namespace_prefix PASSED [ 22%] tests/oxml/test_ns.py::DescribeNamespacePrefixedTag::it_knows_its_namespace_uri PASSED [ 22%] tests/oxml/test_section.py::DescribeCT_HdrFtr::it_knows_its_inner_content_block_item_elements PASSED [ 23%] tests/oxml/test_styles.py::DescribeCT_Styles::it_can_add_a_style_of_type[add_fixture0] PASSED [ 23%] tests/oxml/test_styles.py::DescribeCT_Styles::it_can_add_a_style_of_type[add_fixture1] PASSED [ 23%] tests/oxml/test_table.py::DescribeCT_Row::it_can_add_a_trPr[w:tr-w:tr/w:trPr] PASSED [ 23%] tests/oxml/test_table.py::DescribeCT_Row::it_can_add_a_trPr[w:tr/w:tblPrEx-w:tr/(w:tblPrEx,w:trPr)] PASSED [ 23%] tests/oxml/test_table.py::DescribeCT_Row::it_can_add_a_trPr[w:tr/w:tc-w:tr/(w:trPr,w:tc)] PASSED [ 23%] 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 [ 23%] tests/oxml/test_table.py::DescribeCT_Row::it_raises_on_tc_at_grid_col[0-0-3] PASSED [ 23%] tests/oxml/test_table.py::DescribeCT_Row::it_raises_on_tc_at_grid_col[1-0-1] PASSED [ 23%] 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 [ 23%] 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 [ 23%] 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 [ 23%] 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 [ 23%] 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 [ 23%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_merge_to_another_tc PASSED [ 23%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[0-0-0-top-0] PASSED [ 24%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[2-0-1-top-0] PASSED [ 24%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[2-1-1-top-0] PASSED [ 24%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[4-2-1-top-1] PASSED [ 24%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[0-0-0-left-0] PASSED [ 24%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[1-0-1-left-2] PASSED [ 24%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[3-1-0-left-0] PASSED [ 24%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[3-1-1-left-2] PASSED [ 24%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[0-0-0-bottom-1] PASSED [ 24%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[1-0-0-bottom-1] PASSED [ 24%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[2-0-1-bottom-2] PASSED [ 24%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[4-1-1-bottom-3] PASSED [ 24%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[0-0-0-right-1] PASSED [ 24%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[1-0-0-right-2] PASSED [ 24%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[4-2-1-right-3] PASSED [ 24%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[0-0-0-0-1-expected_value0] PASSED [ 24%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[0-0-1-2-1-expected_value1] PASSED [ 25%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[0-2-2-1-1-expected_value2] PASSED [ 25%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[0-1-2-1-0-expected_value3] PASSED [ 25%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[1-0-0-1-1-expected_value4] PASSED [ 25%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[1-0-1-0-0-expected_value5] PASSED [ 25%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[2-0-1-2-1-expected_value6] PASSED [ 25%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[2-0-1-1-0-expected_value7] PASSED [ 25%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[2-1-2-0-1-expected_value8] PASSED [ 25%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[4-0-1-0-0-expected_value9] PASSED [ 25%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_span[1-0-0-1-0] PASSED [ 25%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_span[1-1-0-0-0] PASSED [ 25%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_span[2-0-2-0-1] PASSED [ 25%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_span[5-0-1-1-0] PASSED [ 25%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_span[5-1-0-2-1] PASSED [ 25%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_span[6-1-0-0-1] PASSED [ 25%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_span[6-0-1-1-2] PASSED [ 25%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_grow_itself_to_help_merge[0-0-0-2-1] PASSED [ 26%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_grow_itself_to_help_merge[0-0-1-1-2] PASSED [ 26%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_grow_itself_to_help_merge[0-1-1-2-2] PASSED [ 26%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_grow_itself_to_help_merge[1-0-0-2-2] PASSED [ 26%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_grow_itself_to_help_merge[2-0-0-2-2] PASSED [ 26%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_grow_itself_to_help_merge[2-1-2-1-2] PASSED [ 26%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_extend_its_horz_span_to_help_merge PASSED [ 26%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_inner_content_block_item_elements PASSED [ 26%] 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 [ 26%] 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 [ 26%] 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 [ 26%] 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 [ 26%] 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 [ 26%] 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 [ 26%] 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 [ 26%] 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 [ 27%] 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 [ 27%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_swallow[w:tr/w:tc/w:p-0-2] PASSED [ 27%] 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 [ 27%] 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 [ 27%] 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 [ 27%] 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 [ 27%] 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 [ 27%] 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 [ 27%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_tr_above[0-0-0] PASSED [ 27%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_tr_above[4-0-0] PASSED [ 27%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_find_the_first_of_its_children_named_in_a_sequence[first_fixture0] PASSED [ 27%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_find_the_first_of_its_children_named_in_a_sequence[first_fixture1] PASSED [ 27%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_find_the_first_of_its_children_named_in_a_sequence[first_fixture2] PASSED [ 27%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_find_the_first_of_its_children_named_in_a_sequence[first_fixture3] PASSED [ 27%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_find_the_first_of_its_children_named_in_a_sequence[first_fixture4] PASSED [ 27%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_find_the_first_of_its_children_named_in_a_sequence[first_fixture5] PASSED [ 28%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_insert_an_element_before_named_successors[insert_fixture0] PASSED [ 28%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_insert_an_element_before_named_successors[insert_fixture1] PASSED [ 28%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_insert_an_element_before_named_successors[insert_fixture2] PASSED [ 28%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_insert_an_element_before_named_successors[insert_fixture3] PASSED [ 28%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_insert_an_element_before_named_successors[insert_fixture4] PASSED [ 28%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture0] PASSED [ 28%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture1] PASSED [ 28%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture2] PASSED [ 28%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture3] PASSED [ 28%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture4] PASSED [ 28%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture5] PASSED [ 28%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture6] PASSED [ 28%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture7] PASSED [ 28%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture8] PASSED [ 28%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture9] PASSED [ 28%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture10] PASSED [ 29%] tests/oxml/test_xmlchemy.py::DescribeSerializeForReading::it_pretty_prints_an_lxml_element PASSED [ 29%] tests/oxml/test_xmlchemy.py::DescribeSerializeForReading::it_returns_unicode_text PASSED [ 29%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_parses_a_line_to_help_compare[parse_fixture0] PASSED [ 29%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_parses_a_line_to_help_compare[parse_fixture1] PASSED [ 29%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_parses_a_line_to_help_compare[parse_fixture2] PASSED [ 29%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_parses_a_line_to_help_compare[parse_fixture3] PASSED [ 29%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_parses_a_line_to_help_compare[parse_fixture4] PASSED [ 29%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_knows_if_two_xml_lines_are_equivalent[simple_elm] PASSED [ 29%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_knows_if_two_xml_lines_are_equivalent[nsp_tagname] PASSED [ 29%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_knows_if_two_xml_lines_are_equivalent[indent] PASSED [ 29%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_knows_if_two_xml_lines_are_equivalent[attrs] PASSED [ 29%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_knows_if_two_xml_lines_are_equivalent[nsdecl_order] PASSED [ 29%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_knows_if_two_xml_lines_are_equivalent[closing_elm] PASSED [ 29%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_a_getter_property_for_the_choice_element[choice] PASSED [ 29%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_a_getter_property_for_the_choice_element[None] PASSED [ 30%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_a_creator_method_for_the_child_element PASSED [ 30%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_an_insert_method_for_the_child_element PASSED [ 30%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_an_add_method_for_the_child_element PASSED [ 30%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_a_get_or_change_to_method_for_the_child_element[get_or_change_to_fixture0] PASSED [ 30%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_a_get_or_change_to_method_for_the_child_element[get_or_change_to_fixture1] PASSED [ 30%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_a_get_or_change_to_method_for_the_child_element[get_or_change_to_fixture2] PASSED [ 30%] tests/oxml/test_xmlchemy.py::DescribeOneAndOnlyOne::it_adds_a_getter_property_for_the_child_element PASSED [ 30%] tests/oxml/test_xmlchemy.py::DescribeOneOrMore::it_adds_a_getter_property_for_the_child_element_list PASSED [ 30%] tests/oxml/test_xmlchemy.py::DescribeOneOrMore::it_adds_a_creator_method_for_the_child_element PASSED [ 30%] tests/oxml/test_xmlchemy.py::DescribeOneOrMore::it_adds_an_insert_method_for_the_child_element PASSED [ 30%] tests/oxml/test_xmlchemy.py::DescribeOneOrMore::it_adds_a_private_add_method_for_the_child_element PASSED [ 30%] tests/oxml/test_xmlchemy.py::DescribeOneOrMore::it_adds_a_public_add_method_for_the_child_element PASSED [ 30%] tests/oxml/test_xmlchemy.py::DescribeOptionalAttribute::it_adds_a_getter_property_for_the_attr_value PASSED [ 30%] tests/oxml/test_xmlchemy.py::DescribeOptionalAttribute::it_adds_a_setter_property_for_the_attr[36] PASSED [ 30%] tests/oxml/test_xmlchemy.py::DescribeOptionalAttribute::it_adds_a_setter_property_for_the_attr[None] PASSED [ 30%] tests/oxml/test_xmlchemy.py::DescribeOptionalAttribute::it_adds_a_docstring_for_the_property PASSED [ 31%] tests/oxml/test_xmlchemy.py::DescribeRequiredAttribute::it_adds_a_getter_property_for_the_attr_value PASSED [ 31%] tests/oxml/test_xmlchemy.py::DescribeRequiredAttribute::it_adds_a_setter_property_for_the_attr PASSED [ 31%] tests/oxml/test_xmlchemy.py::DescribeRequiredAttribute::it_adds_a_docstring_for_the_property PASSED [ 31%] tests/oxml/test_xmlchemy.py::DescribeRequiredAttribute::it_raises_on_get_when_attribute_not_present PASSED [ 31%] tests/oxml/test_xmlchemy.py::DescribeRequiredAttribute::it_raises_on_assign_invalid_value[invalid_assign_fixture0] PASSED [ 31%] tests/oxml/test_xmlchemy.py::DescribeRequiredAttribute::it_raises_on_assign_invalid_value[invalid_assign_fixture1] PASSED [ 31%] tests/oxml/test_xmlchemy.py::DescribeRequiredAttribute::it_raises_on_assign_invalid_value[invalid_assign_fixture2] PASSED [ 31%] tests/oxml/test_xmlchemy.py::DescribeZeroOrMore::it_adds_a_getter_property_for_the_child_element_list PASSED [ 31%] tests/oxml/test_xmlchemy.py::DescribeZeroOrMore::it_adds_a_creator_method_for_the_child_element PASSED [ 31%] tests/oxml/test_xmlchemy.py::DescribeZeroOrMore::it_adds_an_insert_method_for_the_child_element PASSED [ 31%] tests/oxml/test_xmlchemy.py::DescribeZeroOrMore::it_adds_an_add_method_for_the_child_element PASSED [ 31%] tests/oxml/test_xmlchemy.py::DescribeZeroOrMore::it_adds_a_public_add_method_for_the_child_element PASSED [ 31%] tests/oxml/test_xmlchemy.py::DescribeZeroOrMore::it_removes_the_property_root_name_used_for_declaration PASSED [ 31%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_a_getter_property_for_the_child_element[True] PASSED [ 31%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_a_getter_property_for_the_child_element[False] PASSED [ 31%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_an_add_method_for_the_child_element PASSED [ 32%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_an_insert_method_for_the_child_element PASSED [ 32%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_a_get_or_add_method_for_the_child_element[True] PASSED [ 32%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_a_get_or_add_method_for_the_child_element[False] PASSED [ 32%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_a_remover_method_for_the_child_element[True] PASSED [ 32%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_a_remover_method_for_the_child_element[False] PASSED [ 32%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOneChoice::it_adds_a_getter_for_the_current_choice[None] PASSED [ 32%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOneChoice::it_adds_a_getter_for_the_current_choice[choice] PASSED [ 32%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOneChoice::it_adds_a_getter_for_the_current_choice[choice2] PASSED [ 32%] tests/oxml/text/test_hyperlink.py::DescribeCT_Hyperlink::it_has_a_relationship_that_contains_the_hyperlink_address PASSED [ 32%] 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 [ 32%] 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 [ 32%] 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 [ 32%] tests/oxml/text/test_hyperlink.py::DescribeCT_Hyperlink::it_has_zero_or_more_runs_containing_the_hyperlink_text PASSED [ 32%] 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 [ 32%] 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 [ 33%] 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 [ 33%] tests/oxml/text/test_run.py::DescribeCT_R::it_can_assemble_the_text_in_the_run PASSED [ 33%] tests/parts/test_document.py::DescribeDocumentPart::it_can_add_a_footer_part PASSED [ 33%] tests/parts/test_document.py::DescribeDocumentPart::it_can_add_a_header_part PASSED [ 33%] tests/parts/test_document.py::DescribeDocumentPart::it_can_drop_a_specified_header_part PASSED [ 33%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_a_footer_part_by_rId PASSED [ 33%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_a_header_part_by_rId PASSED [ 33%] tests/parts/test_document.py::DescribeDocumentPart::it_can_save_the_package_to_a_file PASSED [ 33%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_the_document_settings PASSED [ 33%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_the_document_styles PASSED [ 33%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_its_core_properties PASSED [ 33%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_the_inline_shapes_in_the_document PASSED [ 33%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_the_numbering_part PASSED [ 33%] tests/parts/test_document.py::DescribeDocumentPart::and_it_creates_a_numbering_part_if_not_present PASSED [ 33%] tests/parts/test_document.py::DescribeDocumentPart::it_can_get_a_style_by_id PASSED [ 33%] tests/parts/test_document.py::DescribeDocumentPart::it_can_get_the_id_of_a_style PASSED [ 34%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_its_settings_part_to_help PASSED [ 34%] tests/parts/test_document.py::DescribeDocumentPart::and_it_creates_a_default_settings_part_if_not_present PASSED [ 34%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_its_styles_part_to_help PASSED [ 34%] tests/parts/test_document.py::DescribeDocumentPart::and_it_creates_a_default_styles_part_if_not_present PASSED [ 34%] tests/parts/test_hdrftr.py::DescribeFooterPart::it_is_used_by_loader_to_construct_footer_part PASSED [ 34%] tests/parts/test_hdrftr.py::DescribeFooterPart::it_can_create_a_new_footer_part PASSED [ 34%] tests/parts/test_hdrftr.py::DescribeFooterPart::it_loads_default_footer_XML_from_a_template_to_help PASSED [ 34%] tests/parts/test_hdrftr.py::DescribeHeaderPart::it_is_used_by_loader_to_construct_header_part PASSED [ 34%] tests/parts/test_hdrftr.py::DescribeHeaderPart::it_can_create_a_new_header_part PASSED [ 34%] tests/parts/test_hdrftr.py::DescribeHeaderPart::it_loads_default_header_XML_from_a_template_to_help PASSED [ 34%] tests/parts/test_image.py::DescribeImagePart::it_is_used_by_PartFactory_to_construct_image_part PASSED [ 34%] tests/parts/test_image.py::DescribeImagePart::it_can_construct_from_an_Image_instance PASSED [ 34%] tests/parts/test_image.py::DescribeImagePart::it_knows_its_default_dimensions_in_EMU[loaded] PASSED [ 34%] tests/parts/test_image.py::DescribeImagePart::it_knows_its_default_dimensions_in_EMU[new] PASSED [ 34%] tests/parts/test_image.py::DescribeImagePart::it_knows_its_filename[loaded] PASSED [ 34%] tests/parts/test_image.py::DescribeImagePart::it_knows_its_filename[new] PASSED [ 35%] tests/parts/test_image.py::DescribeImagePart::it_knows_the_sha1_of_its_image PASSED [ 35%] tests/parts/test_numbering.py::DescribeNumberingPart::it_provides_access_to_the_numbering_definitions PASSED [ 35%] tests/parts/test_numbering.py::Describe_NumberingDefinitions::it_knows_how_many_numbering_definitions_it_contains[0] PASSED [ 35%] tests/parts/test_numbering.py::Describe_NumberingDefinitions::it_knows_how_many_numbering_definitions_it_contains[1] PASSED [ 35%] tests/parts/test_numbering.py::Describe_NumberingDefinitions::it_knows_how_many_numbering_definitions_it_contains[2] PASSED [ 35%] tests/parts/test_numbering.py::Describe_NumberingDefinitions::it_knows_how_many_numbering_definitions_it_contains[3] PASSED [ 35%] tests/parts/test_settings.py::DescribeSettingsPart::it_is_used_by_loader_to_construct_settings_part PASSED [ 35%] tests/parts/test_settings.py::DescribeSettingsPart::it_provides_access_to_its_settings PASSED [ 35%] tests/parts/test_settings.py::DescribeSettingsPart::it_constructs_a_default_settings_part_to_help PASSED [ 35%] tests/parts/test_story.py::DescribeStoryPart::it_can_get_or_add_an_image PASSED [ 35%] tests/parts/test_story.py::DescribeStoryPart::it_can_get_a_style_by_id_and_type PASSED [ 35%] tests/parts/test_story.py::DescribeStoryPart::it_can_get_a_style_id_by_style_or_name_and_type PASSED [ 35%] tests/parts/test_story.py::DescribeStoryPart::it_can_create_a_new_pic_inline PASSED [ 35%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture0] PASSED [ 35%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture1] PASSED [ 36%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture2] PASSED [ 36%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture3] PASSED [ 36%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture4] PASSED [ 36%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture5] PASSED [ 36%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture6] PASSED [ 36%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture7] PASSED [ 36%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture8] PASSED [ 36%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_main_document_part_to_help PASSED [ 36%] tests/parts/test_styles.py::DescribeStylesPart::it_provides_access_to_its_styles PASSED [ 36%] tests/parts/test_styles.py::DescribeStylesPart::it_can_construct_a_default_styles_part_to_help PASSED [ 36%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_delete_itself PASSED [ 36%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_name[name_get_fixture0] PASSED [ 36%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_priority[priority_get_fixture0] PASSED [ 36%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_priority[priority_get_fixture1] PASSED [ 36%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_priority[priority_set_fixture0] PASSED [ 36%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_priority[priority_set_fixture1] PASSED [ 37%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_priority[priority_set_fixture2] PASSED [ 37%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture0] PASSED [ 37%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture1] PASSED [ 37%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture2] PASSED [ 37%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture3] PASSED [ 37%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture4] PASSED [ 37%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture5] PASSED [ 37%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture6] PASSED [ 37%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture7] PASSED [ 37%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture8] PASSED [ 37%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture9] PASSED [ 37%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture10] PASSED [ 37%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture11] PASSED [ 37%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_on_off_properties[on_off_set_fixture0] PASSED [ 37%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_on_off_properties[on_off_set_fixture1] PASSED [ 37%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_on_off_properties[on_off_set_fixture2] PASSED [ 38%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_on_off_properties[on_off_set_fixture3] PASSED [ 38%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_on_off_properties[on_off_set_fixture4] PASSED [ 38%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_on_off_properties[on_off_set_fixture5] PASSED [ 38%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_on_off_properties[on_off_set_fixture6] PASSED [ 38%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_add_a_latent_style PASSED [ 38%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_how_many_latent_styles_it_contains[len_fixture0] PASSED [ 38%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_how_many_latent_styles_it_contains[len_fixture1] PASSED [ 38%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_how_many_latent_styles_it_contains[len_fixture2] PASSED [ 38%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_iterate_over_its_latent_styles[iter_fixture0] PASSED [ 38%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_iterate_over_its_latent_styles[iter_fixture1] PASSED [ 38%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_iterate_over_its_latent_styles[iter_fixture2] PASSED [ 38%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_get_a_latent_style_by_name[getitem_fixture0] PASSED [ 38%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_get_a_latent_style_by_name[getitem_fixture1] PASSED [ 38%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_get_a_latent_style_by_name[getitem_fixture2] PASSED [ 38%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_get_a_latent_style_by_name[getitem_fixture3] PASSED [ 39%] tests/styles/test_latent.py::DescribeLatentStyles::it_raises_on_latent_style_not_found PASSED [ 39%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_default_priority[priority_get_fixture0] PASSED [ 39%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_default_priority[priority_get_fixture1] PASSED [ 39%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_default_priority[priority_set_fixture0] PASSED [ 39%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_default_priority[priority_set_fixture1] PASSED [ 39%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_default_priority[priority_set_fixture2] PASSED [ 39%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_load_count[count_get_fixture0] PASSED [ 39%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_load_count[count_get_fixture1] PASSED [ 39%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_load_count[count_set_fixture0] PASSED [ 39%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_load_count[count_set_fixture1] PASSED [ 39%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_load_count[count_set_fixture2] PASSED [ 39%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture0] PASSED [ 39%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture1] PASSED [ 39%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture2] PASSED [ 39%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture3] PASSED [ 39%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture4] PASSED [ 40%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture5] PASSED [ 40%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture6] PASSED [ 40%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture7] PASSED [ 40%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_boolean_properties[bool_prop_set_fixture0] PASSED [ 40%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_boolean_properties[bool_prop_set_fixture1] PASSED [ 40%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_boolean_properties[bool_prop_set_fixture2] PASSED [ 40%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_boolean_properties[bool_prop_set_fixture3] PASSED [ 40%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_boolean_properties[bool_prop_set_fixture4] PASSED [ 40%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_boolean_properties[bool_prop_set_fixture5] PASSED [ 40%] tests/styles/test_style.py::DescribeStyleFactory::it_constructs_the_right_type_of_style[paragraph] PASSED [ 40%] tests/styles/test_style.py::DescribeStyleFactory::it_constructs_the_right_type_of_style[character] PASSED [ 40%] tests/styles/test_style.py::DescribeStyleFactory::it_constructs_the_right_type_of_style[table] PASSED [ 40%] tests/styles/test_style.py::DescribeStyleFactory::it_constructs_the_right_type_of_style[numbering] PASSED [ 40%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_style_id[id_get_fixture0] PASSED [ 40%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_style_id[id_get_fixture1] PASSED [ 40%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_style_id[id_set_fixture0] PASSED [ 41%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_style_id[id_set_fixture1] PASSED [ 41%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_style_id[id_set_fixture2] PASSED [ 41%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_style_id[id_set_fixture3] PASSED [ 41%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_type[type_get_fixture0] PASSED [ 41%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_type[type_get_fixture1] PASSED [ 41%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_type[type_get_fixture2] PASSED [ 41%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_type[type_get_fixture3] PASSED [ 41%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_name[name_get_fixture0] PASSED [ 41%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_name[name_get_fixture1] PASSED [ 41%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_name[name_get_fixture2] PASSED [ 41%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_name[name_set_fixture0] PASSED [ 41%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_name[name_set_fixture1] PASSED [ 41%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_name[name_set_fixture2] PASSED [ 41%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_a_builtin_style[builtin_get_fixture0] PASSED [ 41%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_a_builtin_style[builtin_get_fixture1] PASSED [ 42%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_a_builtin_style[builtin_get_fixture2] PASSED [ 42%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_hidden[hidden_get_fixture0] PASSED [ 42%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_hidden[hidden_get_fixture1] PASSED [ 42%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_hidden[hidden_get_fixture2] PASSED [ 42%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_hidden[hidden_get_fixture3] PASSED [ 42%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_hidden[hidden_set_fixture0] PASSED [ 42%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_hidden[hidden_set_fixture1] PASSED [ 42%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_hidden[hidden_set_fixture2] PASSED [ 42%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_hidden[hidden_set_fixture3] PASSED [ 42%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_hidden[hidden_set_fixture4] PASSED [ 42%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_hidden[hidden_set_fixture5] PASSED [ 42%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_sort_order[priority_get_fixture0] PASSED [ 42%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_sort_order[priority_get_fixture1] PASSED [ 42%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_sort_order[priority_set_fixture0] PASSED [ 42%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_sort_order[priority_set_fixture1] PASSED [ 42%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_sort_order[priority_set_fixture2] PASSED [ 43%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_unhide_when_used[unhide_get_fixture0] PASSED [ 43%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_unhide_when_used[unhide_get_fixture1] PASSED [ 43%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_unhide_when_used[unhide_get_fixture2] PASSED [ 43%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_unhide_when_used[unhide_get_fixture3] PASSED [ 43%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_unhide_when_used_value[unhide_set_fixture0] PASSED [ 43%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_unhide_when_used_value[unhide_set_fixture1] PASSED [ 43%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_unhide_when_used_value[unhide_set_fixture2] PASSED [ 43%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_unhide_when_used_value[unhide_set_fixture3] PASSED [ 43%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_unhide_when_used_value[unhide_set_fixture4] PASSED [ 43%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_unhide_when_used_value[unhide_set_fixture5] PASSED [ 43%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_quick_style_setting[quick_get_fixture0] PASSED [ 43%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_quick_style_setting[quick_get_fixture1] PASSED [ 43%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_quick_style_setting[quick_get_fixture2] PASSED [ 43%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_quick_style_setting[quick_get_fixture3] PASSED [ 43%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_quick_style_setting[quick_set_fixture0] PASSED [ 43%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_quick_style_setting[quick_set_fixture1] PASSED [ 44%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_quick_style_setting[quick_set_fixture2] PASSED [ 44%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_quick_style_setting[quick_set_fixture3] PASSED [ 44%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_quick_style_setting[quick_set_fixture4] PASSED [ 44%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_locked[locked_get_fixture0] PASSED [ 44%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_locked[locked_get_fixture1] PASSED [ 44%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_locked[locked_get_fixture2] PASSED [ 44%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_locked[locked_get_fixture3] PASSED [ 44%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_locked[locked_set_fixture0] PASSED [ 44%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_locked[locked_set_fixture1] PASSED [ 44%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_locked[locked_set_fixture2] PASSED [ 44%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_locked[locked_set_fixture3] PASSED [ 44%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_locked[locked_set_fixture4] PASSED [ 44%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_locked[locked_set_fixture5] PASSED [ 44%] tests/styles/test_style.py::DescribeBaseStyle::it_can_delete_itself_from_the_document PASSED [ 44%] tests/styles/test_style.py::DescribeCharacterStyle::it_knows_which_style_it_is_based_on[base_get_fixture0] PASSED [ 45%] tests/styles/test_style.py::DescribeCharacterStyle::it_knows_which_style_it_is_based_on[base_get_fixture1] PASSED [ 45%] tests/styles/test_style.py::DescribeCharacterStyle::it_knows_which_style_it_is_based_on[base_get_fixture2] PASSED [ 45%] tests/styles/test_style.py::DescribeCharacterStyle::it_can_change_its_base_style[base_set_fixture0] PASSED [ 45%] tests/styles/test_style.py::DescribeCharacterStyle::it_can_change_its_base_style[base_set_fixture1] PASSED [ 45%] tests/styles/test_style.py::DescribeCharacterStyle::it_can_change_its_base_style[base_set_fixture2] PASSED [ 45%] tests/styles/test_style.py::DescribeCharacterStyle::it_provides_access_to_its_font PASSED [ 45%] tests/styles/test_style.py::DescribeParagraphStyle::it_knows_its_next_paragraph_style[next_get_fixture0] PASSED [ 45%] tests/styles/test_style.py::DescribeParagraphStyle::it_knows_its_next_paragraph_style[next_get_fixture1] PASSED [ 45%] tests/styles/test_style.py::DescribeParagraphStyle::it_knows_its_next_paragraph_style[next_get_fixture2] PASSED [ 45%] tests/styles/test_style.py::DescribeParagraphStyle::it_knows_its_next_paragraph_style[next_get_fixture3] PASSED [ 45%] tests/styles/test_style.py::DescribeParagraphStyle::it_can_change_its_next_paragraph_style[next_set_fixture0] PASSED [ 45%] tests/styles/test_style.py::DescribeParagraphStyle::it_can_change_its_next_paragraph_style[next_set_fixture1] PASSED [ 45%] tests/styles/test_style.py::DescribeParagraphStyle::it_can_change_its_next_paragraph_style[next_set_fixture2] PASSED [ 45%] tests/styles/test_style.py::DescribeParagraphStyle::it_provides_access_to_its_paragraph_format PASSED [ 45%] tests/styles/test_styles.py::DescribeStyles::it_supports_the_in_operator_on_style_name[in_fixture0] PASSED [ 45%] tests/styles/test_styles.py::DescribeStyles::it_supports_the_in_operator_on_style_name[in_fixture1] PASSED [ 46%] tests/styles/test_styles.py::DescribeStyles::it_supports_the_in_operator_on_style_name[in_fixture2] PASSED [ 46%] tests/styles/test_styles.py::DescribeStyles::it_supports_the_in_operator_on_style_name[in_fixture3] PASSED [ 46%] tests/styles/test_styles.py::DescribeStyles::it_knows_its_length[len_fixture0] PASSED [ 46%] tests/styles/test_styles.py::DescribeStyles::it_knows_its_length[len_fixture1] PASSED [ 46%] tests/styles/test_styles.py::DescribeStyles::it_knows_its_length[len_fixture2] PASSED [ 46%] tests/styles/test_styles.py::DescribeStyles::it_knows_its_length[len_fixture3] PASSED [ 46%] tests/styles/test_styles.py::DescribeStyles::it_can_iterate_over_its_styles[iter_fixture0] PASSED [ 46%] tests/styles/test_styles.py::DescribeStyles::it_can_iterate_over_its_styles[iter_fixture1] PASSED [ 46%] tests/styles/test_styles.py::DescribeStyles::it_can_iterate_over_its_styles[iter_fixture2] PASSED [ 46%] tests/styles/test_styles.py::DescribeStyles::it_can_iterate_over_its_styles[iter_fixture3] PASSED [ 46%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_by_id[getitem_id_fixture0] PASSED [ 46%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_by_id[getitem_id_fixture1] PASSED [ 46%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_by_id[getitem_id_fixture2] PASSED [ 46%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_by_name[getitem_name_fixture0] PASSED [ 46%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_by_name[getitem_name_fixture1] PASSED [ 46%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_by_name[getitem_name_fixture2] PASSED [ 47%] 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 [ 47%] tests/styles/test_styles.py::DescribeStyles::it_raises_on_style_not_found[w:styles/(w:style{w:styleId=foo},w:style,w:style)] PASSED [ 47%] tests/styles/test_styles.py::DescribeStyles::it_can_add_a_new_style[add_fixture0] PASSED [ 47%] tests/styles/test_styles.py::DescribeStyles::it_can_add_a_new_style[add_fixture1] PASSED [ 47%] tests/styles/test_styles.py::DescribeStyles::it_raises_when_style_name_already_used PASSED [ 47%] tests/styles/test_styles.py::DescribeStyles::it_can_get_the_default_style_for_a_type[default_fixture0] PASSED [ 47%] tests/styles/test_styles.py::DescribeStyles::it_can_get_the_default_style_for_a_type[default_fixture1] PASSED [ 47%] tests/styles/test_styles.py::DescribeStyles::it_can_get_the_default_style_for_a_type[default_fixture2] PASSED [ 47%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_of_type_by_id PASSED [ 47%] tests/styles/test_styles.py::DescribeStyles::but_it_returns_the_default_style_for_style_id_None PASSED [ 47%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_id_from_a_style PASSED [ 47%] tests/styles/test_styles.py::DescribeStyles::and_it_can_get_a_style_id_from_a_style_name PASSED [ 47%] tests/styles/test_styles.py::DescribeStyles::but_it_returns_None_for_a_style_or_name_of_None PASSED [ 47%] tests/styles/test_styles.py::DescribeStyles::it_gets_a_style_by_id_to_help[_get_by_id_fixture0] PASSED [ 47%] tests/styles/test_styles.py::DescribeStyles::it_gets_a_style_by_id_to_help[_get_by_id_fixture1] PASSED [ 48%] tests/styles/test_styles.py::DescribeStyles::it_gets_a_style_by_id_to_help[_get_by_id_fixture2] PASSED [ 48%] tests/styles/test_styles.py::DescribeStyles::it_gets_a_style_id_from_a_name_to_help PASSED [ 48%] tests/styles/test_styles.py::DescribeStyles::it_gets_a_style_id_from_a_style_to_help[True] PASSED [ 48%] tests/styles/test_styles.py::DescribeStyles::it_gets_a_style_id_from_a_style_to_help[False] PASSED [ 48%] tests/styles/test_styles.py::DescribeStyles::it_raises_on_style_type_mismatch PASSED [ 48%] tests/styles/test_styles.py::DescribeStyles::it_provides_access_to_the_latent_styles PASSED [ 48%] tests/test_api.py::DescribeDocument::it_opens_a_docx_file PASSED [ 48%] tests/test_api.py::DescribeDocument::it_opens_the_default_docx_if_none_specified PASSED [ 48%] tests/test_api.py::DescribeDocument::it_raises_on_not_a_Word_file PASSED [ 48%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_can_add_a_paragraph[add_paragraph_fixture0] PASSED [ 48%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_can_add_a_paragraph[add_paragraph_fixture1] PASSED [ 48%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_can_add_a_paragraph[add_paragraph_fixture2] PASSED [ 48%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_can_add_a_paragraph[add_paragraph_fixture3] PASSED [ 48%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_can_add_a_table PASSED [ 48%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_can_iterate_its_inner_content PASSED [ 48%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_paragraphs_it_contains[paragraphs_fixture0] PASSED [ 49%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_paragraphs_it_contains[paragraphs_fixture1] PASSED [ 49%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_paragraphs_it_contains[paragraphs_fixture2] PASSED [ 49%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_paragraphs_it_contains[paragraphs_fixture3] PASSED [ 49%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_paragraphs_it_contains[paragraphs_fixture4] PASSED [ 49%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_tables_it_contains[tables_fixture0] PASSED [ 49%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_tables_it_contains[tables_fixture1] PASSED [ 49%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_tables_it_contains[tables_fixture2] PASSED [ 49%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_tables_it_contains[tables_fixture3] PASSED [ 49%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_tables_it_contains[tables_fixture4] PASSED [ 49%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_adds_a_paragraph_to_help PASSED [ 49%] tests/test_document.py::DescribeDocument::it_can_add_a_heading[add_heading_fixture0] PASSED [ 49%] tests/test_document.py::DescribeDocument::it_can_add_a_heading[add_heading_fixture1] PASSED [ 49%] tests/test_document.py::DescribeDocument::it_can_add_a_heading[add_heading_fixture2] PASSED [ 49%] tests/test_document.py::DescribeDocument::it_can_add_a_heading[add_heading_fixture3] PASSED [ 49%] tests/test_document.py::DescribeDocument::it_raises_on_heading_level_out_of_range PASSED [ 50%] tests/test_document.py::DescribeDocument::it_can_add_a_page_break PASSED [ 50%] tests/test_document.py::DescribeDocument::it_can_add_a_paragraph[add_paragraph_fixture0] PASSED [ 50%] tests/test_document.py::DescribeDocument::it_can_add_a_paragraph[add_paragraph_fixture1] PASSED [ 50%] tests/test_document.py::DescribeDocument::it_can_add_a_paragraph[add_paragraph_fixture2] PASSED [ 50%] tests/test_document.py::DescribeDocument::it_can_add_a_picture PASSED [ 50%] tests/test_document.py::DescribeDocument::it_can_add_a_section[add_section_fixture0] PASSED [ 50%] tests/test_document.py::DescribeDocument::it_can_add_a_section[add_section_fixture1] PASSED [ 50%] tests/test_document.py::DescribeDocument::it_can_add_a_section[add_section_fixture2] PASSED [ 50%] tests/test_document.py::DescribeDocument::it_can_add_a_table PASSED [ 50%] tests/test_document.py::DescribeDocument::it_can_save_the_document_to_a_file PASSED [ 50%] tests/test_document.py::DescribeDocument::it_provides_access_to_its_core_properties PASSED [ 50%] tests/test_document.py::DescribeDocument::it_provides_access_to_its_inline_shapes PASSED [ 50%] tests/test_document.py::DescribeDocument::it_can_iterate_the_inner_content_of_the_document PASSED [ 50%] tests/test_document.py::DescribeDocument::it_provides_access_to_its_paragraphs PASSED [ 50%] tests/test_document.py::DescribeDocument::it_provides_access_to_its_sections PASSED [ 50%] tests/test_document.py::DescribeDocument::it_provides_access_to_its_settings PASSED [ 51%] tests/test_document.py::DescribeDocument::it_provides_access_to_its_styles PASSED [ 51%] tests/test_document.py::DescribeDocument::it_provides_access_to_its_tables PASSED [ 51%] tests/test_document.py::DescribeDocument::it_provides_access_to_the_document_part PASSED [ 51%] tests/test_document.py::DescribeDocument::it_provides_access_to_the_document_body PASSED [ 51%] tests/test_document.py::DescribeDocument::it_determines_block_width_to_help PASSED [ 51%] tests/test_document.py::Describe_Body::it_can_clear_itself_of_all_content_it_holds[clear_fixture0] PASSED [ 51%] tests/test_document.py::Describe_Body::it_can_clear_itself_of_all_content_it_holds[clear_fixture1] PASSED [ 51%] tests/test_document.py::Describe_Body::it_can_clear_itself_of_all_content_it_holds[clear_fixture2] PASSED [ 51%] tests/test_document.py::Describe_Body::it_can_clear_itself_of_all_content_it_holds[clear_fixture3] PASSED [ 51%] tests/test_enum.py::DescribeBaseXmlEnum::it_is_an_instance_of_EnumMeta_just_like_a_regular_Enum PASSED [ 51%] tests/test_enum.py::DescribeBaseXmlEnum::it_has_the_same_repr_as_a_regular_Enum PASSED [ 51%] tests/test_enum.py::DescribeBaseXmlEnum::it_has_an_MRO_that_goes_through_the_base_class_int_and_Enum PASSED [ 51%] tests/test_enum.py::DescribeBaseXmlEnum::it_knows_the_XML_value_for_each_member_by_the_member_instance PASSED [ 51%] tests/test_enum.py::DescribeBaseXmlEnum::it_knows_the_XML_value_for_each_member_by_the_member_value PASSED [ 51%] tests/test_enum.py::DescribeBaseXmlEnum::but_it_raises_when_there_is_no_such_member PASSED [ 51%] tests/test_enum.py::DescribeBaseXmlEnum::it_can_find_the_member_from_the_XML_attr_value PASSED [ 52%] tests/test_enum.py::DescribeBaseXmlEnum::and_it_can_find_the_member_from_None_when_a_member_maps_that PASSED [ 52%] tests/test_enum.py::DescribeBaseXmlEnum::but_it_raises_when_there_is_no_such_mapped_XML_value PASSED [ 52%] tests/test_enum.py::DescribeBaseXmlEnumMembers::it_is_an_instance_of_its_XmlEnum_subtype_class PASSED [ 52%] tests/test_enum.py::DescribeBaseXmlEnumMembers::it_has_the_default_Enum_repr PASSED [ 52%] tests/test_enum.py::DescribeBaseXmlEnumMembers::but_its_str_value_is_customized PASSED [ 52%] tests/test_enum.py::DescribeBaseXmlEnumMembers::its_value_is_the_same_int_as_its_corresponding_MS_API_enum_member PASSED [ 52%] tests/test_enum.py::DescribeBaseXmlEnumMembers::its_name_is_its_member_name_the_same_as_a_regular_Enum PASSED [ 52%] tests/test_enum.py::DescribeBaseXmlEnumMembers::it_has_an_individual_member_specific_docstring PASSED [ 52%] tests/test_enum.py::DescribeBaseXmlEnumMembers::it_is_equivalent_to_its_int_value PASSED [ 52%] tests/test_package.py::DescribePackage::it_can_get_or_add_an_image_part_containing_a_specified_image PASSED [ 52%] tests/test_package.py::DescribePackage::it_gathers_package_image_parts_after_unmarshalling PASSED [ 52%] tests/test_package.py::DescribeImageParts::it_can_get_a_matching_image_part PASSED [ 52%] tests/test_package.py::DescribeImageParts::but_it_adds_a_new_image_part_when_match_fails PASSED [ 52%] tests/test_package.py::DescribeImageParts::it_knows_the_next_available_image_partname[next_partname_fixture0] PASSED [ 52%] tests/test_package.py::DescribeImageParts::it_knows_the_next_available_image_partname[next_partname_fixture1] PASSED [ 53%] tests/test_package.py::DescribeImageParts::it_knows_the_next_available_image_partname[next_partname_fixture2] PASSED [ 53%] tests/test_package.py::DescribeImageParts::it_can_really_add_a_new_image_part PASSED [ 53%] tests/test_section.py::DescribeSections::it_knows_how_many_sections_it_contains PASSED [ 53%] tests/test_section.py::DescribeSections::it_can_iterate_over_its_Section_instances PASSED [ 53%] tests/test_section.py::DescribeSections::it_can_access_its_Section_instances_by_index PASSED [ 53%] tests/test_section.py::DescribeSections::it_can_access_its_Section_instances_by_slice PASSED [ 53%] tests/test_section.py::DescribeSection::it_knows_when_it_displays_a_distinct_first_page_header[w:sectPr-False] PASSED [ 53%] tests/test_section.py::DescribeSection::it_knows_when_it_displays_a_distinct_first_page_header[w:sectPr/w:titlePg-True] PASSED [ 53%] tests/test_section.py::DescribeSection::it_knows_when_it_displays_a_distinct_first_page_header[w:sectPr/w:titlePg{w:val=0}-False] PASSED [ 53%] tests/test_section.py::DescribeSection::it_knows_when_it_displays_a_distinct_first_page_header[w:sectPr/w:titlePg{w:val=1}-True] PASSED [ 53%] tests/test_section.py::DescribeSection::it_knows_when_it_displays_a_distinct_first_page_header[w:sectPr/w:titlePg{w:val=true}-True] PASSED [ 53%] 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 [ 53%] 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 [ 53%] 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 [ 53%] 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 [ 53%] tests/test_section.py::DescribeSection::it_provides_access_to_its_even_page_footer PASSED [ 54%] tests/test_section.py::DescribeSection::it_provides_access_to_its_even_page_header PASSED [ 54%] tests/test_section.py::DescribeSection::it_provides_access_to_its_first_page_footer PASSED [ 54%] tests/test_section.py::DescribeSection::it_provides_access_to_its_first_page_header PASSED [ 54%] tests/test_section.py::DescribeSection::it_provides_access_to_its_default_footer PASSED [ 54%] tests/test_section.py::DescribeSection::it_provides_access_to_its_default_header PASSED [ 54%] tests/test_section.py::DescribeSection::it_can_iterate_its_inner_content PASSED [ 54%] tests/test_section.py::DescribeSection::it_knows_its_start_type[w:sectPr-NEW_PAGE (2)] PASSED [ 54%] tests/test_section.py::DescribeSection::it_knows_its_start_type[w:sectPr/w:type-NEW_PAGE (2)] PASSED [ 54%] tests/test_section.py::DescribeSection::it_knows_its_start_type[w:sectPr/w:type{w:val=continuous}-CONTINUOUS (0)] PASSED [ 54%] tests/test_section.py::DescribeSection::it_knows_its_start_type[w:sectPr/w:type{w:val=nextPage}-NEW_PAGE (2)] PASSED [ 54%] tests/test_section.py::DescribeSection::it_knows_its_start_type[w:sectPr/w:type{w:val=oddPage}-ODD_PAGE (4)] PASSED [ 54%] tests/test_section.py::DescribeSection::it_knows_its_start_type[w:sectPr/w:type{w:val=evenPage}-EVEN_PAGE (3)] PASSED [ 54%] tests/test_section.py::DescribeSection::it_knows_its_start_type[w:sectPr/w:type{w:val=nextColumn}-NEW_COLUMN (1)] PASSED [ 54%] 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 [ 54%] tests/test_section.py::DescribeSection::it_can_change_its_start_type[w:sectPr/w:type{w:val=nextPage}-None-w:sectPr] PASSED [ 54%] tests/test_section.py::DescribeSection::it_can_change_its_start_type[w:sectPr-None-w:sectPr] PASSED [ 55%] tests/test_section.py::DescribeSection::it_can_change_its_start_type[w:sectPr/w:type{w:val=continuous}-NEW_PAGE (2)-w:sectPr] PASSED [ 55%] tests/test_section.py::DescribeSection::it_can_change_its_start_type[w:sectPr/w:type-NEW_PAGE (2)-w:sectPr] PASSED [ 55%] 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 [ 55%] tests/test_section.py::DescribeSection::it_knows_its_page_width[w:sectPr/w:pgSz{w:w=1440}-914400] PASSED [ 55%] tests/test_section.py::DescribeSection::it_knows_its_page_width[w:sectPr/w:pgSz-None] PASSED [ 55%] tests/test_section.py::DescribeSection::it_knows_its_page_width[w:sectPr-None] PASSED [ 55%] tests/test_section.py::DescribeSection::it_can_change_its_page_width[None-w:sectPr/w:pgSz] PASSED [ 55%] tests/test_section.py::DescribeSection::it_can_change_its_page_width[3657600-w:sectPr/w:pgSz{w:w=5760}] PASSED [ 55%] tests/test_section.py::DescribeSection::it_knows_its_page_height[w:sectPr/w:pgSz{w:h=2880}-1828800] PASSED [ 55%] tests/test_section.py::DescribeSection::it_knows_its_page_height[w:sectPr/w:pgSz-None] PASSED [ 55%] tests/test_section.py::DescribeSection::it_knows_its_page_height[w:sectPr-None] PASSED [ 55%] tests/test_section.py::DescribeSection::it_can_change_its_page_height[None-w:sectPr/w:pgSz] PASSED [ 55%] tests/test_section.py::DescribeSection::it_can_change_its_page_height[1828800-w:sectPr/w:pgSz{w:h=2880}] PASSED [ 55%] tests/test_section.py::DescribeSection::it_knows_its_page_orientation[w:sectPr/w:pgSz{w:orient=landscape}-LANDSCAPE (1)] PASSED [ 55%] tests/test_section.py::DescribeSection::it_knows_its_page_orientation[w:sectPr/w:pgSz{w:orient=portrait}-PORTRAIT (0)] PASSED [ 56%] tests/test_section.py::DescribeSection::it_knows_its_page_orientation[w:sectPr/w:pgSz-PORTRAIT (0)] PASSED [ 56%] tests/test_section.py::DescribeSection::it_knows_its_page_orientation[w:sectPr-PORTRAIT (0)] PASSED [ 56%] tests/test_section.py::DescribeSection::it_can_change_its_orientation[LANDSCAPE (1)-w:sectPr/w:pgSz{w:orient=landscape}] PASSED [ 56%] tests/test_section.py::DescribeSection::it_can_change_its_orientation[PORTRAIT (0)-w:sectPr/w:pgSz] PASSED [ 56%] tests/test_section.py::DescribeSection::it_can_change_its_orientation[None-w:sectPr/w:pgSz] PASSED [ 56%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar{w:left=120}-left_margin-76200] PASSED [ 56%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar{w:right=240}-right_margin-152400] PASSED [ 56%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar{w:top=-360}-top_margin--228600] PASSED [ 56%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar{w:bottom=480}-bottom_margin-304800] PASSED [ 56%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar{w:gutter=600}-gutter-381000] PASSED [ 56%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar{w:header=720}-header_distance-457200] PASSED [ 56%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar{w:footer=840}-footer_distance-533400] PASSED [ 56%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar-left_margin-None] PASSED [ 56%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr-top_margin-None] PASSED [ 56%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-left_margin-914400-w:sectPr/w:pgMar{w:left=1440}] PASSED [ 56%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-right_margin-457200-w:sectPr/w:pgMar{w:right=720}] PASSED [ 57%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-top_margin--228600-w:sectPr/w:pgMar{w:top=-360}] PASSED [ 57%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-bottom_margin-685800-w:sectPr/w:pgMar{w:bottom=1080}] PASSED [ 57%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-gutter-228600-w:sectPr/w:pgMar{w:gutter=360}] PASSED [ 57%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-header_distance-1143000-w:sectPr/w:pgMar{w:header=1800}] PASSED [ 57%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-footer_distance-1234440-w:sectPr/w:pgMar{w:footer=1944}] PASSED [ 57%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-left_margin-None-w:sectPr/w:pgMar] PASSED [ 57%] 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 [ 57%] tests/test_section.py::Describe_BaseHeaderFooter::it_knows_when_its_linked_to_the_previous_header_or_footer[False-True] PASSED [ 57%] tests/test_section.py::Describe_BaseHeaderFooter::it_knows_when_its_linked_to_the_previous_header_or_footer[True-False] PASSED [ 57%] tests/test_section.py::Describe_BaseHeaderFooter::it_can_change_whether_it_is_linked_to_previous_header_or_footer[False-True-0-0] PASSED [ 57%] tests/test_section.py::Describe_BaseHeaderFooter::it_can_change_whether_it_is_linked_to_previous_header_or_footer[True-False-0-0] PASSED [ 57%] tests/test_section.py::Describe_BaseHeaderFooter::it_can_change_whether_it_is_linked_to_previous_header_or_footer[True-True-1-0] PASSED [ 57%] tests/test_section.py::Describe_BaseHeaderFooter::it_can_change_whether_it_is_linked_to_previous_header_or_footer[False-False-0-1] PASSED [ 57%] tests/test_section.py::Describe_BaseHeaderFooter::it_provides_access_to_the_header_or_footer_part_for_BlockItemContainer PASSED [ 57%] tests/test_section.py::Describe_BaseHeaderFooter::it_provides_access_to_the_hdr_or_ftr_element_to_help PASSED [ 57%] tests/test_section.py::Describe_BaseHeaderFooter::it_gets_the_definition_when_it_has_one PASSED [ 58%] tests/test_section.py::Describe_BaseHeaderFooter::but_it_gets_the_prior_definition_when_it_is_linked PASSED [ 58%] tests/test_section.py::Describe_BaseHeaderFooter::and_it_adds_a_definition_when_it_is_linked_and_the_first_section PASSED [ 58%] tests/test_section.py::Describe_Footer::it_can_add_a_footer_part_to_help PASSED [ 58%] tests/test_section.py::Describe_Footer::it_provides_access_to_its_footer_part_to_help PASSED [ 58%] tests/test_section.py::Describe_Footer::it_can_drop_the_related_footer_part_to_help PASSED [ 58%] tests/test_section.py::Describe_Footer::it_knows_when_it_has_a_definition_to_help[w:sectPr-False] PASSED [ 58%] tests/test_section.py::Describe_Footer::it_knows_when_it_has_a_definition_to_help[w:sectPr/w:footerReference{w:type=default}-True] PASSED [ 58%] tests/test_section.py::Describe_Footer::it_provides_access_to_the_prior_Footer_to_help PASSED [ 58%] tests/test_section.py::Describe_Footer::but_it_returns_None_when_its_the_first_footer PASSED [ 58%] tests/test_section.py::Describe_Header::it_can_add_a_header_part_to_help PASSED [ 58%] tests/test_section.py::Describe_Header::it_provides_access_to_its_header_part_to_help PASSED [ 58%] tests/test_section.py::Describe_Header::it_can_drop_the_related_header_part_to_help PASSED [ 58%] tests/test_section.py::Describe_Header::it_knows_when_it_has_a_header_part_to_help[w:sectPr-False] PASSED [ 58%] 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 [ 58%] tests/test_section.py::Describe_Header::it_provides_access_to_the_prior_Header_to_help PASSED [ 59%] tests/test_section.py::Describe_Header::but_it_returns_None_when_its_the_first_header PASSED [ 59%] tests/test_settings.py::DescribeSettings::it_knows_when_the_document_has_distinct_odd_and_even_headers[odd_and_even_get_fixture0] PASSED [ 59%] tests/test_settings.py::DescribeSettings::it_knows_when_the_document_has_distinct_odd_and_even_headers[odd_and_even_get_fixture1] PASSED [ 59%] tests/test_settings.py::DescribeSettings::it_knows_when_the_document_has_distinct_odd_and_even_headers[odd_and_even_get_fixture2] PASSED [ 59%] tests/test_settings.py::DescribeSettings::it_knows_when_the_document_has_distinct_odd_and_even_headers[odd_and_even_get_fixture3] PASSED [ 59%] tests/test_settings.py::DescribeSettings::it_knows_when_the_document_has_distinct_odd_and_even_headers[odd_and_even_get_fixture4] PASSED [ 59%] tests/test_settings.py::DescribeSettings::it_can_change_whether_the_document_has_distinct_odd_and_even_headers[odd_and_even_set_fixture0] PASSED [ 59%] tests/test_settings.py::DescribeSettings::it_can_change_whether_the_document_has_distinct_odd_and_even_headers[odd_and_even_set_fixture1] PASSED [ 59%] tests/test_settings.py::DescribeSettings::it_can_change_whether_the_document_has_distinct_odd_and_even_headers[odd_and_even_set_fixture2] PASSED [ 59%] tests/test_settings.py::DescribeSettings::it_can_change_whether_the_document_has_distinct_odd_and_even_headers[odd_and_even_set_fixture3] PASSED [ 59%] tests/test_shape.py::DescribeInlineShapes::it_knows_how_many_inline_shapes_it_contains PASSED [ 59%] tests/test_shape.py::DescribeInlineShapes::it_can_iterate_over_its_InlineShape_instances PASSED [ 59%] tests/test_shape.py::DescribeInlineShapes::it_provides_indexed_access_to_inline_shapes PASSED [ 59%] tests/test_shape.py::DescribeInlineShapes::it_raises_on_indexed_access_out_of_range PASSED [ 59%] tests/test_shape.py::DescribeInlineShapes::it_knows_the_part_it_belongs_to PASSED [ 59%] tests/test_shape.py::DescribeInlineShape::it_knows_what_type_of_shape_it_is[embed pic] PASSED [ 60%] tests/test_shape.py::DescribeInlineShape::it_knows_what_type_of_shape_it_is[link pic] PASSED [ 60%] tests/test_shape.py::DescribeInlineShape::it_knows_what_type_of_shape_it_is[link+embed pic] PASSED [ 60%] tests/test_shape.py::DescribeInlineShape::it_knows_what_type_of_shape_it_is[chart] PASSED [ 60%] tests/test_shape.py::DescribeInlineShape::it_knows_what_type_of_shape_it_is[smart art] PASSED [ 60%] tests/test_shape.py::DescribeInlineShape::it_knows_what_type_of_shape_it_is[not implemented] PASSED [ 60%] tests/test_shape.py::DescribeInlineShape::it_knows_its_display_dimensions PASSED [ 60%] tests/test_shape.py::DescribeInlineShape::it_can_change_its_display_dimensions PASSED [ 60%] tests/test_shared.py::DescribeElementProxy::it_knows_when_its_equal_to_another_proxy_object PASSED [ 60%] tests/test_shared.py::DescribeElementProxy::it_knows_its_element PASSED [ 60%] tests/test_shared.py::DescribeElementProxy::it_knows_its_part PASSED [ 60%] tests/test_shared.py::DescribeLength::it_can_construct_from_convenient_units[construct_fixture0] PASSED [ 60%] tests/test_shared.py::DescribeLength::it_can_construct_from_convenient_units[construct_fixture1] PASSED [ 60%] tests/test_shared.py::DescribeLength::it_can_construct_from_convenient_units[construct_fixture2] PASSED [ 60%] tests/test_shared.py::DescribeLength::it_can_construct_from_convenient_units[construct_fixture3] PASSED [ 60%] tests/test_shared.py::DescribeLength::it_can_construct_from_convenient_units[construct_fixture4] PASSED [ 60%] tests/test_shared.py::DescribeLength::it_can_construct_from_convenient_units[construct_fixture5] PASSED [ 61%] tests/test_shared.py::DescribeLength::it_can_construct_from_convenient_units[construct_fixture6] PASSED [ 61%] tests/test_shared.py::DescribeLength::it_can_self_convert_to_convenient_units[units_fixture0] PASSED [ 61%] tests/test_shared.py::DescribeLength::it_can_self_convert_to_convenient_units[units_fixture1] PASSED [ 61%] tests/test_shared.py::DescribeLength::it_can_self_convert_to_convenient_units[units_fixture2] PASSED [ 61%] tests/test_shared.py::DescribeLength::it_can_self_convert_to_convenient_units[units_fixture3] PASSED [ 61%] tests/test_shared.py::DescribeLength::it_can_self_convert_to_convenient_units[units_fixture4] PASSED [ 61%] tests/test_shared.py::DescribeLength::it_can_self_convert_to_convenient_units[units_fixture5] PASSED [ 61%] tests/test_shared.py::DescribeRGBColor::it_is_natively_constructed_using_three_ints_0_to_255 PASSED [ 61%] tests/test_shared.py::DescribeRGBColor::it_can_construct_from_a_hex_string_rgb_value PASSED [ 61%] tests/test_shared.py::DescribeRGBColor::it_can_provide_a_hex_string_rgb_value PASSED [ 61%] tests/test_shared.py::DescribeRGBColor::it_has_a_custom_repr PASSED [ 61%] tests/test_table.py::DescribeTable::it_can_add_a_row PASSED [ 61%] tests/test_table.py::DescribeTable::it_can_add_a_column PASSED [ 61%] tests/test_table.py::DescribeTable::it_provides_access_to_a_cell_by_row_and_col_indices PASSED [ 61%] tests/test_table.py::DescribeTable::it_provides_access_to_the_table_rows PASSED [ 62%] tests/test_table.py::DescribeTable::it_provides_access_to_the_table_columns PASSED [ 62%] tests/test_table.py::DescribeTable::it_provides_access_to_the_cells_in_a_column PASSED [ 62%] tests/test_table.py::DescribeTable::it_provides_access_to_the_cells_in_a_row PASSED [ 62%] tests/test_table.py::DescribeTable::it_knows_its_alignment_setting[w:tbl/w:tblPr-None] PASSED [ 62%] tests/test_table.py::DescribeTable::it_knows_its_alignment_setting[w:tbl/w:tblPr/w:jc{w:val=center}-CENTER (1)] PASSED [ 62%] tests/test_table.py::DescribeTable::it_knows_its_alignment_setting[w:tbl/w:tblPr/w:jc{w:val=right}-RIGHT (2)] PASSED [ 62%] tests/test_table.py::DescribeTable::it_knows_its_alignment_setting[w:tbl/w:tblPr/w:jc{w:val=left}-LEFT (0)] PASSED [ 62%] 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 [ 62%] 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 [ 62%] 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 [ 62%] tests/test_table.py::DescribeTable::it_knows_whether_it_should_autofit[w:tbl/w:tblPr-True] PASSED [ 62%] tests/test_table.py::DescribeTable::it_knows_whether_it_should_autofit[w:tbl/w:tblPr/w:tblLayout-True] PASSED [ 62%] tests/test_table.py::DescribeTable::it_knows_whether_it_should_autofit[w:tbl/w:tblPr/w:tblLayout{w:type=autofit}-True] PASSED [ 62%] tests/test_table.py::DescribeTable::it_knows_whether_it_should_autofit[w:tbl/w:tblPr/w:tblLayout{w:type=fixed}-False] PASSED [ 62%] 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 [ 62%] 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 [ 63%] 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 [ 63%] 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 [ 63%] tests/test_table.py::DescribeTable::it_knows_it_is_the_table_its_children_belong_to PASSED [ 63%] tests/test_table.py::DescribeTable::it_knows_its_direction[w:tbl/w:tblPr-None] PASSED [ 63%] tests/test_table.py::DescribeTable::it_knows_its_direction[w:tbl/w:tblPr/w:bidiVisual-RTL (1)] PASSED [ 63%] tests/test_table.py::DescribeTable::it_knows_its_direction[w:tbl/w:tblPr/w:bidiVisual{w:val=0}-LTR (0)] PASSED [ 63%] tests/test_table.py::DescribeTable::it_knows_its_direction[w:tbl/w:tblPr/w:bidiVisual{w:val=on}-RTL (1)] PASSED [ 63%] tests/test_table.py::DescribeTable::it_can_change_its_direction[w:tbl/w:tblPr-RTL (1)-w:tbl/w:tblPr/w:bidiVisual] PASSED [ 63%] 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 [ 63%] 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 [ 63%] 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 [ 63%] tests/test_table.py::DescribeTable::it_knows_its_table_style PASSED [ 63%] 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 [ 63%] 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 [ 63%] 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 [ 63%] tests/test_table.py::DescribeTable::it_provides_access_to_its_cells_to_help[0-9-9-matches0] PASSED [ 64%] tests/test_table.py::DescribeTable::it_provides_access_to_its_cells_to_help[1-9-8-matches1] PASSED [ 64%] tests/test_table.py::DescribeTable::it_provides_access_to_its_cells_to_help[2-9-8-matches2] PASSED [ 64%] tests/test_table.py::DescribeTable::it_provides_access_to_its_cells_to_help[3-9-6-matches3] PASSED [ 64%] tests/test_table.py::DescribeTable::it_provides_access_to_its_cells_to_help[4-9-4-matches4] PASSED [ 64%] tests/test_table.py::DescribeTable::it_knows_its_column_count_to_help PASSED [ 64%] tests/test_table.py::Describe_Cell::it_knows_its_grid_span[w:tc-1] PASSED [ 64%] tests/test_table.py::Describe_Cell::it_knows_its_grid_span[w:tc/w:tcPr-1] PASSED [ 64%] tests/test_table.py::Describe_Cell::it_knows_its_grid_span[w:tc/w:tcPr/w:gridSpan{w:val=1}-1] PASSED [ 64%] tests/test_table.py::Describe_Cell::it_knows_its_grid_span[w:tc/w:tcPr/w:gridSpan{w:val=4}-4] PASSED [ 64%] tests/test_table.py::Describe_Cell::it_knows_what_text_it_contains[w:tc-] PASSED [ 64%] tests/test_table.py::Describe_Cell::it_knows_what_text_it_contains[w:tc/w:p/w:r/w:t"foobar"-foobar] PASSED [ 64%] 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 [ 64%] 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 [ 64%] 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 [ 64%] 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 [ 65%] 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 [ 65%] 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 [ 65%] tests/test_table.py::Describe_Cell::it_knows_its_vertical_alignment[w:tc-None] PASSED [ 65%] tests/test_table.py::Describe_Cell::it_knows_its_vertical_alignment[w:tc/w:tcPr-None] PASSED [ 65%] tests/test_table.py::Describe_Cell::it_knows_its_vertical_alignment[w:tc/w:tcPr/w:vAlign{w:val=bottom}-BOTTOM (3)] PASSED [ 65%] tests/test_table.py::Describe_Cell::it_knows_its_vertical_alignment[w:tc/w:tcPr/w:vAlign{w:val=top}-TOP (0)] PASSED [ 65%] 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 [ 65%] 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 [ 65%] 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 [ 65%] 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 [ 65%] tests/test_table.py::Describe_Cell::it_can_change_its_vertical_alignment[w:tc-None-w:tc/w:tcPr] PASSED [ 65%] tests/test_table.py::Describe_Cell::it_can_change_its_vertical_alignment[w:tc/w:tcPr-None-w:tc/w:tcPr] PASSED [ 65%] tests/test_table.py::Describe_Cell::it_knows_its_width_in_EMU[w:tc-None] PASSED [ 65%] tests/test_table.py::Describe_Cell::it_knows_its_width_in_EMU[w:tc/w:tcPr-None] PASSED [ 65%] 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 [ 65%] 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 [ 66%] 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 [ 66%] 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 [ 66%] tests/test_table.py::Describe_Cell::it_provides_access_to_the_paragraphs_it_contains PASSED [ 66%] tests/test_table.py::Describe_Cell::it_provides_access_to_the_tables_it_contains[w:tc-0] PASSED [ 66%] tests/test_table.py::Describe_Cell::it_provides_access_to_the_tables_it_contains[w:tc/w:tbl-1] PASSED [ 66%] tests/test_table.py::Describe_Cell::it_provides_access_to_the_tables_it_contains[w:tc/(w:tbl,w:tbl)-2] PASSED [ 66%] tests/test_table.py::Describe_Cell::it_provides_access_to_the_tables_it_contains[w:tc/(w:p,w:tbl)-1] PASSED [ 66%] tests/test_table.py::Describe_Cell::it_provides_access_to_the_tables_it_contains[w:tc/(w:tbl,w:tbl,w:p)-2] PASSED [ 66%] tests/test_table.py::Describe_Cell::it_can_add_a_paragraph[w:tc-w:tc/w:p] PASSED [ 66%] tests/test_table.py::Describe_Cell::it_can_add_a_paragraph[w:tc/w:p-w:tc/(w:p, w:p)] PASSED [ 66%] tests/test_table.py::Describe_Cell::it_can_add_a_paragraph[w:tc/w:tbl-w:tc/(w:tbl, w:p)] PASSED [ 66%] tests/test_table.py::Describe_Cell::it_can_add_a_table PASSED [ 66%] tests/test_table.py::Describe_Cell::it_can_merge_itself_with_other_cells PASSED [ 66%] tests/test_table.py::Describe_Column::it_provides_access_to_its_cells PASSED [ 66%] tests/test_table.py::Describe_Column::it_provides_access_to_the_table_it_belongs_to PASSED [ 66%] tests/test_table.py::Describe_Column::it_knows_its_width_in_EMU[w:gridCol{w:w=4242}-2693670] PASSED [ 67%] tests/test_table.py::Describe_Column::it_knows_its_width_in_EMU[w:gridCol{w:w=1440}-914400] PASSED [ 67%] tests/test_table.py::Describe_Column::it_knows_its_width_in_EMU[w:gridCol{w:w=2.54cm}-914400] PASSED [ 67%] tests/test_table.py::Describe_Column::it_knows_its_width_in_EMU[w:gridCol{w:w=54mm}-1944000] PASSED [ 67%] tests/test_table.py::Describe_Column::it_knows_its_width_in_EMU[w:gridCol{w:w=12.5pt}-158750] PASSED [ 67%] tests/test_table.py::Describe_Column::it_knows_its_width_in_EMU[w:gridCol-None] PASSED [ 67%] tests/test_table.py::Describe_Column::it_can_change_its_width[w:gridCol-914400-w:gridCol{w:w=1440}] PASSED [ 67%] tests/test_table.py::Describe_Column::it_can_change_its_width[w:gridCol{w:w=4242}-457200-w:gridCol{w:w=720}] PASSED [ 67%] tests/test_table.py::Describe_Column::it_can_change_its_width[w:gridCol{w:w=4242}-None-w:gridCol] PASSED [ 67%] tests/test_table.py::Describe_Column::it_can_change_its_width[w:gridCol-None-w:gridCol] PASSED [ 67%] tests/test_table.py::Describe_Column::it_knows_its_index_in_table_to_help PASSED [ 67%] tests/test_table.py::Describe_Columns::it_has_sequence_behaviors PASSED [ 67%] tests/test_table.py::Describe_Columns::it_raises_on_indexed_access_out_of_range PASSED [ 67%] tests/test_table.py::Describe_Columns::it_provides_access_to_the_table_it_belongs_to PASSED [ 67%] tests/test_table.py::Describe_Row::it_knows_its_grid_cols_after[w:tr-0] PASSED [ 67%] tests/test_table.py::Describe_Row::it_knows_its_grid_cols_after[w:tr/w:trPr-0] PASSED [ 68%] tests/test_table.py::Describe_Row::it_knows_its_grid_cols_after[w:tr/w:trPr/w:gridAfter{w:val=0}-0] PASSED [ 68%] tests/test_table.py::Describe_Row::it_knows_its_grid_cols_after[w:tr/w:trPr/w:gridAfter{w:val=4}-4] PASSED [ 68%] tests/test_table.py::Describe_Row::it_knows_its_grid_cols_before[w:tr-0] PASSED [ 68%] tests/test_table.py::Describe_Row::it_knows_its_grid_cols_before[w:tr/w:trPr-0] PASSED [ 68%] tests/test_table.py::Describe_Row::it_knows_its_grid_cols_before[w:tr/w:trPr/w:gridBefore{w:val=0}-0] PASSED [ 68%] tests/test_table.py::Describe_Row::it_knows_its_grid_cols_before[w:tr/w:trPr/w:gridBefore{w:val=3}-3] PASSED [ 68%] tests/test_table.py::Describe_Row::it_knows_its_height[w:tr-None] PASSED [ 68%] tests/test_table.py::Describe_Row::it_knows_its_height[w:tr/w:trPr-None] PASSED [ 68%] tests/test_table.py::Describe_Row::it_knows_its_height[w:tr/w:trPr/w:trHeight-None] PASSED [ 68%] tests/test_table.py::Describe_Row::it_knows_its_height[w:tr/w:trPr/w:trHeight{w:val=0}-0] PASSED [ 68%] tests/test_table.py::Describe_Row::it_knows_its_height[w:tr/w:trPr/w:trHeight{w:val=1440}-914400] PASSED [ 68%] tests/test_table.py::Describe_Row::it_can_change_its_height[w:tr-914400-w:tr/w:trPr/w:trHeight{w:val=1440}] PASSED [ 68%] 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 [ 68%] 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 [ 68%] 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 [ 68%] 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 [ 69%] tests/test_table.py::Describe_Row::it_can_change_its_height[w:tr-None-w:tr/w:trPr] PASSED [ 69%] tests/test_table.py::Describe_Row::it_can_change_its_height[w:tr/w:trPr-None-w:tr/w:trPr] PASSED [ 69%] 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 [ 69%] tests/test_table.py::Describe_Row::it_knows_its_height_rule[w:tr-None] PASSED [ 69%] tests/test_table.py::Describe_Row::it_knows_its_height_rule[w:tr/w:trPr-None] PASSED [ 69%] 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 [ 69%] 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 [ 69%] 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 [ 69%] 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 [ 69%] 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 [ 69%] 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 [ 69%] 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 [ 69%] 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 [ 69%] tests/test_table.py::Describe_Row::it_can_change_its_height_rule[w:tr-None-w:tr/w:trPr] PASSED [ 69%] tests/test_table.py::Describe_Row::it_can_change_its_height_rule[w:tr/w:trPr-None-w:tr/w:trPr] PASSED [ 69%] 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 [ 70%] tests/test_table.py::Describe_Row::it_provides_access_to_its_cells[w:tbl/w:tr/w:tc/w:p-0-1] PASSED [ 70%] 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 [ 70%] 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 [ 70%] 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 [ 70%] tests/test_table.py::Describe_Row::it_provides_access_to_the_table_it_belongs_to PASSED [ 70%] tests/test_table.py::Describe_Row::it_knows_its_index_in_table_to_help PASSED [ 70%] tests/test_table.py::Describe_Rows::it_has_sequence_behaviors[w:tbl-0] PASSED [ 70%] tests/test_table.py::Describe_Rows::it_has_sequence_behaviors[w:tbl/w:tr-1] PASSED [ 70%] tests/test_table.py::Describe_Rows::it_has_sequence_behaviors[w:tbl/(w:tr,w:tr)-2] PASSED [ 70%] tests/test_table.py::Describe_Rows::it_has_sequence_behaviors[w:tbl/(w:tr,w:tr,w:tr)-3] PASSED [ 70%] tests/test_table.py::Describe_Rows::it_raises_on_indexed_access_out_of_range[w:tbl-0] PASSED [ 70%] tests/test_table.py::Describe_Rows::it_raises_on_indexed_access_out_of_range[w:tbl-1] PASSED [ 70%] tests/test_table.py::Describe_Rows::it_raises_on_indexed_access_out_of_range[w:tbl--1] PASSED [ 70%] tests/test_table.py::Describe_Rows::it_raises_on_indexed_access_out_of_range[w:tbl/w:tr-1] PASSED [ 70%] tests/test_table.py::Describe_Rows::it_raises_on_indexed_access_out_of_range[w:tbl/w:tr--2] PASSED [ 71%] tests/test_table.py::Describe_Rows::it_raises_on_indexed_access_out_of_range[w:tbl/(w:tr,w:tr,w:tr)-3] PASSED [ 71%] tests/test_table.py::Describe_Rows::it_raises_on_indexed_access_out_of_range[w:tbl/(w:tr,w:tr,w:tr)--4] PASSED [ 71%] tests/test_table.py::Describe_Rows::it_provides_sliced_access_to_rows[1-3-2] PASSED [ 71%] tests/test_table.py::Describe_Rows::it_provides_sliced_access_to_rows[0--1-2] PASSED [ 71%] tests/test_table.py::Describe_Rows::it_provides_access_to_the_table_it_belongs_to 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 10.02s ============================= + 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 -mbranch-protection=standard -fasynchronous-unwind-tables -fstack-clash-protection -fno-omit-frame-pointer -mno-omit-leaf-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + PATH=/builddir/build/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=12 + /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.000s When I call docx.Document() with the path of a .docx file ... passed in 0.003s Then document is a Document object ... passed in 0.000s Scenario: Open the default document Given I have python-docx installed ... passed in 0.000s When I call docx.Document() with no arguments ... passed in 0.011s Then document is a Document object ... passed in 0.000s Feature: Add a paragraph of text Scenario: Add a paragraph using low-level text API Given a document ... passed in 0.012s When I add a paragraph ... passed in 0.000s And I add a run to the paragraph ... passed in 0.000s And I add text to the run ... passed in 0.000s And I save the document ... passed in 0.011s Then the document contains the text I added ... passed in 0.011s Feature: Add a table Scenario: Access a table Given a document containing a table ... passed in 0.002s Then I can access the table ... passed in 0.000s Scenario: Add a table Given a document ... passed in 0.019s When I add a table ... passed in 0.001s Then the new table appears in the document ... passed in 0.000s Feature: Iterate paragraphs and tables in document-order Scenario: Document.iter_inner_content() Given a Document object with paragraphs and tables ... passed in 0.002s Then document.iter_inner_content() produces the block-items in document order ... passed in 0.000s Scenario: Header.iter_inner_content() Given a Header object with paragraphs and tables ... passed in 0.002s Then header.iter_inner_content() produces the block-items in document order ... passed in 0.000s Scenario: Footer.iter_inner_content() Given a Footer object with paragraphs and tables ... passed in 0.002s Then footer.iter_inner_content() produces the block-items in document order ... passed in 0.000s Scenario: _Cell.iter_inner_content() Given a _Cell object with paragraphs and tables ... passed in 0.003s Then cell.iter_inner_content() produces the block-items in document order ... passed in 0.000s Feature: Access document collections Scenario: Access the inline shapes collection of a document Given a document having inline shapes ... passed in 0.003s Then document.inline_shapes is an InlineShapes object ... passed in 0.000s Scenario: Access the paragraphs in the document body as a list Given a document containing three paragraphs ... passed in 0.010s Then document.paragraphs is a list containing three paragraphs ... passed in 0.000s Scenario: Access the section collection of a document Given a document having sections ... passed in 0.002s Then document.sections is a Sections object ... passed in 0.000s Scenario: Access the styles collection of a document Given a document having styles ... passed in 0.002s Then document.styles is a Styles object ... passed in 0.000s Scenario: Access the tables collection of a document Given a document having three tables ... passed in 0.002s Then document.tables is a list containing three tables ... passed in 0.000s Feature: Access document sections Scenario: Access section in section collection Given a section collection containing 3 sections ... passed in 0.002s Then len(sections) is 3 ... passed in 0.000s And I can iterate over the sections ... passed in 0.000s And I can access a section by index ... passed in 0.000s Feature: Add a heading paragraph Scenario: Add a heading specifying only its text Given a document having built-in styles ... passed in 0.012s When I add a heading specifying only its text ... passed in 0.002s Then the style of the last paragraph is 'Heading 1' ... passed in 0.001s And the last paragraph contains the heading text ... passed in 0.000s Scenario Outline: Add a heading specifying level -- @1.1 Heading level styles Given a document having built-in styles ... passed in 0.012s When I add a heading specifying level=0 ... passed in 0.002s Then the style of the last paragraph is 'Title' ... passed in 0.000s Scenario Outline: Add a heading specifying level -- @1.2 Heading level styles Given a document having built-in styles ... passed in 0.011s When I add a heading specifying level=1 ... passed in 0.002s Then the style of the last paragraph is 'Heading 1' ... passed in 0.000s Scenario Outline: Add a heading specifying level -- @1.3 Heading level styles Given a document having built-in styles ... passed in 0.012s When I add a heading specifying level=2 ... passed in 0.018s Then the style of the last paragraph is 'Heading 2' ... passed in 0.000s Scenario Outline: Add a heading specifying level -- @1.4 Heading level styles Given a document having built-in styles ... passed in 0.009s When I add a heading specifying level=5 ... passed in 0.002s Then the style of the last paragraph is 'Heading 5' ... passed in 0.000s Scenario Outline: Add a heading specifying level -- @1.5 Heading level styles Given a document having built-in styles ... passed in 0.009s When I add a heading specifying level=9 ... passed in 0.002s Then the style of the last paragraph is 'Heading 9' ... passed in 0.000s Feature: Add a page break Scenario: Add a hard page break paragraph Given a blank document ... passed in 0.002s When I add a page break to the document ... passed in 0.000s Then the last paragraph contains only a page break ... passed in 0.000s Feature: Add a paragraph with optional text and style Scenario: Add an empty paragraph Given a blank document ... passed in 0.002s When I add a paragraph without specifying text or style ... passed in 0.000s Then the last paragraph is the empty paragraph I added ... passed in 0.000s Scenario: Add a paragraph specifying its text Given a blank document ... passed in 0.002s When I add a paragraph specifying its text ... passed in 0.000s Then the last paragraph contains the text I specified ... passed in 0.000s Scenario Outline: Add a paragraph specifying its style -- @1.1 ways of specifying a style Given a document ... passed in 0.009s When I add a paragraph specifying its style as a style object ... passed in 0.002s Then the last paragraph has the style I specified ... passed in 0.000s Scenario Outline: Add a paragraph specifying its style -- @1.2 ways of specifying a style Given a document ... passed in 0.009s When I add a paragraph specifying its style as a style name ... passed in 0.002s Then the last paragraph has the style I specified ... passed in 0.000s Feature: Append an inline picture in its own paragraph Scenario: Add a picture at native size Given a blank document ... passed in 0.002s When I add a picture specifying only the image file ... passed in 0.001s Then the document contains the inline picture ... passed in 0.000s And the picture has its native width and height ... passed in 0.000s Scenario: Add a picture specifying both width and height Given a blank document ... passed in 0.002s When I add a picture specifying 1.75" width and 2.5" height ... passed in 0.001s Then picture.width is 1.75 inches ... passed in 0.000s And picture.height is 2.5 inches ... passed in 0.000s Scenario: Add a picture specifying only width Given a blank document ... passed in 0.002s When I add a picture specifying a width of 1.5 inches ... passed in 0.001s Then picture.height is 2.14 inches ... passed in 0.000s Scenario: Add a picture specifying only height Given a blank document ... passed in 0.002s When I add a picture specifying a height of 1.5 inches ... passed in 0.001s Then picture.width is 1.05 inches ... passed in 0.000s 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.003s When I add an even-page section to the document ... passed in 0.000s And I change the new section layout to landscape ... passed in 0.000s Then the document has two sections ... passed in 0.000s And the first section is portrait ... passed in 0.000s And the second section is landscape ... passed in 0.000s 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.003s When I execute section = document.add_section() ... passed in 0.000s Then section.header.is_linked_to_previous is True ... passed in 0.000s And section.even_page_header.is_linked_to_previous is True ... passed in 0.000s And section.first_page_header.is_linked_to_previous is True ... passed in 0.000s And section.footer.is_linked_to_previous is True ... passed in 0.000s And section.even_page_footer.is_linked_to_previous is True ... passed in 0.000s And section.first_page_footer.is_linked_to_previous is True ... passed in 0.000s Feature: Add a table Scenario: Add a table specifying only row and column count Given a blank document ... passed in 0.002s When I add a 2 x 2 table specifying only row and column count ... passed in 0.000s Then the document contains a 2 x 2 table ... passed in 0.000s And table.style is styles['Normal Table'] ... passed in 0.000s And the width of each column is 3.0 inches ... passed in 0.000s And the width of each cell is 3.0 inches ... passed in 0.000s Scenario: Add a table specifying style Given a document having built-in styles ... passed in 0.009s When I add a 2 x 2 table specifying style 'Table Grid' ... passed in 0.002s Then the document contains a 2 x 2 table ... passed in 0.000s And table.style is styles['Table Grid'] ... passed in 0.001s 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.002s Then I can access the core properties object ... passed in 0.000s And the core property values match the known values ... passed in 0.021s Scenario: change the core properties of a document Given a document having known core properties ... passed in 0.002s When I assign new values to the properties ... passed in 0.000s Then the core property values match the new values ... passed in 0.000s 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.002s When I access the core properties object ... passed in 0.000s Then a core properties part with default values is added ... passed in 0.000s 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.002s Then document.settings is a Settings object ... passed in 0.000s Scenario Outline: Access document settings -- @1.2 having a settings part or not Given a document having no settings part ... passed in 0.002s Then document.settings is a Settings object ... passed in 0.000s 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.003s Then settings.odd_and_even_pages_header_footer is True ... passed in 0.000s 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.002s Then settings.odd_and_even_pages_header_footer is False ... passed in 0.000s 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.003s When I assign True to settings.odd_and_even_pages_header_footer ... passed in 0.000s Then settings.odd_and_even_pages_header_footer is True ... passed in 0.000s 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.003s When I assign False to settings.odd_and_even_pages_header_footer ... passed in 0.000s Then settings.odd_and_even_pages_header_footer is False ... passed in 0.000s 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.002s When I assign True to settings.odd_and_even_pages_header_footer ... passed in 0.000s Then settings.odd_and_even_pages_header_footer is True ... passed in 0.000s 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.002s When I assign False to settings.odd_and_even_pages_header_footer ... passed in 0.000s Then settings.odd_and_even_pages_header_footer is False ... passed in 0.000s 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.002s Then len(styles) is 6 ... passed in 0.000s And I can iterate over its styles ... passed in 0.000s And I can access a style by style id ... passed in 0.000s And I can access a style by its UI name ... passed in 0.000s Scenario Outline: Access style in style collection -- @1.2 having styles or not Given a document having no styles part ... passed in 0.002s Then len(styles) is 4 ... passed in 0.000s And I can iterate over its styles ... passed in 0.000s And I can access a style by style id ... passed in 0.000s And I can access a style by its UI name ... passed in 0.000s 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.003s Then header.is_linked_to_previous is False ... passed in 0.000s 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.007s Then header.is_linked_to_previous is True ... passed in 0.000s 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.003s When I assign True to header.is_linked_to_previous ... passed in 0.000s Then header.is_linked_to_previous is True ... passed in 0.000s 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.003s When I assign False to header.is_linked_to_previous ... passed in 0.001s Then header.is_linked_to_previous is False ... passed in 0.000s 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.003s When I assign False to header.is_linked_to_previous ... passed in 0.000s Then header.is_linked_to_previous is False ... passed in 0.000s 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.003s When I assign True to header.is_linked_to_previous ... passed in 0.000s Then header.is_linked_to_previous is True ... passed in 0.000s Scenario: _Header inherits content Given a _Header object with a header definition as header ... passed in 0.003s And the next _Header object with no header definition as header_2 ... passed in 0.000s Then header_2.paragraphs[0].text == header.paragraphs[0].text ... passed in 0.000s And header_2.is_linked_to_previous is True ... passed in 0.000s Scenario: _Header text accepts style assignment Given a _Header object with a header definition as header ... passed in 0.003s When I assign "Normal" to header.paragraphs[0].style ... passed in 0.001s Then header.paragraphs[0].style.name == "Normal" ... passed in 0.000s Scenario: _Header allows image insertion Given a _Run object from a header as run ... passed in 0.003s When I call run.add_picture() ... passed in 0.001s Then I can't detect the image but no exception is raised ... passed in 0.000s 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.003s Then footer.is_linked_to_previous is False ... passed in 0.000s 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.003s Then footer.is_linked_to_previous is True ... passed in 0.000s 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.003s When I assign True to footer.is_linked_to_previous ... passed in 0.000s Then footer.is_linked_to_previous is True ... passed in 0.000s 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.007s When I assign False to footer.is_linked_to_previous ... passed in 0.001s Then footer.is_linked_to_previous is False ... passed in 0.000s 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.003s When I assign False to footer.is_linked_to_previous ... passed in 0.000s Then footer.is_linked_to_previous is False ... passed in 0.000s 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.003s When I assign True to footer.is_linked_to_previous ... passed in 0.000s Then footer.is_linked_to_previous is True ... passed in 0.000s Scenario: _Footer inherits content Given a _Footer object with a footer definition as footer ... passed in 0.003s And the next _Footer object with no footer definition as footer_2 ... passed in 0.000s Then footer_2.paragraphs[0].text == footer.paragraphs[0].text ... passed in 0.001s And footer_2.is_linked_to_previous is True ... passed in 0.000s Scenario: _Footer text accepts style assignment Given a _Footer object with a footer definition as footer ... passed in 0.003s When I assign "Normal" to footer.paragraphs[0].style ... passed in 0.001s Then footer.paragraphs[0].style.name == "Normal" ... passed in 0.000s Scenario: _Footer allows image insertion Given a _Run object from a footer as run ... passed in 0.003s When I call run.add_picture() ... passed in 0.001s Then I can't detect the image but no exception is raised ... passed in 0.000s Feature: Access hyperlink properties Scenario: Hyperlink.address has the URL of the hyperlink Given a hyperlink ... passed in 0.002s Then hyperlink.address is the URL of the hyperlink ... passed in 0.000s 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.002s Then hyperlink.contains_page_break is False ... passed in 0.000s 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.002s Then hyperlink.contains_page_break is True ... passed in 0.000s Scenario: Hyperlink.fragment has the URI fragment of the hyperlink Given a hyperlink having a URI fragment ... passed in 0.002s Then hyperlink.fragment is the URI fragment of the hyperlink ... passed in 0.000s 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.002s Then hyperlink.runs has length 1 ... passed in 0.000s And hyperlink.runs contains only Run instances ... passed in 0.000s 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.002s Then hyperlink.runs has length 2 ... passed in 0.000s And hyperlink.runs contains only Run instances ... passed in 0.000s Scenario: Hyperlink.text has the visible text of the hyperlink Given a hyperlink ... passed in 0.002s Then hyperlink.text is the visible text of the hyperlink ... passed in 0.000s 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.002s Then hyperlink.url is '' ... passed in 0.000s 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.002s Then hyperlink.url is https://foo.com ... passed in 0.000s 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.002s Then hyperlink.url is https://foo.com?q=bar ... passed in 0.000s 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.002s Then hyperlink.url is http://foo.com/#intro ... passed in 0.000s 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.002s Then hyperlink.url is https://foo.com?q=bar#baz ... passed in 0.000s 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.008s Then hyperlink.url is court-exif.jpg ... passed in 0.000s 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.000s When I construct an image using the image path ... passed in 0.000s Then the image has content type 'image/png' ... passed in 0.000s And the image is 901 pixels wide ... passed in 0.000s And the image is 1350 pixels high ... passed in 0.000s And the image has 150 horizontal dpi ... passed in 0.000s And the image has 150 vertical dpi ... passed in 0.000s Scenario Outline: Characterize an image file -- @1.2 Image file characteristics Given the image file 'monty-truth.png' ... passed in 0.000s When I construct an image using the image path ... passed in 0.000s Then the image has content type 'image/png' ... passed in 0.000s And the image is 150 pixels wide ... passed in 0.000s And the image is 214 pixels high ... passed in 0.000s And the image has 72 horizontal dpi ... passed in 0.000s And the image has 72 vertical dpi ... passed in 0.000s Scenario Outline: Characterize an image file -- @1.3 Image file characteristics Given the image file 'jfif-300-dpi.jpg' ... passed in 0.000s When I construct an image using the image path ... passed in 0.001s Then the image has content type 'image/jpeg' ... passed in 0.000s And the image is 1504 pixels wide ... passed in 0.000s And the image is 1936 pixels high ... passed in 0.000s And the image has 300 horizontal dpi ... passed in 0.000s And the image has 300 vertical dpi ... passed in 0.000s Scenario Outline: Characterize an image file -- @1.4 Image file characteristics Given the image file 'lena_std.jpg' ... passed in 0.000s When I construct an image using the image path ... passed in 0.000s Then the image has content type 'image/jpeg' ... passed in 0.000s And the image is 512 pixels wide ... passed in 0.000s And the image is 512 pixels high ... passed in 0.000s And the image has 72 horizontal dpi ... passed in 0.000s And the image has 72 vertical dpi ... passed in 0.000s Scenario Outline: Characterize an image file -- @1.5 Image file characteristics Given the image file 'lena.tif' ... passed in 0.000s When I construct an image using the image path ... passed in 0.001s Then the image has content type 'image/tiff' ... passed in 0.000s And the image is 512 pixels wide ... passed in 0.000s And the image is 512 pixels high ... passed in 0.000s And the image has 72 horizontal dpi ... passed in 0.000s And the image has 72 vertical dpi ... passed in 0.000s Scenario Outline: Characterize an image file -- @1.6 Image file characteristics Given the image file 'sample.tif' ... passed in 0.000s When I construct an image using the image path ... passed in 0.000s Then the image has content type 'image/tiff' ... passed in 0.000s And the image is 1600 pixels wide ... passed in 0.000s And the image is 2100 pixels high ... passed in 0.000s And the image has 200 horizontal dpi ... passed in 0.000s And the image has 200 vertical dpi ... passed in 0.000s Scenario Outline: Characterize an image file -- @1.7 Image file characteristics Given the image file 'jpeg420exif.jpg' ... passed in 0.000s When I construct an image using the image path ... passed in 0.001s Then the image has content type 'image/jpeg' ... passed in 0.000s And the image is 2048 pixels wide ... passed in 0.000s And the image is 1536 pixels high ... passed in 0.000s And the image has 72 horizontal dpi ... passed in 0.000s And the image has 72 vertical dpi ... passed in 0.000s Scenario Outline: Characterize an image file -- @1.8 Image file characteristics Given the image file 'court-exif.jpg' ... passed in 0.000s When I construct an image using the image path ... passed in 0.000s Then the image has content type 'image/jpeg' ... passed in 0.000s And the image is 500 pixels wide ... passed in 0.000s And the image is 375 pixels high ... passed in 0.000s And the image has 256 horizontal dpi ... passed in 0.000s And the image has 256 vertical dpi ... passed in 0.000s Scenario Outline: Characterize an image file -- @1.9 Image file characteristics Given the image file 'lena.gif' ... passed in 0.000s When I construct an image using the image path ... passed in 0.000s Then the image has content type 'image/gif' ... passed in 0.000s And the image is 256 pixels wide ... passed in 0.000s And the image is 256 pixels high ... passed in 0.000s And the image has 72 horizontal dpi ... passed in 0.000s And the image has 72 vertical dpi ... passed in 0.000s Scenario Outline: Characterize an image file -- @1.10 Image file characteristics Given the image file 'lena.bmp' ... passed in 0.000s When I construct an image using the image path ... passed in 0.000s Then the image has content type 'image/bmp' ... passed in 0.000s And the image is 512 pixels wide ... passed in 0.000s And the image is 512 pixels high ... passed in 0.000s And the image has 96 horizontal dpi ... passed in 0.000s And the image has 96 vertical dpi ... passed in 0.000s Scenario Outline: Characterize an image file -- @1.11 Image file characteristics Given the image file 'mountain.bmp' ... passed in 0.000s When I construct an image using the image path ... passed in 0.000s Then the image has content type 'image/bmp' ... passed in 0.000s And the image is 640 pixels wide ... passed in 0.000s And the image is 480 pixels high ... passed in 0.000s And the image has 300 horizontal dpi ... passed in 0.000s And the image has 300 vertical dpi ... passed in 0.000s Feature: Access the document numbering part Scenario: Get an existing numbering part from document Given a document having a numbering part ... passed in 0.002s When I get the numbering part from the document ... passed in 0.000s Then the numbering part has the expected numbering definitions ... passed in 0.000s 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.002s Then paragraph.contains_page_break is False ... passed in 0.000s 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.002s Then paragraph.contains_page_break is True ... passed in 0.000s 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.002s Then paragraph.contains_page_break is True ... passed in 0.000s 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.002s Then paragraph.hyperlinks has length 0 ... passed in 0.000s And paragraph.hyperlinks contains only Hyperlink instances ... passed in 0.000s 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.002s Then paragraph.hyperlinks has length 1 ... passed in 0.000s And paragraph.hyperlinks contains only Hyperlink instances ... passed in 0.000s 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.002s Then paragraph.hyperlinks has length 3 ... passed in 0.000s And paragraph.hyperlinks contains only Hyperlink instances ... passed in 0.000s Scenario: Paragraph.iter_inner_content() generates the paragraph's runs and hyperlinks Given a paragraph having three hyperlinks ... passed in 0.002s Then paragraph.iter_inner_content() generates the paragraph runs and hyperlinks ... passed in 0.000s 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.002s Then paragraph.rendered_page_breaks has length 0 ... passed in 0.000s And paragraph.rendered_page_breaks contains only RenderedPageBreak instances ... passed in 0.000s 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.002s Then paragraph.rendered_page_breaks has length 1 ... passed in 0.000s And paragraph.rendered_page_breaks contains only RenderedPageBreak instances ... passed in 0.000s 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.006s Then paragraph.rendered_page_breaks has length 2 ... passed in 0.000s And paragraph.rendered_page_breaks contains only RenderedPageBreak instances ... passed in 0.000s Scenario: Paragraph.text contains both run-text and hyperlink-text Given a paragraph having three hyperlinks ... passed in 0.002s Then paragraph.text contains the text of both the runs and the hyperlinks ... passed in 0.000s Feature: Access paragraph format Scenario: Get paragraph format object Given a paragraph ... passed in 0.009s Then paragraph.paragraph_format is its ParagraphFormat object ... passed in 0.000s Feature: Add a run with optional text and style Scenario: Add a run specifying its text Given a paragraph ... passed in 0.009s When I add a run specifying its text ... passed in 0.000s Then the run contains the text I specified ... passed in 0.000s Scenario: Add a run specifying its style Given a paragraph ... passed in 0.009s When I add a run specifying the character style Emphasis ... passed in 0.002s Then run.style is styles['Emphasis'] ... passed in 0.001s 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.002s Then the paragraph alignment property value is None ... passed in 0.000s Scenario Outline: Get paragraph alignment -- @1.2 align property values Given a paragraph having left alignment ... passed in 0.002s Then the paragraph alignment property value is WD_ALIGN_PARAGRAPH.LEFT ... passed in 0.000s Scenario Outline: Get paragraph alignment -- @1.3 align property values Given a paragraph having center alignment ... passed in 0.002s Then the paragraph alignment property value is WD_ALIGN_PARAGRAPH.CENTER ... passed in 0.000s Scenario Outline: Get paragraph alignment -- @1.4 align property values Given a paragraph having right alignment ... passed in 0.002s Then the paragraph alignment property value is WD_ALIGN_PARAGRAPH.RIGHT ... passed in 0.000s Feature: Clear paragraph content Scenario: Clear paragraph content Given a paragraph with content and formatting ... passed in 0.002s When I clear the paragraph content ... passed in 0.000s Then the paragraph has no content ... passed in 0.000s But the paragraph formatting is preserved ... passed in 0.000s 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.010s When I insert a paragraph above the second paragraph ... passed in 0.002s Then the document contains four paragraphs ... passed in 0.000s And the text of the second paragraph matches the text I set ... passed in 0.000s And the style of the second paragraph matches the style I set ... passed in 0.000s Feature: Replace paragraph text Scenario: Set paragraph text Given a paragraph with content and formatting ... passed in 0.002s When I set the paragraph text ... passed in 0.000s Then the paragraph has the text I set ... passed in 0.000s And the paragraph formatting is preserved ... passed in 0.000s 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.003s Then paragraph.style is Normal ... passed in 0.001s 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.003s Then paragraph.style is Normal ... passed in 0.001s 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.003s Then paragraph.style is Heading 1 ... passed in 0.001s 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.003s Then paragraph.style is Body Text ... passed in 0.001s Scenario Outline: Set the style of a paragraph -- @1.1 ways of specifying a style Given a paragraph ... passed in 0.010s When I assign a style object to paragraph.style ... passed in 0.002s Then the paragraph has the style I set ... passed in 0.000s Scenario Outline: Set the style of a paragraph -- @1.2 ways of specifying a style Given a paragraph ... passed in 0.012s When I assign a style name to paragraph.style ... passed in 0.026s Then the paragraph has the style I set ... passed in 0.000s 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.002s Then rendered_page_break.preceding_paragraph_fragment is the content before break ... passed in 0.001s Scenario: RenderedPageBreak.preceding_paragraph_fragment includes the hyperlink Given a rendered_page_break in a hyperlink ... passed in 0.002s Then rendered_page_break.preceding_paragraph_fragment includes the hyperlink ... passed in 0.001s Scenario: RenderedPageBreak.following_paragraph_fragment is the content after break Given a rendered_page_break in a paragraph ... passed in 0.002s Then rendered_page_break.following_paragraph_fragment is the content after break ... passed in 0.001s Scenario: RenderedPageBreak.following_paragraph_fragment excludes the hyperlink Given a rendered_page_break in a hyperlink ... passed in 0.002s Then rendered_page_break.following_paragraph_fragment excludes the hyperlink ... passed in 0.000s Feature: Access run font Scenario: Access the font of a run Given a run ... passed in 0.009s Then run.font is the Font object for the run ... passed in 0.000s 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.002s Then run.contains_page_break is False ... passed in 0.000s 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.002s Then run.contains_page_break is True ... passed in 0.000s 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.002s Then run.contains_page_break is True ... passed in 0.000s 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.002s Then run.iter_inner_content() generates the run text and rendered page-breaks ... passed in 0.000s Scenario: Run.text contains the text content of the run Given a run having mixed text content ... passed in 0.000s Then run.text contains the text content of the run ... passed in 0.000s Feature: Add content to a run Scenario: Add a tab Given a run ... passed in 0.009s When I add a tab ... passed in 0.000s Then the tab appears at the end of the run ... passed in 0.000s Scenario: Assign mixed text to text property Given a run ... passed in 0.009s When I assign mixed text to the text property ... passed in 0.000s Then run.text contains the text content of the run ... passed in 0.000s Feature: Add picture to a run Scenario: Add a picture to a body paragraph run Given a run ... passed in 0.009s When I add a picture to the run ... passed in 0.001s Then the picture appears at the end of the run ... passed in 0.000s And the document contains the inline picture ... passed in 0.000s 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.010s When I add a picture to the run ... passed in 0.001s Then the picture appears at the end of the run ... passed in 0.000s And the document contains the inline picture ... passed in 0.000s 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.010s When I add a picture to the run ... passed in 0.001s Then the picture appears at the end of the run ... passed in 0.000s And the document contains the inline picture ... passed in 0.000s 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.011s When I add a picture to the run ... passed in 0.001s Then the picture appears at the end of the run ... passed in 0.000s And the document contains the inline picture ... passed in 0.000s 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.002s Then run.style is styles['Default Paragraph Font'] ... passed in 0.000s Scenario Outline: Get the character style of a run -- @1.2 Character styles Given a run having Emphasis style ... passed in 0.024s Then run.style is styles['Emphasis'] ... passed in 0.000s Scenario Outline: Get the character style of a run -- @1.3 Character styles Given a run having Strong style ... passed in 0.002s Then run.style is styles['Strong'] ... passed in 0.000s Scenario Outline: Set the style of a run -- @1.1 Character style transitions Given a run having no explicit style ... passed in 0.002s When I assign Emphasis to run.style ... passed in 0.001s Then run.style is styles['Emphasis'] ... passed in 0.000s Scenario Outline: Set the style of a run -- @1.2 Character style transitions Given a run having no explicit style ... passed in 0.002s When I assign styles['Emphasis'] to run.style ... passed in 0.001s Then run.style is styles['Emphasis'] ... passed in 0.000s Scenario Outline: Set the style of a run -- @1.3 Character style transitions Given a run having Emphasis style ... passed in 0.002s When I assign Strong to run.style ... passed in 0.000s Then run.style is styles['Strong'] ... passed in 0.000s Scenario Outline: Set the style of a run -- @1.4 Character style transitions Given a run having Emphasis style ... passed in 0.002s When I assign styles['Strong'] to run.style ... passed in 0.000s Then run.style is styles['Strong'] ... passed in 0.000s Scenario Outline: Set the style of a run -- @1.5 Character style transitions Given a run having Strong style ... passed in 0.002s When I assign None to run.style ... passed in 0.000s Then run.style is styles['Default Paragraph Font'] ... passed in 0.000s Feature: Remove the content of a run Scenario: Clear run content Given a run having known text and formatting ... passed in 0.010s When I clear the run ... passed in 0.000s Then the run contains no text ... passed in 0.000s But the run formatting is preserved ... passed in 0.000s 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.002s Then the run underline property value is None ... passed in 0.000s Scenario Outline: Get underline value of a run -- @1.2 underline property values Given a run having no underline ... passed in 0.002s Then the run underline property value is False ... passed in 0.000s Scenario Outline: Get underline value of a run -- @1.3 underline property values Given a run having single underline ... passed in 0.002s Then the run underline property value is True ... passed in 0.000s Scenario Outline: Get underline value of a run -- @1.4 underline property values Given a run having double underline ... passed in 0.002s Then the run underline property value is WD_UNDERLINE.DOUBLE ... passed in 0.000s Scenario Outline: Change underline setting for a run -- @1.1 underline property values Given a run having inherited underline ... passed in 0.002s When I set the run underline to True ... passed in 0.000s Then the run underline property value is True ... passed in 0.000s Scenario Outline: Change underline setting for a run -- @1.2 underline property values Given a run having inherited underline ... passed in 0.002s When I set the run underline to False ... passed in 0.000s Then the run underline property value is False ... passed in 0.000s Scenario Outline: Change underline setting for a run -- @1.3 underline property values Given a run having inherited underline ... passed in 0.002s When I set the run underline to None ... passed in 0.000s Then the run underline property value is None ... passed in 0.000s Scenario Outline: Change underline setting for a run -- @1.4 underline property values Given a run having inherited underline ... passed in 0.002s When I set the run underline to WD_UNDERLINE.SINGLE ... passed in 0.000s Then the run underline property value is True ... passed in 0.000s Scenario Outline: Change underline setting for a run -- @1.5 underline property values Given a run having inherited underline ... passed in 0.008s When I set the run underline to WD_UNDERLINE.DOUBLE ... passed in 0.000s Then the run underline property value is WD_UNDERLINE.DOUBLE ... passed in 0.000s Scenario Outline: Change underline setting for a run -- @1.6 underline property values Given a run having single underline ... passed in 0.002s When I set the run underline to None ... passed in 0.000s Then the run underline property value is None ... passed in 0.000s Scenario Outline: Change underline setting for a run -- @1.7 underline property values Given a run having single underline ... passed in 0.002s When I set the run underline to True ... passed in 0.000s Then the run underline property value is True ... passed in 0.000s Scenario Outline: Change underline setting for a run -- @1.8 underline property values Given a run having single underline ... passed in 0.002s When I set the run underline to False ... passed in 0.000s Then the run underline property value is False ... passed in 0.000s Scenario Outline: Change underline setting for a run -- @1.9 underline property values Given a run having single underline ... passed in 0.002s When I set the run underline to WD_UNDERLINE.SINGLE ... passed in 0.000s Then the run underline property value is True ... passed in 0.000s Scenario Outline: Change underline setting for a run -- @1.10 underline property values Given a run having single underline ... passed in 0.002s When I set the run underline to WD_UNDERLINE.DOUBLE ... passed in 0.000s Then the run underline property value is WD_UNDERLINE.DOUBLE ... passed in 0.000s 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.003s Then section.different_first_page_header_footer is True ... passed in 0.000s 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.002s Then section.different_first_page_header_footer is False ... passed in 0.000s 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.003s When I assign True to section.different_first_page_header_footer ... passed in 0.000s Then section.different_first_page_header_footer is True ... passed in 0.000s 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.003s When I assign False to section.different_first_page_header_footer ... passed in 0.000s Then section.different_first_page_header_footer is False ... passed in 0.000s 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.002s When I assign True to section.different_first_page_header_footer ... passed in 0.000s Then section.different_first_page_header_footer is True ... passed in 0.000s 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.003s When I assign False to section.different_first_page_header_footer ... passed in 0.000s Then section.different_first_page_header_footer is False ... passed in 0.000s Scenario: Section.even_page_footer Given a Section object as section ... passed in 0.002s Then section.even_page_footer is a _Footer object ... passed in 0.000s Scenario: Section.even_page_header Given a Section object as section ... passed in 0.002s Then section.even_page_header is a _Header object ... passed in 0.000s Scenario: Section.first_page_footer Given a Section object as section ... passed in 0.002s Then section.first_page_footer is a _Footer object ... passed in 0.000s Scenario: Section.first_page_header Given a Section object as section ... passed in 0.002s Then section.first_page_header is a _Header object ... passed in 0.000s Scenario: Section.footer Given a Section object as section ... passed in 0.002s Then section.footer is a _Footer object ... passed in 0.000s Scenario: Section.header Given a Section object as section ... passed in 0.007s Then section.header is a _Header object ... passed in 0.000s Scenario: Section.iter_inner_content() Given a Section object of a multi-section document as section ... passed in 0.002s Then section.iter_inner_content() produces the paragraphs and tables in section ... passed in 0.000s Scenario Outline: Get section start type -- @1.1 Section start types Given a section having start type CONTINUOUS ... passed in 0.003s Then the reported section start type is CONTINUOUS ... passed in 0.000s Scenario Outline: Get section start type -- @1.2 Section start types Given a section having start type NEW_COLUMN ... passed in 0.002s Then the reported section start type is NEW_COLUMN ... passed in 0.000s Scenario Outline: Get section start type -- @1.3 Section start types Given a section having start type NEW_PAGE ... passed in 0.002s Then the reported section start type is NEW_PAGE ... passed in 0.000s Scenario Outline: Get section start type -- @1.4 Section start types Given a section having start type EVEN_PAGE ... passed in 0.002s Then the reported section start type is EVEN_PAGE ... passed in 0.000s Scenario Outline: Get section start type -- @1.5 Section start types Given a section having start type ODD_PAGE ... passed in 0.002s Then the reported section start type is ODD_PAGE ... passed in 0.000s Scenario Outline: Set section start type -- @1.1 Section start types Given a section having start type CONTINUOUS ... passed in 0.002s When I set the section start type to NEW_PAGE ... passed in 0.000s Then the reported section start type is NEW_PAGE ... passed in 0.000s Scenario Outline: Set section start type -- @1.2 Section start types Given a section having start type NEW_PAGE ... passed in 0.002s When I set the section start type to ODD_PAGE ... passed in 0.000s Then the reported section start type is ODD_PAGE ... passed in 0.000s Scenario Outline: Set section start type -- @1.3 Section start types Given a section having start type NEW_COLUMN ... passed in 0.002s When I set the section start type to None ... passed in 0.000s Then the reported section start type is NEW_PAGE ... passed in 0.000s Scenario: Get section page size Given a section having known page dimension ... passed in 0.002s Then the reported page width is 8.5 inches ... passed in 0.000s And the reported page height is 11 inches ... passed in 0.000s Scenario: Set section page size Given a section having known page dimension ... passed in 0.002s When I set the section page width to 11 inches ... passed in 0.000s And I set the section page height to 8.5 inches ... passed in 0.000s Then the reported page width is 11 inches ... passed in 0.000s And the reported page height is 8.5 inches ... passed in 0.000s Scenario Outline: Get section orientation -- @1.1 Section page orientations Given a section known to have landscape orientation ... passed in 0.002s Then the reported page orientation is WD_ORIENT.LANDSCAPE ... passed in 0.000s Scenario Outline: Get section orientation -- @1.2 Section page orientations Given a section known to have portrait orientation ... passed in 0.002s Then the reported page orientation is WD_ORIENT.PORTRAIT ... passed in 0.000s Scenario Outline: Set section orientation -- @1.1 Section page orientations Given a section known to have portrait orientation ... passed in 0.006s When I set the section orientation to WD_ORIENT.LANDSCAPE ... passed in 0.000s Then the reported page orientation is WD_ORIENT.LANDSCAPE ... passed in 0.000s Scenario Outline: Set section orientation -- @1.2 Section page orientations Given a section known to have landscape orientation ... passed in 0.002s When I set the section orientation to WD_ORIENT.PORTRAIT ... passed in 0.000s Then the reported page orientation is WD_ORIENT.PORTRAIT ... passed in 0.000s Scenario Outline: Set section orientation -- @1.3 Section page orientations Given a section known to have landscape orientation ... passed in 0.002s When I set the section orientation to None ... passed in 0.000s Then the reported page orientation is WD_ORIENT.PORTRAIT ... passed in 0.000s Scenario: Get section page margins Given a section having known page margins ... passed in 0.002s Then the reported left margin is 1.0 inches ... passed in 0.000s And the reported right margin is 1.25 inches ... passed in 0.000s And the reported top margin is 1.5 inches ... passed in 0.000s And the reported bottom margin is 1.75 inches ... passed in 0.000s And the reported gutter margin is 0.25 inches ... passed in 0.000s And the reported header margin is 0.5 inches ... passed in 0.000s And the reported footer margin is 0.75 inches ... passed in 0.000s Scenario Outline: Set section page margins -- @1.1 Section margin settings Given a section having known page margins ... passed in 0.002s When I set the left margin to 1.0 inches ... passed in 0.000s Then the reported left margin is 1.0 inches ... passed in 0.000s Scenario Outline: Set section page margins -- @1.2 Section margin settings Given a section having known page margins ... passed in 0.002s When I set the right margin to 1.25 inches ... passed in 0.000s Then the reported right margin is 1.25 inches ... passed in 0.000s Scenario Outline: Set section page margins -- @1.3 Section margin settings Given a section having known page margins ... passed in 0.002s When I set the top margin to 0.75 inches ... passed in 0.000s Then the reported top margin is 0.75 inches ... passed in 0.000s Scenario Outline: Set section page margins -- @1.4 Section margin settings Given a section having known page margins ... passed in 0.002s When I set the bottom margin to 1.5 inches ... passed in 0.000s Then the reported bottom margin is 1.5 inches ... passed in 0.000s Scenario Outline: Set section page margins -- @1.5 Section margin settings Given a section having known page margins ... passed in 0.002s When I set the header margin to 0.25 inches ... passed in 0.000s Then the reported header margin is 0.25 inches ... passed in 0.000s Scenario Outline: Set section page margins -- @1.6 Section margin settings Given a section having known page margins ... passed in 0.002s When I set the footer margin to 0.5 inches ... passed in 0.000s Then the reported footer margin is 0.5 inches ... passed in 0.000s Scenario Outline: Set section page margins -- @1.7 Section margin settings Given a section having known page margins ... passed in 0.002s When I set the gutter margin to 0.25 inches ... passed in 0.000s Then the reported gutter margin is 0.25 inches ... passed in 0.000s 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.003s Then the length of the inline shape collection is 5 ... passed in 0.000s And I can iterate over the inline shape collection ... passed in 0.000s And I can access each inline shape by index ... passed in 0.000s 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.006s Then its inline shape type is WD_INLINE_SHAPE.PICTURE ... passed in 0.000s 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.003s Then its inline shape type is WD_INLINE_SHAPE.LINKED_PICTURE ... passed in 0.000s 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.003s Then its inline shape type is WD_INLINE_SHAPE.LINKED_PICTURE ... passed in 0.000s 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.003s Then its inline shape type is WD_INLINE_SHAPE.SMART_ART ... passed in 0.000s 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.003s Then its inline shape type is WD_INLINE_SHAPE.CHART ... passed in 0.000s Feature: Query and change dimensions of inline shape Scenario: Query inline shape dimensions Given an inline shape of known dimensions ... passed in 0.003s Then the dimensions of the inline shape match the known values ... passed in 0.000s Scenario: Change inline shape dimensions Given an inline shape of known dimensions ... passed in 0.003s When I change the dimensions of the inline shape ... passed in 0.000s Then the dimensions of the inline shape match the new values ... passed in 0.000s 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.002s Then style.font is the Font object for the style ... passed in 0.000s Scenario Outline: Get style font -- @1.2 Style types Given a style of type WD_STYLE_TYPE.PARAGRAPH ... passed in 0.002s Then style.font is the Font object for the style ... passed in 0.000s Scenario Outline: Get style font -- @1.3 Style types Given a style of type WD_STYLE_TYPE.TABLE ... passed in 0.002s Then style.font is the Font object for the style ... passed in 0.000s Feature: Access latent styles for a document Scenario: Access latent styles collection Given the style collection of a document ... passed in 0.002s Then styles.latent_styles is the LatentStyles object for the document ... passed in 0.000s And len(latent_styles) is 137 ... passed in 0.000s Scenario: Access latent style in collection Given a latent style collection ... passed in 0.002s Then I can iterate over the latent styles ... passed in 0.000s And I can access a latent style by name ... passed in 0.000s 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.002s Then style.paragraph_format is the ParagraphFormat object for the style ... passed in 0.000s Scenario Outline: Get style paragraph format -- @1.2 Style types Given a style of type WD_STYLE_TYPE.TABLE ... passed in 0.002s Then style.paragraph_format is the ParagraphFormat object for the style ... passed in 0.000s Feature: Add a style Scenario Outline: Add a style -- @1.1 New style varieties Given a document having known styles ... passed in 0.005s When I call add_style('Heading 1', WD_STYLE_TYPE.PARAGRAPH, builtin=True) ... passed in 0.001s Then the document has one additional style ... passed in 0.000s And styles['Heading 1'] is a style ... passed in 0.000s And style.type is WD_STYLE_TYPE.PARAGRAPH ... passed in 0.000s And style.builtin is True ... passed in 0.000s Scenario Outline: Add a style -- @1.2 New style varieties Given a document having known styles ... passed in 0.002s When I call add_style('Inline Code', WD_STYLE_TYPE.CHARACTER, builtin=False) ... passed in 0.000s Then the document has one additional style ... passed in 0.000s And styles['Inline Code'] is a style ... passed in 0.000s And style.type is WD_STYLE_TYPE.CHARACTER ... passed in 0.000s And style.builtin is False ... passed in 0.000s Scenario Outline: Add a style -- @1.3 New style varieties Given a document having known styles ... passed in 0.002s When I call add_style('List Bullet', WD_STYLE_TYPE.LIST, builtin=True) ... passed in 0.000s Then the document has one additional style ... passed in 0.000s And styles['List Bullet'] is a style ... passed in 0.000s And style.type is WD_STYLE_TYPE.LIST ... passed in 0.000s And style.builtin is True ... passed in 0.000s Scenario Outline: Add a style -- @1.4 New style varieties Given a document having known styles ... passed in 0.002s When I call add_style('Shipments', WD_STYLE_TYPE.TABLE, builtin=False) ... passed in 0.000s Then the document has one additional style ... passed in 0.000s And styles['Shipments'] is a style ... passed in 0.000s And style.type is WD_STYLE_TYPE.TABLE ... passed in 0.000s And style.builtin is False ... passed in 0.000s Feature: Delete a style Scenario: Delete a style Given a document having known styles ... passed in 0.002s When I delete a style ... passed in 0.000s Then the document has one fewer styles ... passed in 0.000s And the deleted style is not in the styles collection ... passed in 0.000s Feature: Add or delete a latent style Scenario: Add a latent style Given a document having known styles ... passed in 0.002s When I add a latent style named 'Foobar' ... passed in 0.000s Then the document has one additional latent style ... passed in 0.000s And latent_styles['Foobar'] is a latent style ... passed in 0.000s Scenario: Delete a latent style Given a document having known styles ... passed in 0.002s When I delete a latent style ... passed in 0.000s Then the document has one fewer latent styles ... passed in 0.000s And the deleted latent style is not in the latent styles collection ... passed in 0.000s 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.002s Then latent_styles.default_priority is 99 ... passed in 0.000s 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.002s Then latent_styles.load_count is 276 ... passed in 0.000s 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.002s Then latent_styles.default_to_hidden is True ... passed in 0.000s 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.002s Then latent_styles.default_to_locked is False ... passed in 0.000s 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.002s Then latent_styles.default_to_quick_style is False ... passed in 0.000s 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.002s Then latent_styles.default_to_unhide_when_used is True ... passed in 0.000s 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.002s When I assign 42 to latent_styles.default_priority ... passed in 0.000s Then latent_styles.default_priority is 42 ... passed in 0.000s 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.002s When I assign 240 to latent_styles.load_count ... passed in 0.000s Then latent_styles.load_count is 240 ... passed in 0.000s 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.002s When I assign False to latent_styles.default_to_hidden ... passed in 0.000s Then latent_styles.default_to_hidden is False ... passed in 0.000s 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.002s When I assign True to latent_styles.default_to_locked ... passed in 0.000s Then latent_styles.default_to_locked is True ... passed in 0.000s 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.002s When I assign True to latent_styles.default_to_quick_style ... passed in 0.000s Then latent_styles.default_to_quick_style is True ... passed in 0.000s 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.004s When I assign False to latent_styles.default_to_unhide_when_used ... passed in 0.000s Then latent_styles.default_to_unhide_when_used is False ... passed in 0.000s Scenario: Get latent style name Given a latent style having a known name ... passed in 0.002s Then latent_style.name is the known name ... passed in 0.000s 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.002s Then latent_style.priority is None ... passed in 0.000s 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.002s Then latent_style.priority is 42 ... passed in 0.000s 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.002s When I assign 42 to latent_style.priority ... passed in 0.000s Then latent_style.priority is 42 ... passed in 0.000s 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.002s When I assign 24 to latent_style.priority ... passed in 0.000s Then latent_style.priority is 24 ... passed in 0.000s 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.002s When I assign None to latent_style.priority ... passed in 0.000s Then latent_style.priority is None ... passed in 0.000s 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.002s Then latent_style.hidden is True ... passed in 0.000s 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.002s Then latent_style.hidden is False ... passed in 0.000s 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.002s Then latent_style.hidden is None ... passed in 0.000s 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.002s Then latent_style.locked is True ... passed in 0.000s 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.002s Then latent_style.locked is False ... passed in 0.000s 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.002s Then latent_style.locked is None ... passed in 0.000s 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.002s Then latent_style.quick_style is True ... passed in 0.000s 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.002s Then latent_style.quick_style is False ... passed in 0.000s 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.002s Then latent_style.quick_style is None ... passed in 0.000s 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.002s Then latent_style.unhide_when_used is True ... passed in 0.000s 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.006s Then latent_style.unhide_when_used is False ... passed in 0.000s 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.002s Then latent_style.unhide_when_used is None ... passed in 0.000s 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.002s When I assign True to latent_style.hidden ... passed in 0.000s Then latent_style.hidden is True ... passed in 0.000s 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.002s When I assign False to latent_style.hidden ... passed in 0.000s Then latent_style.hidden is False ... passed in 0.000s 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.002s When I assign None to latent_style.hidden ... passed in 0.000s Then latent_style.hidden is None ... passed in 0.000s 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.002s When I assign False to latent_style.locked ... passed in 0.000s Then latent_style.locked is False ... passed in 0.000s 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.002s When I assign True to latent_style.locked ... passed in 0.000s Then latent_style.locked is True ... passed in 0.000s 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.002s When I assign None to latent_style.locked ... passed in 0.000s Then latent_style.locked is None ... passed in 0.000s 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.002s When I assign True to latent_style.quick_style ... passed in 0.000s Then latent_style.quick_style is True ... passed in 0.000s 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.002s When I assign False to latent_style.quick_style ... passed in 0.000s Then latent_style.quick_style is False ... passed in 0.000s 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.002s When I assign None to latent_style.quick_style ... passed in 0.000s Then latent_style.quick_style is None ... passed in 0.000s 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.002s When I assign False to latent_style.unhide_when_used ... passed in 0.000s Then latent_style.unhide_when_used is False ... passed in 0.000s 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.002s When I assign True to latent_style.unhide_when_used ... passed in 0.000s Then latent_style.unhide_when_used is True ... passed in 0.000s 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.002s When I assign False to latent_style.unhide_when_used ... passed in 0.000s Then latent_style.unhide_when_used is False ... passed in 0.000s 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.002s Then style.base_style is None ... passed in 0.000s Scenario Outline: Get base style -- @1.2 Base style values Given a style based on Normal ... passed in 0.002s Then style.base_style is styles['Normal'] ... passed in 0.000s Scenario Outline: Set base style -- @1.1 Base style values Given a style based on no style ... passed in 0.006s When I assign styles['Normal'] to style.base_style ... passed in 0.000s Then style.base_style is styles['Normal'] ... passed in 0.000s Scenario Outline: Set base style -- @1.2 Base style values Given a style based on Normal ... passed in 0.002s When I assign styles['Base'] to style.base_style ... passed in 0.000s Then style.base_style is styles['Base'] ... passed in 0.000s Scenario Outline: Set base style -- @1.3 Base style values Given a style based on Base ... passed in 0.002s When I assign None to style.base_style ... passed in 0.000s Then style.base_style is None ... passed in 0.000s Scenario Outline: Get hidden value -- @1.1 Style hidden values Given a style having hidden set on ... passed in 0.002s Then style.hidden is True ... passed in 0.000s Scenario Outline: Get hidden value -- @1.2 Style hidden values Given a style having hidden set off ... passed in 0.002s Then style.hidden is False ... passed in 0.000s Scenario Outline: Get hidden value -- @1.3 Style hidden values Given a style having hidden set no setting ... passed in 0.002s Then style.hidden is False ... passed in 0.000s Scenario Outline: Set hidden value -- @1.1 Style hidden values Given a style having hidden set no setting ... passed in 0.002s When I assign True to style.hidden ... passed in 0.000s Then style.hidden is True ... passed in 0.000s Scenario Outline: Set hidden value -- @1.2 Style hidden values Given a style having hidden set on ... passed in 0.002s When I assign False to style.hidden ... passed in 0.000s Then style.hidden is False ... passed in 0.000s Scenario Outline: Get locked value -- @1.1 Style locked values Given a style having locked set on ... passed in 0.002s Then style.locked is True ... passed in 0.000s Scenario Outline: Get locked value -- @1.2 Style locked values Given a style having locked set off ... passed in 0.002s Then style.locked is False ... passed in 0.000s Scenario Outline: Get locked value -- @1.3 Style locked values Given a style having locked set no setting ... passed in 0.002s Then style.locked is False ... passed in 0.000s Scenario Outline: Set locked value -- @1.1 Style locked values Given a style having locked set no setting ... passed in 0.002s When I assign True to style.locked ... passed in 0.000s Then style.locked is True ... passed in 0.000s Scenario Outline: Set locked value -- @1.2 Style locked values Given a style having locked set on ... passed in 0.002s When I assign False to style.locked ... passed in 0.000s Then style.locked is False ... passed in 0.000s Scenario: Get name Given a style having a known name ... passed in 0.002s Then style.name is the known name ... passed in 0.000s Scenario: Set name Given a style having a known name ... passed in 0.002s When I assign a new name to the style ... passed in 0.000s Then style.name is the new name ... passed in 0.000s 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.002s Then style.next_paragraph_style is Base ... passed in 0.000s 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.002s Then style.next_paragraph_style is Sub Normal ... passed in 0.000s 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.002s Then style.next_paragraph_style is Sub Normal ... passed in 0.000s 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.005s When I assign Citation to style.next_paragraph_style ... passed in 0.000s Then style.next_paragraph_style is Citation ... passed in 0.000s 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.002s When I assign Base to style.next_paragraph_style ... passed in 0.000s Then style.next_paragraph_style is Base ... passed in 0.000s 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.002s When I assign None to style.next_paragraph_style ... passed in 0.000s Then style.next_paragraph_style is Foo ... passed in 0.000s Scenario Outline: Get style display sort order -- @1.1 style.priority values Given a style having priority of no setting ... passed in 0.002s Then style.priority is None ... passed in 0.000s Scenario Outline: Get style display sort order -- @1.2 style.priority values Given a style having priority of 42 ... passed in 0.002s Then style.priority is 42 ... passed in 0.000s Scenario Outline: Set style display sort order -- @1.1 Style priority values Given a style having priority of no setting ... passed in 0.002s When I assign 42 to style.priority ... passed in 0.000s Then style.priority is 42 ... passed in 0.000s Scenario Outline: Set style display sort order -- @1.2 Style priority values Given a style having priority of 42 ... passed in 0.002s When I assign 24 to style.priority ... passed in 0.000s Then style.priority is 24 ... passed in 0.000s Scenario Outline: Set style display sort order -- @1.3 Style priority values Given a style having priority of 42 ... passed in 0.002s When I assign None to style.priority ... passed in 0.000s Then style.priority is None ... passed in 0.000s Scenario Outline: Get quick-style value -- @1.1 Style quick-style values Given a style having quick-style set on ... passed in 0.002s Then style.quick_style is True ... passed in 0.000s Scenario Outline: Get quick-style value -- @1.2 Style quick-style values Given a style having quick-style set off ... passed in 0.002s Then style.quick_style is False ... passed in 0.000s Scenario Outline: Get quick-style value -- @1.3 Style quick-style values Given a style having quick-style set no setting ... passed in 0.002s Then style.quick_style is False ... passed in 0.000s Scenario Outline: Set quick-style value -- @1.1 Style quick_style values Given a style having quick-style set no setting ... passed in 0.002s When I assign True to style.quick_style ... passed in 0.000s Then style.quick_style is True ... passed in 0.000s Scenario Outline: Set quick-style value -- @1.2 Style quick_style values Given a style having quick-style set on ... passed in 0.002s When I assign False to style.quick_style ... passed in 0.000s Then style.quick_style is False ... passed in 0.000s Scenario: Get style id Given a style having a known style id ... passed in 0.002s Then style.style_id is the known style id ... passed in 0.000s Scenario: Set style id Given a style having a known style id ... passed in 0.002s When I assign a new value to style.style_id ... passed in 0.000s Then style.style_id is the new style id ... passed in 0.000s Scenario: Get style type Given a style having a known type ... passed in 0.002s Then style.type is the known type ... passed in 0.000s 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.002s Then style.unhide_when_used is True ... passed in 0.000s 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.002s Then style.unhide_when_used is False ... passed in 0.000s 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.005s Then style.unhide_when_used is False ... passed in 0.000s 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.002s When I assign True to style.unhide_when_used ... passed in 0.000s Then style.unhide_when_used is True ... passed in 0.000s 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.002s When I assign False to style.unhide_when_used ... passed in 0.000s Then style.unhide_when_used is False ... passed in 0.000s Feature: Access TabStop objects Scenario Outline: TabStops.__len__ -- @1.1 tab_stop counts Given a tab_stops having 0 tab stops ... passed in 0.002s Then len(tab_stops) is 0 ... passed in 0.000s Scenario Outline: TabStops.__len__ -- @1.2 tab_stop counts Given a tab_stops having 3 tab stops ... passed in 0.002s Then len(tab_stops) is 3 ... passed in 0.000s Scenario: Access an existing TabStop object Given a tab_stops having 3 tab stops ... passed in 0.002s Then I can iterate the TabStops object ... passed in 0.000s And I can access a tab stop by index ... passed in 0.000s Scenario Outline: TabStops.add_tab_stop() -- @1.1 tab stop object counts Given a tab_stops having 0 tab stops ... passed in 0.002s When I add a tab stop ... passed in 0.000s Then len(tab_stops) is 1 ... passed in 0.000s And the tab stops are sequenced in position order ... passed in 0.000s Scenario Outline: TabStops.add_tab_stop() -- @1.2 tab stop object counts Given a tab_stops having 3 tab stops ... passed in 0.002s When I add a tab stop ... passed in 0.000s Then len(tab_stops) is 4 ... passed in 0.000s And the tab stops are sequenced in position order ... passed in 0.000s Scenario: TabStops.__delitem__() Given a tab_stops having 3 tab stops ... passed in 0.002s When I remove a tab stop ... passed in 0.000s Then len(tab_stops) is 2 ... passed in 0.000s And the removed tab stop is no longer present in tab_stops ... passed in 0.000s Scenario: TabStops.clear_all() Given a tab_stops having 3 tab stops ... passed in 0.002s When I call tab_stops.clear_all() ... passed in 0.000s Then len(tab_stops) is 0 ... passed in 0.000s 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.002s Then tab_stop.position is 457200 ... passed in 0.000s 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.002s Then tab_stop.position is -457200 ... passed in 0.000s 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.002s When I assign 228600 to tab_stop.position ... passed in 0.000s Then tab_stop.position is 228600 ... passed in 0.000s And the tab stops are sequenced in position order ... passed in 0.000s 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.002s When I assign -914400 to tab_stop.position ... passed in 0.000s Then tab_stop.position is -914400 ... passed in 0.000s And the tab stops are sequenced in position order ... passed in 0.000s Scenario Outline: Get TabStop.alignment -- @1.1 tab stop alignments Given a tab stop having LEFT alignment ... passed in 0.002s Then tab_stop.alignment is LEFT ... passed in 0.000s Scenario Outline: Get TabStop.alignment -- @1.2 tab stop alignments Given a tab stop having RIGHT alignment ... passed in 0.002s Then tab_stop.alignment is RIGHT ... passed in 0.000s Scenario Outline: Set TabStop.alignment -- @1.1 tab stop alignments Given a tab stop having LEFT alignment ... passed in 0.002s When I assign CENTER to tab_stop.alignment ... passed in 0.000s Then tab_stop.alignment is CENTER ... passed in 0.000s Scenario Outline: Set TabStop.alignment -- @1.2 tab stop alignments Given a tab stop having RIGHT alignment ... passed in 0.002s When I assign LEFT to tab_stop.alignment ... passed in 0.000s Then tab_stop.alignment is LEFT ... passed in 0.000s Scenario Outline: Get TabStop.leader -- @1.1 tab stop leaders Given a tab stop having no specified leader ... passed in 0.002s Then tab_stop.leader is SPACES ... passed in 0.000s Scenario Outline: Get TabStop.leader -- @1.2 tab stop leaders Given a tab stop having a dotted leader ... passed in 0.002s Then tab_stop.leader is DOTS ... passed in 0.000s Scenario Outline: Set TabStop.leader -- @1.1 tab stop leaders Given a tab stop having no specified leader ... passed in 0.002s When I assign DOTS to tab_stop.leader ... passed in 0.000s Then tab_stop.leader is DOTS ... passed in 0.000s Scenario Outline: Set TabStop.leader -- @1.2 tab stop leaders Given a tab stop having a dotted leader ... passed in 0.002s When I assign SPACES to tab_stop.leader ... passed in 0.000s Then tab_stop.leader is SPACES ... passed in 0.000s 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.010s When I add a row to the table ... passed in 0.001s Then the table has 3 rows ... passed in 0.000s And the new row has 2 cells ... passed in 0.000s And the width of each cell is 3.0 inches ... passed in 0.000s Scenario: Add a column to a table Given a 2 x 2 table ... passed in 0.009s When I add a 1.0 inch column to the table ... passed in 0.001s Then the table has 3 columns ... passed in 0.000s And the new column has 2 cells ... passed in 0.000s And the new column is 1.0 inches wide ... passed in 0.000s 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.002s Then the row cells text is 1 2 3 4 5 6 7 8 9 ... passed in 0.001s 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.002s Then the row cells text is 1 2 3 4 4 6 7 8 9 ... passed in 0.001s 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.002s Then the row cells text is 1 2 3 4 5 6 7 5 9 ... passed in 0.001s 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.002s Then the row cells text is 1 2 3 4 4 6 4 4 9 ... passed in 0.001s 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.002s Then the column cells text is 1 4 7 2 5 8 3 6 9 ... passed in 0.002s 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.002s Then the column cells text is 1 4 7 2 4 8 3 6 9 ... passed in 0.002s 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.002s Then the column cells text is 1 4 7 2 5 5 3 6 9 ... passed in 0.002s 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.002s Then the column cells text is 1 4 4 2 4 4 3 6 9 ... passed in 0.001s 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.002s Then table.cell(1, 1).text is 5 ... passed in 0.001s 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.002s Then table.cell(1, 1).text is 4 ... passed in 0.001s 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.002s Then table.cell(2, 1).text is 5 ... passed in 0.001s 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.010s Then table.cell(2, 1).text is 4 ... passed in 0.001s Feature: Add a table into a table cell Scenario: Add a table into a table cell Given a table cell ... passed in 0.002s When I add a 2 x 2 table into the first cell ... passed in 0.000s Then cell.tables[0] is a 2 x 2 table ... passed in 0.000s And the width of each column is 1.5375 inches ... passed in 0.000s And the width of each cell is 1.5375 inches ... passed in 0.000s 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.002s Then cell.grid_span is 1 ... passed in 0.000s 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.002s Then cell.grid_span is 2 ... passed in 0.000s 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.002s Then cell.grid_span is 4 ... passed in 0.000s 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.002s Then cell.vertical_alignment is None ... passed in 0.000s 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.002s Then cell.vertical_alignment is WD_ALIGN_VERTICAL.BOTTOM ... passed in 0.000s 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.002s Then cell.vertical_alignment is WD_ALIGN_VERTICAL.CENTER ... passed in 0.000s 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.002s When I assign WD_ALIGN_VERTICAL.BOTTOM to cell.vertical_alignment ... passed in 0.000s Then cell.vertical_alignment is WD_ALIGN_VERTICAL.BOTTOM ... passed in 0.000s 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.002s When I assign WD_ALIGN_VERTICAL.CENTER to cell.vertical_alignment ... passed in 0.000s Then cell.vertical_alignment is WD_ALIGN_VERTICAL.CENTER ... passed in 0.000s 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.002s When I assign None to cell.vertical_alignment ... passed in 0.000s Then cell.vertical_alignment is None ... passed in 0.000s 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.002s When I assign None to cell.vertical_alignment ... passed in 0.000s Then cell.vertical_alignment is None ... passed in 0.000s 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.002s Then the reported width of the cell is None ... passed in 0.000s Scenario Outline: Get cell width -- @1.2 Table cell width settings Given a table cell having a width of 1 inch ... passed in 0.002s Then the reported width of the cell is 1 inch ... passed in 0.000s 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.002s When I set the cell width to 1 inch ... passed in 0.000s Then the reported width of the cell is 1 inch ... passed in 0.000s Scenario Outline: Set cell width -- @1.2 table column width values Given a table cell having a width of 2 inches ... passed in 0.003s When I set the cell width to 1 inch ... passed in 0.000s Then the reported width of the cell is 1 inch ... passed in 0.000s Feature: Set table cell text Scenario: Set table cell text Given a table cell ... passed in 0.002s When I assign a string to the cell text attribute ... passed in 0.000s Then the cell contains the string I assigned ... passed in 0.000s 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.004s Then the reported column width is None ... passed in 0.000s Scenario Outline: Get existing column width -- @1.2 table column width values Given a table column having a width of 1440 ... passed in 0.002s Then the reported column width is 914400 ... passed in 0.000s 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.002s When I set the column width to None ... passed in 0.000s Then the reported column width is None ... passed in 0.000s 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.002s When I set the column width to 914400 ... passed in 0.000s Then the reported column width is 914400 ... passed in 0.000s Scenario Outline: Set column width -- @1.3 table column width values Given a table column having a width of 1440 ... passed in 0.002s When I set the column width to None ... passed in 0.000s Then the reported column width is None ... passed in 0.000s Scenario Outline: Set column width -- @1.4 table column width values Given a table column having a width of 1440 ... passed in 0.002s When I set the column width to 914400 ... passed in 0.000s Then the reported column width is 914400 ... passed in 0.000s Scenario Outline: Set column width -- @1.5 table column width values Given a table column having a width of 1440 ... passed in 0.002s When I set the column width to 424497 ... passed in 0.000s Then the reported column width is 424180 ... passed in 0.000s Feature: Access table rows and columns Scenario: Access table row collection Given a table having two rows ... passed in 0.002s Then I can access the row collection of the table ... passed in 0.000s And the length of the row collection is 2 ... passed in 0.000s Scenario: Access row in row collection Given a row collection having two rows ... passed in 0.002s Then I can iterate over the row collection ... passed in 0.000s And I can access a collection row by index ... passed in 0.000s Scenario: Access table column collection Given a table having two columns ... passed in 0.002s Then I can access the column collection of the table ... passed in 0.000s And the length of the column collection is 2 ... passed in 0.000s Scenario: Access column in column collection Given a column collection having two columns ... passed in 0.002s Then I can iterate over the column collection ... passed in 0.000s And I can access a collection column by index ... passed in 0.000s 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.002s When I merge from cell 1 to cell 2 ... passed in 0.003s Then the row cells text is 1\2 1\2 3 4 5 6 7 8 9 ... passed in 0.001s Scenario Outline: Merge cells -- @1.2 Reported row cell contents Given a 3x3 table having only uniform cells ... passed in 0.002s When I merge from cell 2 to cell 5 ... passed in 0.003s Then the row cells text is 1 2\5 3 4 2\5 6 7 8 9 ... passed in 0.001s Scenario Outline: Merge cells -- @1.3 Reported row cell contents Given a 3x3 table having only uniform cells ... passed in 0.002s When I merge from cell 5 to cell 9 ... passed in 0.003s 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.002s 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.002s When I merge from cell 4 to cell 8 ... passed in 0.003s 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.002s 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.002s When I merge from cell 4 to cell 6 ... passed in 0.003s Then the row cells text is 1 2 3 4\6 4\6 4\6 7 8 9 ... passed in 0.001s 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.002s When I merge from cell 2 to cell 4 ... passed in 0.003s 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.002s 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.002s When I merge from cell 5 to cell 9 ... passed in 0.004s 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.002s 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.002s When I merge from cell 2 to cell 5 ... passed in 0.004s Then the row cells text is 1 2\5 3 4 2\5 6 7 2\5 9 ... passed in 0.002s 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.002s When I merge from cell 7 to cell 5 ... passed in 0.004s 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.001s Scenario Outline: Horizontal span adds cell widths -- @1.1 Reported row cell contents Given a 3x3 table having only uniform cells ... passed in 0.002s When I merge from cell 1 to cell 2 ... passed in 0.003s Then the width of cell 1 is 2.0 inches ... passed in 0.000s Scenario Outline: Horizontal span adds cell widths -- @1.2 Reported row cell contents Given a 3x3 table having only uniform cells ... passed in 0.002s When I merge from cell 1 to cell 5 ... passed in 0.003s Then the width of cell 1 is 2.0 inches ... passed in 0.000s Scenario Outline: Horizontal span adds cell widths -- @1.3 Reported row cell contents Given a 3x3 table having a horizontal span ... passed in 0.002s When I merge from cell 4 to cell 6 ... passed in 0.003s Then the width of cell 4 is 3.0 inches ... passed in 0.000s Scenario Outline: Horizontal span adds cell widths -- @1.4 Reported row cell contents Given a 3x3 table having a vertical span ... passed in 0.002s When I merge from cell 5 to cell 2 ... passed in 0.003s Then the width of cell 2 is 1.0 inches ... passed in 0.000s Scenario Outline: Horizontal span adds cell widths -- @1.5 Reported row cell contents Given a 3x3 table having a vertical span ... passed in 0.002s When I merge from cell 5 to cell 7 ... passed in 0.004s Then the width of cell 5 is 2.0 inches ... passed in 0.000s 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.002s Then table.alignment is None ... passed in 0.000s Scenario Outline: Get table alignment -- @1.2 table alignment settings Given a table having left alignment ... passed in 0.002s Then table.alignment is WD_TABLE_ALIGNMENT.LEFT ... passed in 0.000s Scenario Outline: Get table alignment -- @1.3 table alignment settings Given a table having right alignment ... passed in 0.002s Then table.alignment is WD_TABLE_ALIGNMENT.RIGHT ... passed in 0.000s Scenario Outline: Get table alignment -- @1.4 table alignment settings Given a table having center alignment ... passed in 0.002s Then table.alignment is WD_TABLE_ALIGNMENT.CENTER ... passed in 0.000s Scenario Outline: Set table alignment -- @1.1 results of assignment to table.alignment Given a table having inherited alignment ... passed in 0.002s When I assign WD_TABLE_ALIGNMENT.LEFT to table.alignment ... passed in 0.000s Then table.alignment is WD_TABLE_ALIGNMENT.LEFT ... passed in 0.000s Scenario Outline: Set table alignment -- @1.2 results of assignment to table.alignment Given a table having left alignment ... passed in 0.002s When I assign WD_TABLE_ALIGNMENT.RIGHT to table.alignment ... passed in 0.000s Then table.alignment is WD_TABLE_ALIGNMENT.RIGHT ... passed in 0.000s Scenario Outline: Set table alignment -- @1.3 results of assignment to table.alignment Given a table having right alignment ... passed in 0.002s When I assign WD_TABLE_ALIGNMENT.CENTER to table.alignment ... passed in 0.000s Then table.alignment is WD_TABLE_ALIGNMENT.CENTER ... passed in 0.000s Scenario Outline: Set table alignment -- @1.4 results of assignment to table.alignment Given a table having center alignment ... passed in 0.002s When I assign None to table.alignment ... passed in 0.000s Then table.alignment is None ... passed in 0.000s 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.008s Then the reported autofit setting is autofit ... passed in 0.000s Scenario Outline: Get autofit layout setting -- @1.2 table autofit settings Given a table having an autofit layout of autofit ... passed in 0.002s Then the reported autofit setting is autofit ... passed in 0.000s Scenario Outline: Get autofit layout setting -- @1.3 table autofit settings Given a table having an autofit layout of fixed ... passed in 0.002s Then the reported autofit setting is fixed ... passed in 0.000s 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.002s When I set the table autofit to autofit ... passed in 0.000s Then the reported autofit setting is autofit ... passed in 0.000s 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.002s When I set the table autofit to fixed ... passed in 0.000s Then the reported autofit setting is fixed ... passed in 0.000s Scenario Outline: Set autofit layout setting -- @1.3 table column width values Given a table having an autofit layout of fixed ... passed in 0.002s When I set the table autofit to autofit ... passed in 0.000s Then the reported autofit setting is autofit ... passed in 0.000s Scenario Outline: Set autofit layout setting -- @1.4 table column width values Given a table having an autofit layout of autofit ... passed in 0.003s When I set the table autofit to autofit ... passed in 0.000s Then the reported autofit setting is autofit ... passed in 0.000s Scenario Outline: Set autofit layout setting -- @1.5 table column width values Given a table having an autofit layout of fixed ... passed in 0.002s When I set the table autofit to fixed ... passed in 0.000s Then the reported autofit setting is fixed ... passed in 0.000s Scenario Outline: Set autofit layout setting -- @1.6 table column width values Given a table having an autofit layout of autofit ... passed in 0.002s When I set the table autofit to fixed ... passed in 0.000s Then the reported autofit setting is fixed ... passed in 0.000s Scenario Outline: Get table direction -- @1.1 Table on/off property values Given a table having table direction set to inherit ... passed in 0.002s Then table.table_direction is None ... passed in 0.000s 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.002s Then table.table_direction is RTL ... passed in 0.000s 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.002s Then table.table_direction is LTR ... passed in 0.000s 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.002s When I assign RTL to table.table_direction ... passed in 0.000s Then table.table_direction is RTL ... passed in 0.000s 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.002s When I assign LTR to table.table_direction ... passed in 0.000s Then table.table_direction is LTR ... passed in 0.000s 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.002s When I assign None to table.table_direction ... passed in 0.000s Then table.table_direction is None ... passed in 0.000s 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.002s Then row.grid_cols_after is 0 ... passed in 0.000s 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.002s Then row.grid_cols_after is 1 ... passed in 0.000s 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.005s Then row.grid_cols_after is 2 ... passed in 0.000s 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.003s Then row.grid_cols_before is 0 ... passed in 0.000s 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.003s Then row.grid_cols_before is 1 ... passed in 0.000s 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.002s Then row.grid_cols_before is 3 ... passed in 0.000s 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.002s Then row.height_rule is None ... passed in 0.000s Scenario Outline: Get Row.height_rule -- @1.2 Row.height_rule value cases Given a table row having height rule automatic ... passed in 0.003s Then row.height_rule is AUTO ... passed in 0.000s 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.002s Then row.height_rule is AT_LEAST ... passed in 0.000s 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.002s When I assign AUTO to row.height_rule ... passed in 0.000s Then row.height_rule is AUTO ... passed in 0.000s Scenario Outline: Set Row.height_rule -- @1.2 Row.height_rule assignment cases Given a table row having height rule automatic ... passed in 0.002s When I assign AT_LEAST to row.height_rule ... passed in 0.000s Then row.height_rule is AT_LEAST ... passed in 0.000s 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.002s When I assign None to row.height_rule ... passed in 0.000s Then row.height_rule is None ... passed in 0.000s 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.002s When I assign None to row.height_rule ... passed in 0.000s Then row.height_rule is None ... passed in 0.000s Scenario Outline: Get Row.height -- @1.1 Row.height value cases Given a table row having height of no explicit setting ... passed in 0.002s Then row.height is None ... passed in 0.000s Scenario Outline: Get Row.height -- @1.2 Row.height value cases Given a table row having height of 2 inches ... passed in 0.002s Then row.height is 1828800 ... passed in 0.000s Scenario Outline: Get Row.height -- @1.3 Row.height value cases Given a table row having height of 3 inches ... passed in 0.002s Then row.height is 2743200 ... passed in 0.000s Scenario Outline: Set row height -- @1.1 Row.height assignment cases Given a table row having height of no explicit setting ... passed in 0.002s When I assign 1828800 to row.height ... passed in 0.000s Then row.height is 1828800 ... passed in 0.000s Scenario Outline: Set row height -- @1.2 Row.height assignment cases Given a table row having height of 2 inches ... passed in 0.002s When I assign 2743200 to row.height ... passed in 0.000s Then row.height is 2743200 ... passed in 0.000s Scenario Outline: Set row height -- @1.3 Row.height assignment cases Given a table row having height of 3 inches ... passed in 0.005s When I assign None to row.height ... passed in 0.000s Then row.height is None ... passed in 0.000s Scenario Outline: Set row height -- @1.4 Row.height assignment cases Given a table row having height of no explicit setting ... passed in 0.002s When I assign None to row.height ... passed in 0.000s Then row.height is None ... passed in 0.000s 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.002s Then table.style is styles['Normal Table'] ... passed in 0.000s Scenario Outline: Get the style of a table -- @1.2 Table styles Given a table having Table Grid style ... passed in 0.003s Then table.style is styles['Table Grid'] ... passed in 0.000s Scenario Outline: Get the style of a table -- @1.3 Table styles Given a table having Light Shading - Accent 1 style ... passed in 0.002s Then table.style is styles['Light Shading Accent 1'] ... passed in 0.000s Scenario Outline: Apply a table style -- @1.1 Character style transitions Given a table having no explicit style ... passed in 0.002s When I assign Table Grid to table.style ... passed in 0.001s Then table.style is styles['Table Grid'] ... passed in 0.000s Scenario Outline: Apply a table style -- @1.2 Character style transitions Given a table having no explicit style ... passed in 0.002s When I assign styles['Table Grid'] to table.style ... passed in 0.000s Then table.style is styles['Table Grid'] ... passed in 0.000s Scenario Outline: Apply a table style -- @1.3 Character style transitions Given a table having Table Grid style ... passed in 0.002s When I assign Normal Table to table.style ... passed in 0.000s Then table.style is styles['Normal Table'] ... passed in 0.000s Scenario Outline: Apply a table style -- @1.4 Character style transitions Given a table having Table Grid style ... passed in 0.002s When I assign styles['Normal Table'] to table.style ... passed in 0.000s Then table.style is styles['Normal Table'] ... passed in 0.000s Scenario Outline: Apply a table style -- @1.5 Character style transitions Given a table having Table Grid style ... passed in 0.002s When I assign None to table.style ... passed in 0.000s Then table.style is styles['Normal Table'] ... passed in 0.000s Feature: Add a line, page, or column break Scenario: Add a line break Given a run ... passed in 0.009s When I add a line break ... passed in 0.000s Then the last item in the run is a break ... passed in 0.000s And it is a line break ... passed in 0.000s Scenario: Add a page break Given a run ... passed in 0.009s When I add a page break ... passed in 0.000s Then the last item in the run is a break ... passed in 0.000s And it is a page break ... passed in 0.000s Scenario: Add a column break Given a run ... passed in 0.009s When I add a column break ... passed in 0.000s Then the last item in the run is a break ... passed in 0.000s And it is a column break ... passed in 0.000s 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.002s Then font.color.type is None ... passed in 0.000s Scenario Outline: Get font color type -- @1.2 Color type settings Given a font having auto color ... passed in 0.002s Then font.color.type is AUTO ... passed in 0.000s Scenario Outline: Get font color type -- @1.3 Color type settings Given a font having an RGB color ... passed in 0.002s Then font.color.type is RGB ... passed in 0.000s Scenario Outline: Get font color type -- @1.4 Color type settings Given a font having a theme color ... passed in 0.002s Then font.color.type is THEME ... passed in 0.000s Scenario Outline: Get font RGB color -- @1.1 Color type settings Given a font having no color ... passed in 0.015s Then font.color.rgb is None ... passed in 0.000s Scenario Outline: Get font RGB color -- @1.2 Color type settings Given a font having auto color ... passed in 0.002s Then font.color.rgb is None ... passed in 0.000s Scenario Outline: Get font RGB color -- @1.3 Color type settings Given a font having an RGB color ... passed in 0.002s Then font.color.rgb is 008000 ... passed in 0.000s Scenario Outline: Get font RGB color -- @1.4 Color type settings Given a font having a theme color ... passed in 0.002s Then font.color.rgb is 4f81bd ... passed in 0.000s Scenario Outline: Set font RGB color -- @1.1 Color type settings Given a font having no color ... passed in 0.002s When I assign f00ba5 to font.color.rgb ... passed in 0.000s Then font.color.type is RGB ... passed in 0.000s Then font.color.rgb is f00ba5 ... passed in 0.000s Scenario Outline: Set font RGB color -- @1.2 Color type settings Given a font having auto color ... passed in 0.002s When I assign 2468ac to font.color.rgb ... passed in 0.000s Then font.color.type is RGB ... passed in 0.000s Then font.color.rgb is 2468ac ... passed in 0.000s Scenario Outline: Set font RGB color -- @1.3 Color type settings Given a font having an RGB color ... passed in 0.002s When I assign feeb1e to font.color.rgb ... passed in 0.000s Then font.color.type is RGB ... passed in 0.000s Then font.color.rgb is feeb1e ... passed in 0.000s Scenario Outline: Set font RGB color -- @1.4 Color type settings Given a font having a theme color ... passed in 0.002s When I assign 987bac to font.color.rgb ... passed in 0.000s Then font.color.type is RGB ... passed in 0.000s Then font.color.rgb is 987bac ... passed in 0.000s Scenario Outline: Set font RGB color -- @1.5 Color type settings Given a font having an RGB color ... passed in 0.002s When I assign None to font.color.rgb ... passed in 0.000s Then font.color.type is None ... passed in 0.000s Then font.color.rgb is None ... passed in 0.000s Scenario Outline: Set font RGB color -- @1.6 Color type settings Given a font having a theme color ... passed in 0.002s When I assign None to font.color.rgb ... passed in 0.000s Then font.color.type is None ... passed in 0.000s Then font.color.rgb is None ... passed in 0.000s Scenario Outline: Get font theme color -- @1.1 Color type settings Given a font having no color ... passed in 0.002s Then font.color.theme_color is None ... passed in 0.000s Scenario Outline: Get font theme color -- @1.2 Color type settings Given a font having auto color ... passed in 0.002s Then font.color.theme_color is None ... passed in 0.000s Scenario Outline: Get font theme color -- @1.3 Color type settings Given a font having an RGB color ... passed in 0.002s Then font.color.theme_color is None ... passed in 0.000s Scenario Outline: Get font theme color -- @1.4 Color type settings Given a font having a theme color ... passed in 0.002s Then font.color.theme_color is ACCENT_1 ... passed in 0.000s Scenario Outline: Set font theme color -- @1.1 Color type settings Given a font having no color ... passed in 0.002s When I assign ACCENT_2 to font.color.theme_color ... passed in 0.000s Then font.color.type is THEME ... passed in 0.000s Then font.color.theme_color is ACCENT_2 ... passed in 0.000s Scenario Outline: Set font theme color -- @1.2 Color type settings Given a font having auto color ... passed in 0.002s When I assign DARK_1 to font.color.theme_color ... passed in 0.000s Then font.color.type is THEME ... passed in 0.000s Then font.color.theme_color is DARK_1 ... passed in 0.000s Scenario Outline: Set font theme color -- @1.3 Color type settings Given a font having an RGB color ... passed in 0.005s When I assign TEXT_1 to font.color.theme_color ... passed in 0.000s Then font.color.type is THEME ... passed in 0.000s Then font.color.theme_color is TEXT_1 ... passed in 0.000s Scenario Outline: Set font theme color -- @1.4 Color type settings Given a font having a theme color ... passed in 0.002s When I assign LIGHT_2 to font.color.theme_color ... passed in 0.000s Then font.color.type is THEME ... passed in 0.000s Then font.color.theme_color is LIGHT_2 ... passed in 0.000s Scenario Outline: Set font theme color -- @1.5 Color type settings Given a font having a theme color ... passed in 0.002s When I assign None to font.color.theme_color ... passed in 0.000s Then font.color.type is None ... passed in 0.000s Then font.color.theme_color is None ... passed in 0.000s Scenario Outline: Set font theme color -- @1.6 Color type settings Given a font having an RGB color ... passed in 0.002s When I assign None to font.color.theme_color ... passed in 0.000s Then font.color.type is None ... passed in 0.000s Then font.color.theme_color is None ... passed in 0.000s 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.002s Then font.highlight_color is None ... passed in 0.000s Scenario Outline: Get highlight color -- @1.2 font.highlight_color values Given a font having yellow highlighting ... passed in 0.002s Then font.highlight_color is YELLOW ... passed in 0.000s Scenario Outline: Get highlight color -- @1.3 font.highlight_color values Given a font having bright green highlighting ... passed in 0.002s Then font.highlight_color is BRIGHT_GREEN ... passed in 0.000s Scenario Outline: Set highlight color -- @1.1 font.highlight_color values Given a font having no highlighting ... passed in 0.002s When I assign YELLOW to font.highlight_color ... passed in 0.000s Then font.highlight_color is YELLOW ... passed in 0.000s Scenario Outline: Set highlight color -- @1.2 font.highlight_color values Given a font having yellow highlighting ... passed in 0.002s When I assign None to font.highlight_color ... passed in 0.000s Then font.highlight_color is None ... passed in 0.000s Scenario Outline: Set highlight color -- @1.3 font.highlight_color values Given a font having bright green highlighting ... passed in 0.002s When I assign BRIGHT_GREEN to font.highlight_color ... passed in 0.000s Then font.highlight_color is BRIGHT_GREEN ... passed in 0.000s Scenario Outline: Get typeface name -- @1.1 font.name values Given a font having typeface name not specified ... passed in 0.002s Then font.name is None ... passed in 0.000s Scenario Outline: Get typeface name -- @1.2 font.name values Given a font having typeface name Avenir Black ... passed in 0.002s Then font.name is Avenir Black ... passed in 0.000s Scenario Outline: Set typeface name -- @1.1 font.name values Given a font having typeface name not specified ... passed in 0.002s When I assign Avenir Black to font.name ... passed in 0.001s Then font.name is Avenir Black ... passed in 0.000s Scenario Outline: Set typeface name -- @1.2 font.name values Given a font having typeface name Avenir Black ... passed in 0.003s When I assign Calibri to font.name ... passed in 0.000s Then font.name is Calibri ... passed in 0.000s Scenario Outline: Set typeface name -- @1.3 font.name values Given a font having typeface name Avenir Black ... passed in 0.002s When I assign None to font.name ... passed in 0.000s Then font.name is None ... passed in 0.000s Scenario Outline: Get font size -- @1.1 font.size values Given a font of size unspecified ... passed in 0.002s Then font.size is None ... passed in 0.000s Scenario Outline: Get font size -- @1.2 font.size values Given a font of size 14 pt ... passed in 0.002s Then font.size is 177800 ... passed in 0.000s Scenario Outline: Set font size -- @1.1 font.size post-assignment values Given a font of size unspecified ... passed in 0.002s When I assign 177800 to font.size ... passed in 0.000s Then font.size is 177800 ... passed in 0.000s Scenario Outline: Set font size -- @1.2 font.size post-assignment values Given a font of size 14 pt ... passed in 0.002s When I assign 228600 to font.size ... passed in 0.000s Then font.size is 228600 ... passed in 0.000s Scenario Outline: Set font size -- @1.3 font.size post-assignment values Given a font of size 18 pt ... passed in 0.002s When I assign None to font.size ... passed in 0.000s Then font.size is None ... passed in 0.000s Scenario: Get font color object Given a font ... passed in 0.008s Then font.color is a ColorFormat object ... passed in 0.000s Scenario Outline: Get font underline value -- @1.1 font underline values Given a font having inherited underline ... passed in 0.002s Then font.underline is None ... passed in 0.000s Scenario Outline: Get font underline value -- @1.2 font underline values Given a font having no underline ... passed in 0.002s Then font.underline is False ... passed in 0.000s Scenario Outline: Get font underline value -- @1.3 font underline values Given a font having single underline ... passed in 0.002s Then font.underline is True ... passed in 0.000s Scenario Outline: Get font underline value -- @1.4 font underline values Given a font having double underline ... passed in 0.002s Then font.underline is WD_UNDERLINE.DOUBLE ... passed in 0.000s Scenario Outline: Change font underline -- @1.1 underline property values Given a font having inherited underline ... passed in 0.003s When I assign True to font.underline ... passed in 0.000s Then font.underline is True ... passed in 0.000s Scenario Outline: Change font underline -- @1.2 underline property values Given a font having inherited underline ... passed in 0.002s When I assign False to font.underline ... passed in 0.000s Then font.underline is False ... passed in 0.000s Scenario Outline: Change font underline -- @1.3 underline property values Given a font having inherited underline ... passed in 0.002s When I assign None to font.underline ... passed in 0.000s Then font.underline is None ... passed in 0.000s Scenario Outline: Change font underline -- @1.4 underline property values Given a font having inherited underline ... passed in 0.002s When I assign WD_UNDERLINE.SINGLE to font.underline ... passed in 0.000s Then font.underline is True ... passed in 0.000s Scenario Outline: Change font underline -- @1.5 underline property values Given a font having inherited underline ... passed in 0.002s When I assign WD_UNDERLINE.DOUBLE to font.underline ... passed in 0.000s Then font.underline is WD_UNDERLINE.DOUBLE ... passed in 0.000s Scenario Outline: Change font underline -- @1.6 underline property values Given a font having single underline ... passed in 0.002s When I assign None to font.underline ... passed in 0.000s Then font.underline is None ... passed in 0.000s Scenario Outline: Change font underline -- @1.7 underline property values Given a font having single underline ... passed in 0.002s When I assign True to font.underline ... passed in 0.000s Then font.underline is True ... passed in 0.000s Scenario Outline: Change font underline -- @1.8 underline property values Given a font having single underline ... passed in 0.003s When I assign False to font.underline ... passed in 0.000s Then font.underline is False ... passed in 0.000s Scenario Outline: Change font underline -- @1.9 underline property values Given a font having single underline ... passed in 0.002s When I assign WD_UNDERLINE.SINGLE to font.underline ... passed in 0.000s Then font.underline is True ... passed in 0.000s Scenario Outline: Change font underline -- @1.10 underline property values Given a font having single underline ... passed in 0.003s When I assign WD_UNDERLINE.DOUBLE to font.underline ... passed in 0.000s Then font.underline is WD_UNDERLINE.DOUBLE ... passed in 0.000s Scenario Outline: Get font sub/superscript value -- @1.1 font sub/superscript values Given a font having inherited vertical alignment ... passed in 0.009s Then font.subscript is None ... passed in 0.000s And font.superscript is None ... passed in 0.000s Scenario Outline: Get font sub/superscript value -- @1.2 font sub/superscript values Given a font having subscript vertical alignment ... passed in 0.004s Then font.subscript is True ... passed in 0.000s And font.superscript is False ... passed in 0.000s Scenario Outline: Get font sub/superscript value -- @1.3 font sub/superscript values Given a font having superscript vertical alignment ... passed in 0.002s Then font.subscript is False ... passed in 0.000s And font.superscript is True ... passed in 0.000s Scenario Outline: Change font sub/superscript -- @1.1 value of sub/superscript after assignment Given a font having inherited vertical alignment ... passed in 0.003s When I assign True to font.subscript ... passed in 0.000s Then font.subscript is True ... passed in 0.000s Scenario Outline: Change font sub/superscript -- @1.2 value of sub/superscript after assignment Given a font having inherited vertical alignment ... passed in 0.002s When I assign True to font.subscript ... passed in 0.000s Then font.superscript is False ... passed in 0.000s Scenario Outline: Change font sub/superscript -- @1.3 value of sub/superscript after assignment Given a font having inherited vertical alignment ... passed in 0.003s When I assign False to font.subscript ... passed in 0.000s Then font.subscript is None ... passed in 0.000s Scenario Outline: Change font sub/superscript -- @1.4 value of sub/superscript after assignment Given a font having inherited vertical alignment ... passed in 0.003s When I assign True to font.superscript ... passed in 0.000s Then font.superscript is True ... passed in 0.000s Scenario Outline: Change font sub/superscript -- @1.5 value of sub/superscript after assignment Given a font having inherited vertical alignment ... passed in 0.003s When I assign True to font.superscript ... passed in 0.000s Then font.subscript is False ... passed in 0.000s Scenario Outline: Change font sub/superscript -- @1.6 value of sub/superscript after assignment Given a font having inherited vertical alignment ... passed in 0.002s When I assign False to font.superscript ... passed in 0.000s Then font.superscript is None ... passed in 0.000s Scenario Outline: Change font sub/superscript -- @1.7 value of sub/superscript after assignment Given a font having subscript vertical alignment ... passed in 0.003s When I assign True to font.subscript ... passed in 0.000s Then font.subscript is True ... passed in 0.000s Scenario Outline: Change font sub/superscript -- @1.8 value of sub/superscript after assignment Given a font having subscript vertical alignment ... passed in 0.003s When I assign False to font.subscript ... passed in 0.000s Then font.subscript is None ... passed in 0.000s Scenario Outline: Change font sub/superscript -- @1.9 value of sub/superscript after assignment Given a font having subscript vertical alignment ... passed in 0.002s When I assign None to font.subscript ... passed in 0.000s Then font.subscript is None ... passed in 0.000s Scenario Outline: Change font sub/superscript -- @1.10 value of sub/superscript after assignment Given a font having subscript vertical alignment ... passed in 0.002s When I assign True to font.superscript ... passed in 0.000s Then font.subscript is False ... passed in 0.000s Scenario Outline: Change font sub/superscript -- @1.11 value of sub/superscript after assignment Given a font having subscript vertical alignment ... passed in 0.002s When I assign False to font.superscript ... passed in 0.000s Then font.subscript is True ... passed in 0.000s Scenario Outline: Change font sub/superscript -- @1.12 value of sub/superscript after assignment Given a font having subscript vertical alignment ... passed in 0.002s When I assign None to font.superscript ... passed in 0.000s Then font.subscript is None ... passed in 0.000s Scenario Outline: Change font sub/superscript -- @1.13 value of sub/superscript after assignment Given a font having superscript vertical alignment ... passed in 0.002s When I assign True to font.superscript ... passed in 0.000s Then font.superscript is True ... passed in 0.000s Scenario Outline: Change font sub/superscript -- @1.14 value of sub/superscript after assignment Given a font having superscript vertical alignment ... passed in 0.008s When I assign False to font.superscript ... passed in 0.000s Then font.superscript is None ... passed in 0.000s Scenario Outline: Change font sub/superscript -- @1.15 value of sub/superscript after assignment Given a font having superscript vertical alignment ... passed in 0.002s When I assign None to font.superscript ... passed in 0.000s Then font.superscript is None ... passed in 0.000s Scenario Outline: Change font sub/superscript -- @1.16 value of sub/superscript after assignment Given a font having superscript vertical alignment ... passed in 0.002s When I assign True to font.subscript ... passed in 0.000s Then font.superscript is False ... passed in 0.000s Scenario Outline: Change font sub/superscript -- @1.17 value of sub/superscript after assignment Given a font having superscript vertical alignment ... passed in 0.002s When I assign False to font.subscript ... passed in 0.000s Then font.superscript is True ... passed in 0.000s Scenario Outline: Change font sub/superscript -- @1.18 value of sub/superscript after assignment Given a font having superscript vertical alignment ... passed in 0.002s When I assign None to font.subscript ... passed in 0.000s Then font.superscript is None ... passed in 0.000s Scenario Outline: Apply boolean property to a run -- @1.1 Boolean run properties Given a run ... passed in 0.009s When I assign True to its all_caps property ... passed in 0.000s Then the run appears in all_caps unconditionally ... passed in 0.000s Scenario Outline: Apply boolean property to a run -- @1.2 Boolean run properties Given a run ... passed in 0.009s When I assign True to its bold property ... passed in 0.000s Then the run appears in bold unconditionally ... passed in 0.000s Scenario Outline: Apply boolean property to a run -- @1.3 Boolean run properties Given a run ... passed in 0.009s When I assign True to its complex_script property ... passed in 0.000s Then the run appears in complex_script unconditionally ... passed in 0.000s Scenario Outline: Apply boolean property to a run -- @1.4 Boolean run properties Given a run ... passed in 0.009s When I assign True to its cs_bold property ... passed in 0.000s Then the run appears in cs_bold unconditionally ... passed in 0.000s Scenario Outline: Apply boolean property to a run -- @1.5 Boolean run properties Given a run ... passed in 0.009s When I assign True to its cs_italic property ... passed in 0.000s Then the run appears in cs_italic unconditionally ... passed in 0.000s Scenario Outline: Apply boolean property to a run -- @1.6 Boolean run properties Given a run ... passed in 0.009s When I assign True to its double_strike property ... passed in 0.000s Then the run appears in double_strike unconditionally ... passed in 0.000s Scenario Outline: Apply boolean property to a run -- @1.7 Boolean run properties Given a run ... passed in 0.011s When I assign True to its emboss property ... passed in 0.000s Then the run appears in emboss unconditionally ... passed in 0.000s Scenario Outline: Apply boolean property to a run -- @1.8 Boolean run properties Given a run ... passed in 0.011s When I assign True to its hidden property ... passed in 0.000s Then the run appears in hidden unconditionally ... passed in 0.000s Scenario Outline: Apply boolean property to a run -- @1.9 Boolean run properties Given a run ... passed in 0.038s When I assign True to its italic property ... passed in 0.000s Then the run appears in italic unconditionally ... passed in 0.000s Scenario Outline: Apply boolean property to a run -- @1.10 Boolean run properties Given a run ... passed in 0.009s When I assign True to its imprint property ... passed in 0.000s Then the run appears in imprint unconditionally ... passed in 0.000s Scenario Outline: Apply boolean property to a run -- @1.11 Boolean run properties Given a run ... passed in 0.009s When I assign True to its math property ... passed in 0.000s Then the run appears in math unconditionally ... passed in 0.000s Scenario Outline: Apply boolean property to a run -- @1.12 Boolean run properties Given a run ... passed in 0.009s When I assign True to its no_proof property ... passed in 0.000s Then the run appears in no_proof unconditionally ... passed in 0.000s Scenario Outline: Apply boolean property to a run -- @1.13 Boolean run properties Given a run ... passed in 0.009s When I assign True to its outline property ... passed in 0.000s Then the run appears in outline unconditionally ... passed in 0.000s Scenario Outline: Apply boolean property to a run -- @1.14 Boolean run properties Given a run ... passed in 0.009s When I assign True to its rtl property ... passed in 0.000s Then the run appears in rtl unconditionally ... passed in 0.000s Scenario Outline: Apply boolean property to a run -- @1.15 Boolean run properties Given a run ... passed in 0.009s When I assign True to its shadow property ... passed in 0.000s Then the run appears in shadow unconditionally ... passed in 0.000s Scenario Outline: Apply boolean property to a run -- @1.16 Boolean run properties Given a run ... passed in 0.009s When I assign True to its small_caps property ... passed in 0.000s Then the run appears in small_caps unconditionally ... passed in 0.000s Scenario Outline: Apply boolean property to a run -- @1.17 Boolean run properties Given a run ... passed in 0.009s When I assign True to its snap_to_grid property ... passed in 0.000s Then the run appears in snap_to_grid unconditionally ... passed in 0.000s Scenario Outline: Apply boolean property to a run -- @1.18 Boolean run properties Given a run ... passed in 0.010s When I assign True to its spec_vanish property ... passed in 0.000s Then the run appears in spec_vanish unconditionally ... passed in 0.000s Scenario Outline: Apply boolean property to a run -- @1.19 Boolean run properties Given a run ... passed in 0.012s When I assign True to its strike property ... passed in 0.000s Then the run appears in strike unconditionally ... passed in 0.000s Scenario Outline: Apply boolean property to a run -- @1.20 Boolean run properties Given a run ... passed in 0.012s When I assign True to its web_hidden property ... passed in 0.000s Then the run appears in web_hidden unconditionally ... passed in 0.000s Scenario Outline: Set all_caps off unconditionally -- @1.1 Boolean run properties Given a run ... passed in 0.012s When I assign False to its all_caps property ... passed in 0.000s Then the run appears without all_caps unconditionally ... passed in 0.000s Scenario Outline: Set bold off unconditionally -- @1.2 Boolean run properties Given a run ... passed in 0.045s When I assign False to its bold property ... passed in 0.000s Then the run appears without bold unconditionally ... passed in 0.000s Scenario Outline: Set complex_script off unconditionally -- @1.3 Boolean run properties Given a run ... passed in 0.009s When I assign False to its complex_script property ... passed in 0.000s Then the run appears without complex_script unconditionally ... passed in 0.000s Scenario Outline: Set cs_bold off unconditionally -- @1.4 Boolean run properties Given a run ... passed in 0.009s When I assign False to its cs_bold property ... passed in 0.000s Then the run appears without cs_bold unconditionally ... passed in 0.000s Scenario Outline: Set cs_italic off unconditionally -- @1.5 Boolean run properties Given a run ... passed in 0.009s When I assign False to its cs_italic property ... passed in 0.000s Then the run appears without cs_italic unconditionally ... passed in 0.000s Scenario Outline: Set double_strike off unconditionally -- @1.6 Boolean run properties Given a run ... passed in 0.010s When I assign False to its double_strike property ... passed in 0.000s Then the run appears without double_strike unconditionally ... passed in 0.000s Scenario Outline: Set emboss off unconditionally -- @1.7 Boolean run properties Given a run ... passed in 0.010s When I assign False to its emboss property ... passed in 0.000s Then the run appears without emboss unconditionally ... passed in 0.000s Scenario Outline: Set hidden off unconditionally -- @1.8 Boolean run properties Given a run ... passed in 0.009s When I assign False to its hidden property ... passed in 0.000s Then the run appears without hidden unconditionally ... passed in 0.000s Scenario Outline: Set italic off unconditionally -- @1.9 Boolean run properties Given a run ... passed in 0.009s When I assign False to its italic property ... passed in 0.000s Then the run appears without italic unconditionally ... passed in 0.000s Scenario Outline: Set imprint off unconditionally -- @1.10 Boolean run properties Given a run ... passed in 0.009s When I assign False to its imprint property ... passed in 0.000s Then the run appears without imprint unconditionally ... passed in 0.000s Scenario Outline: Set math off unconditionally -- @1.11 Boolean run properties Given a run ... passed in 0.009s When I assign False to its math property ... passed in 0.000s Then the run appears without math unconditionally ... passed in 0.000s Scenario Outline: Set no_proof off unconditionally -- @1.12 Boolean run properties Given a run ... passed in 0.009s When I assign False to its no_proof property ... passed in 0.000s Then the run appears without no_proof unconditionally ... passed in 0.000s Scenario Outline: Set outline off unconditionally -- @1.13 Boolean run properties Given a run ... passed in 0.009s When I assign False to its outline property ... passed in 0.000s Then the run appears without outline unconditionally ... passed in 0.000s Scenario Outline: Set rtl off unconditionally -- @1.14 Boolean run properties Given a run ... passed in 0.011s When I assign False to its rtl property ... passed in 0.000s Then the run appears without rtl unconditionally ... passed in 0.000s Scenario Outline: Set shadow off unconditionally -- @1.15 Boolean run properties Given a run ... passed in 0.011s When I assign False to its shadow property ... passed in 0.000s Then the run appears without shadow unconditionally ... passed in 0.000s Scenario Outline: Set small_caps off unconditionally -- @1.16 Boolean run properties Given a run ... passed in 0.011s When I assign False to its small_caps property ... passed in 0.000s Then the run appears without small_caps unconditionally ... passed in 0.000s Scenario Outline: Set snap_to_grid off unconditionally -- @1.17 Boolean run properties Given a run ... passed in 0.012s When I assign False to its snap_to_grid property ... passed in 0.000s Then the run appears without snap_to_grid unconditionally ... passed in 0.000s Scenario Outline: Set spec_vanish off unconditionally -- @1.18 Boolean run properties Given a run ... passed in 0.011s When I assign False to its spec_vanish property ... passed in 0.000s Then the run appears without spec_vanish unconditionally ... passed in 0.000s Scenario Outline: Set strike off unconditionally -- @1.19 Boolean run properties Given a run ... passed in 0.011s When I assign False to its strike property ... passed in 0.000s Then the run appears without strike unconditionally ... passed in 0.000s Scenario Outline: Set web_hidden off unconditionally -- @1.20 Boolean run properties Given a run ... passed in 0.061s When I assign False to its web_hidden property ... passed in 0.000s Then the run appears without web_hidden unconditionally ... passed in 0.000s Scenario Outline: Remove boolean property from a run -- @1.1 Boolean run properties Given a run having all_caps set on ... passed in 0.009s When I assign None to its all_caps property ... passed in 0.000s Then the run appears with its inherited all_caps setting ... passed in 0.000s Scenario Outline: Remove boolean property from a run -- @1.2 Boolean run properties Given a run having bold set on ... passed in 0.010s When I assign None to its bold property ... passed in 0.000s Then the run appears with its inherited bold setting ... passed in 0.000s Scenario Outline: Remove boolean property from a run -- @1.3 Boolean run properties Given a run having complex_script set on ... passed in 0.009s When I assign None to its complex_script property ... passed in 0.000s Then the run appears with its inherited complex_script setting ... passed in 0.000s Scenario Outline: Remove boolean property from a run -- @1.4 Boolean run properties Given a run having cs_bold set on ... passed in 0.010s When I assign None to its cs_bold property ... passed in 0.000s Then the run appears with its inherited cs_bold setting ... passed in 0.000s Scenario Outline: Remove boolean property from a run -- @1.5 Boolean run properties Given a run having cs_italic set on ... passed in 0.009s When I assign None to its cs_italic property ... passed in 0.000s Then the run appears with its inherited cs_italic setting ... passed in 0.000s Scenario Outline: Remove boolean property from a run -- @1.6 Boolean run properties Given a run having double_strike set on ... passed in 0.009s When I assign None to its double_strike property ... passed in 0.000s Then the run appears with its inherited double_strike setting ... passed in 0.000s Scenario Outline: Remove boolean property from a run -- @1.7 Boolean run properties Given a run having emboss set on ... passed in 0.009s When I assign None to its emboss property ... passed in 0.000s Then the run appears with its inherited emboss setting ... passed in 0.000s Scenario Outline: Remove boolean property from a run -- @1.8 Boolean run properties Given a run having hidden set on ... passed in 0.009s When I assign None to its hidden property ... passed in 0.000s Then the run appears with its inherited hidden setting ... passed in 0.000s Scenario Outline: Remove boolean property from a run -- @1.9 Boolean run properties Given a run having italic set on ... passed in 0.010s When I assign None to its italic property ... passed in 0.000s Then the run appears with its inherited italic setting ... passed in 0.000s Scenario Outline: Remove boolean property from a run -- @1.10 Boolean run properties Given a run having imprint set on ... passed in 0.009s When I assign None to its imprint property ... passed in 0.000s Then the run appears with its inherited imprint setting ... passed in 0.000s Scenario Outline: Remove boolean property from a run -- @1.11 Boolean run properties Given a run having math set on ... passed in 0.009s When I assign None to its math property ... passed in 0.000s Then the run appears with its inherited math setting ... passed in 0.000s Scenario Outline: Remove boolean property from a run -- @1.12 Boolean run properties Given a run having no_proof set on ... passed in 0.009s When I assign None to its no_proof property ... passed in 0.000s Then the run appears with its inherited no_proof setting ... passed in 0.000s Scenario Outline: Remove boolean property from a run -- @1.13 Boolean run properties Given a run having outline set on ... passed in 0.049s When I assign None to its outline property ... passed in 0.000s Then the run appears with its inherited outline setting ... passed in 0.000s Scenario Outline: Remove boolean property from a run -- @1.14 Boolean run properties Given a run having rtl set on ... passed in 0.009s When I assign None to its rtl property ... passed in 0.000s Then the run appears with its inherited rtl setting ... passed in 0.000s Scenario Outline: Remove boolean property from a run -- @1.15 Boolean run properties Given a run having shadow set on ... passed in 0.009s When I assign None to its shadow property ... passed in 0.000s Then the run appears with its inherited shadow setting ... passed in 0.000s Scenario Outline: Remove boolean property from a run -- @1.16 Boolean run properties Given a run having small_caps set on ... passed in 0.010s When I assign None to its small_caps property ... passed in 0.000s Then the run appears with its inherited small_caps setting ... passed in 0.000s 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.009s When I assign None to its snap_to_grid property ... passed in 0.000s Then the run appears with its inherited snap_to_grid setting ... passed in 0.000s Scenario Outline: Remove boolean property from a run -- @1.18 Boolean run properties Given a run having spec_vanish set on ... passed in 0.009s When I assign None to its spec_vanish property ... passed in 0.000s Then the run appears with its inherited spec_vanish setting ... passed in 0.000s Scenario Outline: Remove boolean property from a run -- @1.19 Boolean run properties Given a run having strike set on ... passed in 0.009s When I assign None to its strike property ... passed in 0.000s Then the run appears with its inherited strike setting ... passed in 0.000s Scenario Outline: Remove boolean property from a run -- @1.20 Boolean run properties Given a run having web_hidden set on ... passed in 0.009s When I assign None to its web_hidden property ... passed in 0.000s Then the run appears with its inherited web_hidden setting ... passed in 0.000s Feature: Get or set paragraph formatting properties Scenario: Get tab stops Given a paragraph format ... passed in 0.002s Then paragraph_format.tab_stops is a TabStops object ... passed in 0.000s Scenario Outline: Get paragraph alignment -- @1.1 paragraph_format.alignment values Given a paragraph format having inherited alignment ... passed in 0.002s Then paragraph_format.alignment is None ... passed in 0.000s Scenario Outline: Get paragraph alignment -- @1.2 paragraph_format.alignment values Given a paragraph format having center alignment ... passed in 0.002s Then paragraph_format.alignment is WD_ALIGN_PARAGRAPH.CENTER ... passed in 0.000s Scenario Outline: Get paragraph alignment -- @1.3 paragraph_format.alignment values Given a paragraph format having right alignment ... passed in 0.002s Then paragraph_format.alignment is WD_ALIGN_PARAGRAPH.RIGHT ... passed in 0.000s Scenario Outline: Set paragraph alignment -- @1.1 paragraph_format.alignment assignment results Given a paragraph format having inherited alignment ... passed in 0.002s When I assign WD_ALIGN_PARAGRAPH.CENTER to paragraph_format.alignment ... passed in 0.000s Then paragraph_format.alignment is WD_ALIGN_PARAGRAPH.CENTER ... passed in 0.000s Scenario Outline: Set paragraph alignment -- @1.2 paragraph_format.alignment assignment results Given a paragraph format having center alignment ... passed in 0.002s When I assign WD_ALIGN_PARAGRAPH.RIGHT to paragraph_format.alignment ... passed in 0.000s Then paragraph_format.alignment is WD_ALIGN_PARAGRAPH.RIGHT ... passed in 0.000s Scenario Outline: Set paragraph alignment -- @1.3 paragraph_format.alignment assignment results Given a paragraph format having right alignment ... passed in 0.002s When I assign None to paragraph_format.alignment ... passed in 0.000s Then paragraph_format.alignment is None ... passed in 0.000s Scenario Outline: Get paragraph spacing -- @1.1 paragraph_format spacing values Given a paragraph format having inherited space before ... passed in 0.002s Then paragraph_format.space_before is None ... passed in 0.000s Scenario Outline: Get paragraph spacing -- @1.2 paragraph_format spacing values Given a paragraph format having 24 pt space before ... passed in 0.002s Then paragraph_format.space_before is 304800 ... passed in 0.000s Scenario Outline: Get paragraph spacing -- @1.3 paragraph_format spacing values Given a paragraph format having inherited space after ... passed in 0.002s Then paragraph_format.space_after is None ... passed in 0.000s Scenario Outline: Get paragraph spacing -- @1.4 paragraph_format spacing values Given a paragraph format having 42 pt space after ... passed in 0.027s Then paragraph_format.space_after is 533400 ... passed in 0.000s Scenario Outline: Set paragraph spacing -- @1.1 paragraph_format spacing assignment results Given a paragraph format having inherited space before ... passed in 0.002s When I assign Pt(12) to paragraph_format.space_before ... passed in 0.000s Then paragraph_format.space_before is 152400 ... passed in 0.000s Scenario Outline: Set paragraph spacing -- @1.2 paragraph_format spacing assignment results Given a paragraph format having 24 pt space before ... passed in 0.002s When I assign Pt(18) to paragraph_format.space_before ... passed in 0.000s Then paragraph_format.space_before is 228600 ... passed in 0.000s Scenario Outline: Set paragraph spacing -- @1.3 paragraph_format spacing assignment results Given a paragraph format having 24 pt space before ... passed in 0.002s When I assign None to paragraph_format.space_before ... passed in 0.000s Then paragraph_format.space_before is None ... passed in 0.000s Scenario Outline: Set paragraph spacing -- @1.4 paragraph_format spacing assignment results Given a paragraph format having inherited space after ... passed in 0.002s When I assign Pt(12) to paragraph_format.space_after ... passed in 0.000s Then paragraph_format.space_after is 152400 ... passed in 0.000s Scenario Outline: Set paragraph spacing -- @1.5 paragraph_format spacing assignment results Given a paragraph format having 42 pt space after ... passed in 0.002s When I assign Pt(18) to paragraph_format.space_after ... passed in 0.000s Then paragraph_format.space_after is 228600 ... passed in 0.000s Scenario Outline: Set paragraph spacing -- @1.6 paragraph_format spacing assignment results Given a paragraph format having 42 pt space after ... passed in 0.002s When I assign None to paragraph_format.space_after ... passed in 0.000s Then paragraph_format.space_after is None ... passed in 0.000s Scenario Outline: Get line spacing -- @1.1 paragraph_format.line_spacing values Given a paragraph format having inherited line spacing ... passed in 0.002s Then paragraph_format.line_spacing is None ... passed in 0.000s Then paragraph_format.line_spacing_rule is None ... passed in 0.000s Scenario Outline: Get line spacing -- @1.2 paragraph_format.line_spacing values Given a paragraph format having 14 pt line spacing ... passed in 0.002s Then paragraph_format.line_spacing is 177800 ... passed in 0.000s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.EXACTLY ... passed in 0.000s Scenario Outline: Get line spacing -- @1.3 paragraph_format.line_spacing values Given a paragraph format having double line spacing ... passed in 0.002s Then paragraph_format.line_spacing is 2.0 ... passed in 0.000s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.DOUBLE ... passed in 0.000s Scenario Outline: Set line spacing -- @1.1 paragraph_format.line_spacing assignment results Given a paragraph format having inherited line spacing ... passed in 0.002s When I assign Pt(14) to paragraph_format.line_spacing ... passed in 0.000s Then paragraph_format.line_spacing is 177800 ... passed in 0.000s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.EXACTLY ... passed in 0.000s 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.002s When I assign 2 to paragraph_format.line_spacing ... passed in 0.000s Then paragraph_format.line_spacing is 2.0 ... passed in 0.000s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.DOUBLE ... passed in 0.000s Scenario Outline: Set line spacing -- @1.3 paragraph_format.line_spacing assignment results Given a paragraph format having double line spacing ... passed in 0.002s When I assign 1.75 to paragraph_format.line_spacing ... passed in 0.000s Then paragraph_format.line_spacing is 1.75 ... passed in 0.000s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.MULTIPLE ... passed in 0.000s Scenario Outline: Set line spacing -- @1.4 paragraph_format.line_spacing assignment results Given a paragraph format having inherited line spacing ... passed in 0.002s When I assign 1.0 to paragraph_format.line_spacing ... passed in 0.000s Then paragraph_format.line_spacing is 1.0 ... passed in 0.000s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.SINGLE ... passed in 0.000s 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.002s When I assign 1.5 to paragraph_format.line_spacing ... passed in 0.000s Then paragraph_format.line_spacing is 1.5 ... passed in 0.000s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.ONE_POINT_FIVE ... passed in 0.000s 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.002s When I assign WD_LINE_SPACING.DOUBLE to paragraph_format.line_spacing_rule ... passed in 0.000s Then paragraph_format.line_spacing is 2.0 ... passed in 0.000s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.DOUBLE ... passed in 0.000s 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.005s When I assign WD_LINE_SPACING.SINGLE to paragraph_format.line_spacing_rule ... passed in 0.000s Then paragraph_format.line_spacing is 1.0 ... passed in 0.000s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.SINGLE ... passed in 0.000s 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.002s When I assign WD_LINE_SPACING.AT_LEAST to paragraph_format.line_spacing_rule ... passed in 0.000s Then paragraph_format.line_spacing is 177800 ... passed in 0.000s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.AT_LEAST ... passed in 0.000s 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.002s When I assign None to paragraph_format.line_spacing_rule ... passed in 0.000s Then paragraph_format.line_spacing is 1.1666 ... passed in 0.000s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.MULTIPLE ... passed in 0.000s Scenario Outline: Get paragraph indents -- @1.1 paragraph_format indent values Given a paragraph format having first_line indent of inherit ... passed in 0.002s Then paragraph_format.first_line_indent is None ... passed in 0.000s 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.002s Then paragraph_format.first_line_indent is 228600 ... passed in 0.000s 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.002s Then paragraph_format.first_line_indent is -219710 ... passed in 0.000s Scenario Outline: Get paragraph indents -- @1.4 paragraph_format indent values Given a paragraph format having left indent of inherit ... passed in 0.002s Then paragraph_format.left_indent is None ... passed in 0.000s 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.002s Then paragraph_format.left_indent is 585470 ... passed in 0.000s Scenario Outline: Get paragraph indents -- @1.6 paragraph_format indent values Given a paragraph format having right indent of inherit ... passed in 0.002s Then paragraph_format.right_indent is None ... passed in 0.000s 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.002s Then paragraph_format.right_indent is 219710 ... passed in 0.000s 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.002s When I assign 18 pt to paragraph_format.first_line_indent ... passed in 0.000s Then paragraph_format.first_line_indent is 228600 ... passed in 0.000s 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.002s When I assign -18 pt to paragraph_format.first_line_indent ... passed in 0.000s Then paragraph_format.first_line_indent is -228600 ... passed in 0.000s 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.002s When I assign None to paragraph_format.first_line_indent ... passed in 0.000s Then paragraph_format.first_line_indent is None ... passed in 0.000s Scenario Outline: Set paragraph indents -- @1.4 paragraph_format indent assignment results Given a paragraph format having left indent of inherit ... passed in 0.002s When I assign 36 pt to paragraph_format.left_indent ... passed in 0.000s Then paragraph_format.left_indent is 457200 ... passed in 0.000s 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.002s When I assign -12 pt to paragraph_format.left_indent ... passed in 0.000s Then paragraph_format.left_indent is -152400 ... passed in 0.000s 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.002s When I assign None to paragraph_format.left_indent ... passed in 0.000s Then paragraph_format.left_indent is None ... passed in 0.000s Scenario Outline: Set paragraph indents -- @1.7 paragraph_format indent assignment results Given a paragraph format having right indent of inherit ... passed in 0.002s When I assign 24 pt to paragraph_format.right_indent ... passed in 0.000s Then paragraph_format.right_indent is 304800 ... passed in 0.000s 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.002s When I assign -6 pt to paragraph_format.right_indent ... passed in 0.000s Then paragraph_format.right_indent is -76200 ... passed in 0.000s 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.006s When I assign None to paragraph_format.right_indent ... passed in 0.000s Then paragraph_format.right_indent is None ... passed in 0.000s 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.002s Then paragraph_format.keep_together is None ... passed in 0.000s 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.002s Then paragraph_format.keep_together is True ... passed in 0.000s 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.002s Then paragraph_format.keep_together is False ... passed in 0.000s 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.002s Then paragraph_format.keep_with_next is None ... passed in 0.000s 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.002s Then paragraph_format.keep_with_next is True ... passed in 0.000s 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.002s Then paragraph_format.keep_with_next is False ... passed in 0.000s 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.002s Then paragraph_format.page_break_before is None ... passed in 0.000s 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.002s Then paragraph_format.page_break_before is True ... passed in 0.000s 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.002s Then paragraph_format.page_break_before is False ... passed in 0.000s 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.002s Then paragraph_format.widow_control is None ... passed in 0.000s 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.002s Then paragraph_format.widow_control is True ... passed in 0.000s 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.002s Then paragraph_format.widow_control is False ... passed in 0.000s 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.002s When I assign True to paragraph_format.keep_together ... passed in 0.000s Then paragraph_format.keep_together is True ... passed in 0.000s 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.002s When I assign False to paragraph_format.keep_together ... passed in 0.000s Then paragraph_format.keep_together is False ... passed in 0.000s 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.002s When I assign None to paragraph_format.keep_together ... passed in 0.000s Then paragraph_format.keep_together is None ... passed in 0.000s 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.006s When I assign False to paragraph_format.keep_with_next ... passed in 0.000s Then paragraph_format.keep_with_next is False ... passed in 0.000s 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.002s When I assign True to paragraph_format.keep_with_next ... passed in 0.000s Then paragraph_format.keep_with_next is True ... passed in 0.000s 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.002s When I assign None to paragraph_format.keep_with_next ... passed in 0.000s Then paragraph_format.keep_with_next is None ... passed in 0.000s 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.002s When I assign True to paragraph_format.page_break_before ... passed in 0.000s Then paragraph_format.page_break_before is True ... passed in 0.000s 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.002s When I assign False to paragraph_format.page_break_before ... passed in 0.000s Then paragraph_format.page_break_before is False ... passed in 0.000s 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.002s When I assign None to paragraph_format.page_break_before ... passed in 0.000s Then paragraph_format.page_break_before is None ... passed in 0.000s 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.002s When I assign False to paragraph_format.widow_control ... passed in 0.000s Then paragraph_format.widow_control is False ... passed in 0.000s 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.002s When I assign True to paragraph_format.widow_control ... passed in 0.000s Then paragraph_format.widow_control is True ... passed in 0.000s 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.002s When I assign None to paragraph_format.widow_control ... passed in 0.000s Then paragraph_format.widow_control is None ... passed in 0.000s 63 features passed, 0 failed, 0 skipped 630 scenarios passed, 0 failed, 0 skipped 1790 steps passed, 0 failed, 0 skipped, 0 undefined Took 0m2.768s ++ find . -type f -name 'ISO*.pdf' + banned= + '[' -n '' ']' + '[' -e ref ']' + RPM_EC=0 ++ jobs -p + exit 0 Processing files: python3-docx-1.1.2-4.fc43.noarch Provides: python-docx = 1.1.2-4.fc43 python3-docx = 1.1.2-4.fc43 python3.13-docx = 1.1.2-4.fc43 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-4.fc43.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.c361e4 + 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.lOyVs0 + 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-4.fc43 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-4.fc43.src.rpm Wrote: /builddir/build/RPMS/python-docx-doc-1.1.2-4.fc43.noarch.rpm Wrote: /builddir/build/RPMS/python3-docx-1.1.2-4.fc43.noarch.rpm Child return code was: 0