Mock Version: 5.0 Mock Version: 5.0 Mock Version: 5.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/f40-build-2026190-47200/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=864000uid=996gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['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'} and shell False Building target platforms: noarch Building for target noarch setting SOURCE_DATE_EPOCH=1702512000 Wrote: /builddir/build/SRPMS/python-docx-1.1.0-1.fc40.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/f40-build-2026190-47200/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=864000uid=996gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False) Executing command: ['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'} and shell False Building target platforms: noarch Building for target noarch setting SOURCE_DATE_EPOCH=1702512000 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.Fk04TH + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf python-docx-1.1.0 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/python-docx-1.1.0.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd python-docx-1.1.0 + rm -rf /builddir/build/BUILD/python-docx-1.1.0-SPECPARTS + /usr/bin/mkdir -p /builddir/build/BUILD/python-docx-1.1.0-SPECPARTS + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + sed -r -i 's/^(ruff)\b/# &/' requirements-test.txt + rm -rvf docs/_themes removed 'docs/_themes/armstrong/LICENSE' removed 'docs/_themes/armstrong/layout.html' removed 'docs/_themes/armstrong/theme.conf' removed 'docs/_themes/armstrong/static/rtd.css_t' removed directory 'docs/_themes/armstrong/static' removed 'docs/_themes/armstrong/rtd-themes.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.GHi7i4 + umask 022 + cd /builddir/build/BUILD + cd python-docx-1.1.0 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -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 -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/python-docx-1.1.0/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + TMPDIR=/builddir/build/BUILD/python-docx-1.1.0/.pyproject-builddir + RPM_TOXENV=py312 + 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.0/pyproject-wheeldir --output /builddir/build/BUILD/python-docx-1.1.0-1.fc40.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 Exiting dependency generation pass: all requirements files + cat /builddir/build/BUILD/python-docx-1.1.0-1.fc40.noarch-pyproject-buildrequires + rm -rfv '*.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-docx-1.1.0-1.fc40.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 --noclean --target noarch --nodeps /builddir/build/SPECS/python-docx.spec'], chrootPath='/var/lib/mock/f40-build-2026190-47200/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=864000uid=996gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False) Executing command: ['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'} and shell False Building target platforms: noarch Building for target noarch setting SOURCE_DATE_EPOCH=1702512000 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.VCeAns + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf python-docx-1.1.0 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/python-docx-1.1.0.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd python-docx-1.1.0 + rm -rf /builddir/build/BUILD/python-docx-1.1.0-SPECPARTS + /usr/bin/mkdir -p /builddir/build/BUILD/python-docx-1.1.0-SPECPARTS + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + sed -r -i 's/^(ruff)\b/# &/' requirements-test.txt + rm -rvf docs/_themes removed 'docs/_themes/armstrong/LICENSE' removed 'docs/_themes/armstrong/layout.html' removed 'docs/_themes/armstrong/theme.conf' removed 'docs/_themes/armstrong/static/rtd.css_t' removed directory 'docs/_themes/armstrong/static' removed 'docs/_themes/armstrong/rtd-themes.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.YWOMVt + umask 022 + cd /builddir/build/BUILD + cd python-docx-1.1.0 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -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 -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/python-docx-1.1.0/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + TMPDIR=/builddir/build/BUILD/python-docx-1.1.0/.pyproject-builddir + RPM_TOXENV=py312 + 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.0/pyproject-wheeldir --output /builddir/build/BUILD/python-docx-1.1.0-1.fc40.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 4.9.3) Handling typing-extensions from requirements file requirements-test.txt Requirement satisfied: typing-extensions (installed: typing-extensions 4.8.0) 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.0.9) Handling pytest>=2.5 from requirements file requirements-test.txt Requirement satisfied: pytest>=2.5 (installed: pytest 7.3.2) Handling setuptools>=61.0.0 from build-system.requires Requirement satisfied: setuptools>=61.0.0 (installed: setuptools 67.7.2) /usr/lib/python3.12/site-packages/setuptools/config/pyprojecttoml.py:66: _BetaConfiguration: Support for `[tool.setuptools]` in `pyproject.toml` is still *beta*. config = read_configuration(filepath, True, ignore_option_errors, dist) No `packages` or `py_modules` configuration, performing automatic discovery. `src-layout` detected -- analysing ./src discovered packages -- ['docx', 'docx.dml', 'docx.opc', 'docx.text', 'docx.templates', 'docx.oxml', 'docx.parts', 'docx.enum', 'docx.image', 'docx.drawing', 'docx.styles', 'docx.opc.parts', 'docx.templates.default-docx-template', 'docx.templates.default-docx-template.docProps', 'docx.templates.default-docx-template._rels', 'docx.templates.default-docx-template.word', 'docx.templates.default-docx-template.customXml', 'docx.templates.default-docx-template.word._rels', 'docx.templates.default-docx-template.word.theme', 'docx.templates.default-docx-template.customXml._rels', 'docx.oxml.text'] discovered py_modules -- [] running egg_info writing src/python_docx.egg-info/PKG-INFO writing dependency_links to src/python_docx.egg-info/dependency_links.txt writing requirements to src/python_docx.egg-info/requires.txt writing top-level names to src/python_docx.egg-info/top_level.txt reading manifest file 'src/python_docx.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'README.rst' no previously-included directories found matching 'docs/.build' warning: no previously-included files matching '.DS_Store' found anywhere in distribution warning: no previously-included files matching '__pycache__' found anywhere in distribution warning: no previously-included files matching '*.py[co]' found anywhere in distribution adding license file 'LICENSE' writing manifest file 'src/python_docx.egg-info/SOURCES.txt' Handling wheel from get_requires_for_build_wheel Requirement not satisfied: wheel Exiting dependency generation pass: get_requires_for_build_wheel + cat /builddir/build/BUILD/python-docx-1.1.0-1.fc40.noarch-pyproject-buildrequires + rm -rfv '*.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-docx-1.1.0-1.fc40.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 --noclean --target noarch --nodeps /builddir/build/SPECS/python-docx.spec'], chrootPath='/var/lib/mock/f40-build-2026190-47200/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=864000uid=996gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueraiseExc=FalseprintOutput=False) Executing command: ['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'} and shell False Building target platforms: noarch Building for target noarch setting SOURCE_DATE_EPOCH=1702512000 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.v7Nwsa + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf python-docx-1.1.0 + /usr/lib/rpm/rpmuncompress -x /builddir/build/SOURCES/python-docx-1.1.0.tar.gz + STATUS=0 + '[' 0 -ne 0 ']' + cd python-docx-1.1.0 + rm -rf /builddir/build/BUILD/python-docx-1.1.0-SPECPARTS + /usr/bin/mkdir -p /builddir/build/BUILD/python-docx-1.1.0-SPECPARTS + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + sed -r -i 's/^(ruff)\b/# &/' requirements-test.txt + rm -rvf docs/_themes removed 'docs/_themes/armstrong/LICENSE' removed 'docs/_themes/armstrong/layout.html' removed 'docs/_themes/armstrong/theme.conf' removed 'docs/_themes/armstrong/static/rtd.css_t' removed directory 'docs/_themes/armstrong/static' removed 'docs/_themes/armstrong/rtd-themes.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.OFxWtp + umask 022 + cd /builddir/build/BUILD + cd python-docx-1.1.0 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -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 -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/python-docx-1.1.0/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + TMPDIR=/builddir/build/BUILD/python-docx-1.1.0/.pyproject-builddir + RPM_TOXENV=py312 + 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.0/pyproject-wheeldir --output /builddir/build/BUILD/python-docx-1.1.0-1.fc40.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 4.9.3) Handling typing-extensions from requirements file requirements-test.txt Requirement satisfied: typing-extensions (installed: typing-extensions 4.8.0) 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.0.9) Handling pytest>=2.5 from requirements file requirements-test.txt Requirement satisfied: pytest>=2.5 (installed: pytest 7.3.2) Handling setuptools>=61.0.0 from build-system.requires Requirement satisfied: setuptools>=61.0.0 (installed: setuptools 67.7.2) /usr/lib/python3.12/site-packages/setuptools/config/pyprojecttoml.py:66: _BetaConfiguration: Support for `[tool.setuptools]` in `pyproject.toml` is still *beta*. config = read_configuration(filepath, True, ignore_option_errors, dist) No `packages` or `py_modules` configuration, performing automatic discovery. `src-layout` detected -- analysing ./src discovered packages -- ['docx', 'docx.dml', 'docx.opc', 'docx.text', 'docx.templates', 'docx.oxml', 'docx.parts', 'docx.enum', 'docx.image', 'docx.drawing', 'docx.styles', 'docx.opc.parts', 'docx.templates.default-docx-template', 'docx.templates.default-docx-template.docProps', 'docx.templates.default-docx-template._rels', 'docx.templates.default-docx-template.word', 'docx.templates.default-docx-template.customXml', 'docx.templates.default-docx-template.word._rels', 'docx.templates.default-docx-template.word.theme', 'docx.templates.default-docx-template.customXml._rels', 'docx.oxml.text'] discovered py_modules -- [] running egg_info writing src/python_docx.egg-info/PKG-INFO writing dependency_links to src/python_docx.egg-info/dependency_links.txt writing requirements to src/python_docx.egg-info/requires.txt writing top-level names to src/python_docx.egg-info/top_level.txt reading manifest file 'src/python_docx.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'README.rst' no previously-included directories found matching 'docs/.build' warning: no previously-included files matching '.DS_Store' found anywhere in distribution warning: no previously-included files matching '__pycache__' found anywhere in distribution warning: no previously-included files matching '*.py[co]' found anywhere in distribution adding license file 'LICENSE' writing manifest file 'src/python_docx.egg-info/SOURCES.txt' Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.40.0) /usr/lib/python3.12/site-packages/setuptools/config/pyprojecttoml.py:66: _BetaConfiguration: Support for `[tool.setuptools]` in `pyproject.toml` is still *beta*. config = read_configuration(filepath, True, ignore_option_errors, dist) 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.0/python_docx-1.1.0.dist-info' Handling lxml (>=3.1.0) from hook generated metadata: Requires-Dist (python-docx) Requirement satisfied: lxml (>=3.1.0) (installed: lxml 4.9.3) Handling typing-extensions from hook generated metadata: Requires-Dist (python-docx) Requirement satisfied: typing-extensions (installed: typing-extensions 4.8.0) + cat /builddir/build/BUILD/python-docx-1.1.0-1.fc40.noarch-pyproject-buildrequires + rm -rfv python_docx-1.1.0.dist-info/ removed 'python_docx-1.1.0.dist-info/LICENSE' removed 'python_docx-1.1.0.dist-info/top_level.txt' removed 'python_docx-1.1.0.dist-info/METADATA' removed directory 'python_docx-1.1.0.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Wrote: /builddir/build/SRPMS/python-docx-1.1.0-1.fc40.buildreqs.nosrc.rpm Child return code was: 11 Dynamic buildrequires detected Going to install missing buildrequires. See root.log for details. ENTER ['do_with_status'](['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-docx.spec'], chrootPath='/var/lib/mock/f40-build-2026190-47200/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'}shell=Falselogger=timeout=864000uid=996gid=135user='mockbuild'nspawn_args=[]unshare_net=TrueprintOutput=False) Executing command: ['bash', '--login', '-c', '/usr/bin/rpmbuild -ba --noprep --noclean --target noarch --nodeps /builddir/build/SPECS/python-docx.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'C.UTF-8'} and shell False Building target platforms: noarch Building for target noarch setting SOURCE_DATE_EPOCH=1702512000 Executing(%generate_buildrequires): /bin/sh -e /var/tmp/rpm-tmp.T2GJOb + umask 022 + cd /builddir/build/BUILD + cd python-docx-1.1.0 + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -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 -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --cap-lints=warn' + export RUSTFLAGS + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + export LDFLAGS + LT_SYS_LIBRARY_PATH=/usr/lib: + export LT_SYS_LIBRARY_PATH + CC=gcc + export CC + CXX=g++ + export CXX + echo pyproject-rpm-macros + echo python3-devel + echo 'python3dist(pip) >= 19' + echo 'python3dist(packaging)' + '[' -f pyproject.toml ']' + echo '(python3dist(tomli) if python3-devel < 3.11)' + rm -rfv '*.dist-info/' + '[' -f /usr/bin/python3 ']' + mkdir -p /builddir/build/BUILD/python-docx-1.1.0/.pyproject-builddir + echo -n + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + TMPDIR=/builddir/build/BUILD/python-docx-1.1.0/.pyproject-builddir + RPM_TOXENV=py312 + 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.0/pyproject-wheeldir --output /builddir/build/BUILD/python-docx-1.1.0-1.fc40.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 4.9.3) Handling typing-extensions from requirements file requirements-test.txt Requirement satisfied: typing-extensions (installed: typing-extensions 4.8.0) 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.0.9) Handling pytest>=2.5 from requirements file requirements-test.txt Requirement satisfied: pytest>=2.5 (installed: pytest 7.3.2) Handling setuptools>=61.0.0 from build-system.requires Requirement satisfied: setuptools>=61.0.0 (installed: setuptools 67.7.2) /usr/lib/python3.12/site-packages/setuptools/config/pyprojecttoml.py:66: _BetaConfiguration: Support for `[tool.setuptools]` in `pyproject.toml` is still *beta*. config = read_configuration(filepath, True, ignore_option_errors, dist) No `packages` or `py_modules` configuration, performing automatic discovery. `src-layout` detected -- analysing ./src discovered packages -- ['docx', 'docx.dml', 'docx.opc', 'docx.text', 'docx.templates', 'docx.oxml', 'docx.parts', 'docx.enum', 'docx.image', 'docx.drawing', 'docx.styles', 'docx.opc.parts', 'docx.templates.default-docx-template', 'docx.templates.default-docx-template.docProps', 'docx.templates.default-docx-template._rels', 'docx.templates.default-docx-template.word', 'docx.templates.default-docx-template.customXml', 'docx.templates.default-docx-template.word._rels', 'docx.templates.default-docx-template.word.theme', 'docx.templates.default-docx-template.customXml._rels', 'docx.oxml.text'] discovered py_modules -- [] running egg_info writing src/python_docx.egg-info/PKG-INFO writing dependency_links to src/python_docx.egg-info/dependency_links.txt writing requirements to src/python_docx.egg-info/requires.txt writing top-level names to src/python_docx.egg-info/top_level.txt reading manifest file 'src/python_docx.egg-info/SOURCES.txt' reading manifest template 'MANIFEST.in' warning: no files found matching 'README.rst' no previously-included directories found matching 'docs/.build' warning: no previously-included files matching '.DS_Store' found anywhere in distribution warning: no previously-included files matching '__pycache__' found anywhere in distribution warning: no previously-included files matching '*.py[co]' found anywhere in distribution adding license file 'LICENSE' writing manifest file 'src/python_docx.egg-info/SOURCES.txt' Handling wheel from get_requires_for_build_wheel Requirement satisfied: wheel (installed: wheel 0.40.0) /usr/lib/python3.12/site-packages/setuptools/config/pyprojecttoml.py:66: _BetaConfiguration: Support for `[tool.setuptools]` in `pyproject.toml` is still *beta*. config = read_configuration(filepath, True, ignore_option_errors, dist) 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.0/python_docx-1.1.0.dist-info' Handling lxml (>=3.1.0) from hook generated metadata: Requires-Dist (python-docx) Requirement satisfied: lxml (>=3.1.0) (installed: lxml 4.9.3) Handling typing-extensions from hook generated metadata: Requires-Dist (python-docx) Requirement satisfied: typing-extensions (installed: typing-extensions 4.8.0) + cat /builddir/build/BUILD/python-docx-1.1.0-1.fc40.noarch-pyproject-buildrequires + rm -rfv python_docx-1.1.0.dist-info/ removed 'python_docx-1.1.0.dist-info/LICENSE' removed 'python_docx-1.1.0.dist-info/top_level.txt' removed 'python_docx-1.1.0.dist-info/METADATA' removed directory 'python_docx-1.1.0.dist-info/' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.v3tZob + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -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 -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --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.0 + mkdir -p /builddir/build/BUILD/python-docx-1.1.0/.pyproject-builddir + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + TMPDIR=/builddir/build/BUILD/python-docx-1.1.0/.pyproject-builddir + /usr/bin/python3 -Bs /usr/lib/rpm/redhat/pyproject_wheel.py /builddir/build/BUILD/python-docx-1.1.0/pyproject-wheeldir Processing /builddir/build/BUILD/python-docx-1.1.0 Preparing metadata (pyproject.toml): started Running command Preparing metadata (pyproject.toml) /usr/lib/python3.12/site-packages/setuptools/config/pyprojecttoml.py:66: _BetaConfiguration: Support for `[tool.setuptools]` in `pyproject.toml` is still *beta*. config = read_configuration(filepath, True, ignore_option_errors, dist) No `packages` or `py_modules` configuration, performing automatic discovery. `src-layout` detected -- analysing ./src discovered packages -- ['docx', 'docx.dml', 'docx.opc', 'docx.text', 'docx.templates', 'docx.oxml', 'docx.parts', 'docx.enum', 'docx.image', 'docx.drawing', 'docx.styles', 'docx.opc.parts', 'docx.templates.default-docx-template', 'docx.templates.default-docx-template.docProps', 'docx.templates.default-docx-template._rels', 'docx.templates.default-docx-template.word', 'docx.templates.default-docx-template.customXml', 'docx.templates.default-docx-template.word._rels', 'docx.templates.default-docx-template.word.theme', 'docx.templates.default-docx-template.customXml._rels', 'docx.oxml.text'] discovered py_modules -- [] running dist_info creating /builddir/build/BUILD/python-docx-1.1.0/.pyproject-builddir/pip-modern-metadata-zhx6_72c/python_docx.egg-info writing /builddir/build/BUILD/python-docx-1.1.0/.pyproject-builddir/pip-modern-metadata-zhx6_72c/python_docx.egg-info/PKG-INFO writing dependency_links to /builddir/build/BUILD/python-docx-1.1.0/.pyproject-builddir/pip-modern-metadata-zhx6_72c/python_docx.egg-info/dependency_links.txt writing requirements to /builddir/build/BUILD/python-docx-1.1.0/.pyproject-builddir/pip-modern-metadata-zhx6_72c/python_docx.egg-info/requires.txt writing top-level names to /builddir/build/BUILD/python-docx-1.1.0/.pyproject-builddir/pip-modern-metadata-zhx6_72c/python_docx.egg-info/top_level.txt writing manifest file '/builddir/build/BUILD/python-docx-1.1.0/.pyproject-builddir/pip-modern-metadata-zhx6_72c/python_docx.egg-info/SOURCES.txt' reading manifest file '/builddir/build/BUILD/python-docx-1.1.0/.pyproject-builddir/pip-modern-metadata-zhx6_72c/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.0/.pyproject-builddir/pip-modern-metadata-zhx6_72c/python_docx.egg-info/SOURCES.txt' creating '/builddir/build/BUILD/python-docx-1.1.0/.pyproject-builddir/pip-modern-metadata-zhx6_72c/python_docx-1.1.0.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) /usr/lib/python3.12/site-packages/setuptools/config/pyprojecttoml.py:66: _BetaConfiguration: Support for `[tool.setuptools]` in `pyproject.toml` is still *beta*. config = read_configuration(filepath, True, ignore_option_errors, dist) No `packages` or `py_modules` configuration, performing automatic discovery. `src-layout` detected -- analysing ./src discovered packages -- ['docx', 'docx.dml', 'docx.opc', 'docx.text', 'docx.templates', 'docx.oxml', 'docx.parts', 'docx.enum', 'docx.image', 'docx.drawing', 'docx.styles', 'docx.opc.parts', 'docx.templates.default-docx-template', 'docx.templates.default-docx-template.docProps', 'docx.templates.default-docx-template._rels', 'docx.templates.default-docx-template.word', 'docx.templates.default-docx-template.customXml', 'docx.templates.default-docx-template.word._rels', 'docx.templates.default-docx-template.word.theme', 'docx.templates.default-docx-template.customXml._rels', 'docx.oxml.text'] discovered py_modules -- [] running bdist_wheel running build running build_py creating build creating build/lib creating build/lib/docx copying src/docx/package.py -> build/lib/docx copying src/docx/shape.py -> build/lib/docx copying src/docx/api.py -> build/lib/docx copying src/docx/document.py -> build/lib/docx copying src/docx/shared.py -> build/lib/docx copying src/docx/exceptions.py -> build/lib/docx copying src/docx/types.py -> build/lib/docx copying src/docx/settings.py -> build/lib/docx copying src/docx/__init__.py -> build/lib/docx copying src/docx/blkcntnr.py -> build/lib/docx copying src/docx/section.py -> build/lib/docx copying src/docx/table.py -> build/lib/docx creating build/lib/docx/dml copying src/docx/dml/color.py -> build/lib/docx/dml copying src/docx/dml/__init__.py -> build/lib/docx/dml creating build/lib/docx/opc copying src/docx/opc/package.py -> build/lib/docx/opc copying src/docx/opc/oxml.py -> build/lib/docx/opc copying src/docx/opc/part.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/packuri.py -> build/lib/docx/opc copying src/docx/opc/exceptions.py -> build/lib/docx/opc copying src/docx/opc/spec.py -> build/lib/docx/opc copying src/docx/opc/coreprops.py -> build/lib/docx/opc copying src/docx/opc/constants.py -> build/lib/docx/opc copying src/docx/opc/phys_pkg.py -> build/lib/docx/opc copying src/docx/opc/pkgwriter.py -> build/lib/docx/opc copying src/docx/opc/__init__.py -> build/lib/docx/opc copying src/docx/opc/pkgreader.py -> build/lib/docx/opc creating build/lib/docx/text copying src/docx/text/tabstops.py -> build/lib/docx/text copying src/docx/text/hyperlink.py -> build/lib/docx/text copying src/docx/text/run.py -> build/lib/docx/text copying src/docx/text/font.py -> build/lib/docx/text copying src/docx/text/pagebreak.py -> build/lib/docx/text copying src/docx/text/__init__.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 creating build/lib/docx/oxml copying src/docx/oxml/xmlchemy.py -> build/lib/docx/oxml copying src/docx/oxml/shape.py -> build/lib/docx/oxml copying src/docx/oxml/document.py -> build/lib/docx/oxml copying src/docx/oxml/parser.py -> build/lib/docx/oxml copying src/docx/oxml/drawing.py -> build/lib/docx/oxml copying src/docx/oxml/shared.py -> build/lib/docx/oxml copying src/docx/oxml/numbering.py -> build/lib/docx/oxml copying src/docx/oxml/exceptions.py -> build/lib/docx/oxml copying src/docx/oxml/simpletypes.py -> build/lib/docx/oxml copying src/docx/oxml/coreprops.py -> build/lib/docx/oxml copying src/docx/oxml/settings.py -> build/lib/docx/oxml copying src/docx/oxml/ns.py -> build/lib/docx/oxml copying src/docx/oxml/__init__.py -> build/lib/docx/oxml copying src/docx/oxml/styles.py -> build/lib/docx/oxml copying src/docx/oxml/section.py -> build/lib/docx/oxml copying src/docx/oxml/table.py -> build/lib/docx/oxml creating build/lib/docx/parts copying src/docx/parts/story.py -> build/lib/docx/parts copying src/docx/parts/hdrftr.py -> build/lib/docx/parts copying src/docx/parts/document.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/__init__.py -> build/lib/docx/parts copying src/docx/parts/styles.py -> build/lib/docx/parts creating build/lib/docx/enum copying src/docx/enum/style.py -> build/lib/docx/enum copying src/docx/enum/shape.py -> build/lib/docx/enum copying src/docx/enum/text.py -> build/lib/docx/enum copying src/docx/enum/base.py -> build/lib/docx/enum copying src/docx/enum/__init__.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/table.py -> build/lib/docx/enum creating build/lib/docx/image copying src/docx/image/tiff.py -> build/lib/docx/image copying src/docx/image/gif.py -> build/lib/docx/image copying src/docx/image/image.py -> build/lib/docx/image copying src/docx/image/exceptions.py -> build/lib/docx/image copying src/docx/image/constants.py -> build/lib/docx/image copying src/docx/image/bmp.py -> build/lib/docx/image copying src/docx/image/__init__.py -> build/lib/docx/image copying src/docx/image/jpeg.py -> build/lib/docx/image copying src/docx/image/helpers.py -> build/lib/docx/image copying src/docx/image/png.py -> build/lib/docx/image creating build/lib/docx/drawing copying src/docx/drawing/__init__.py -> build/lib/docx/drawing creating build/lib/docx/styles copying src/docx/styles/style.py -> build/lib/docx/styles copying src/docx/styles/latent.py -> build/lib/docx/styles copying src/docx/styles/__init__.py -> build/lib/docx/styles copying src/docx/styles/styles.py -> build/lib/docx/styles creating build/lib/docx/opc/parts copying src/docx/opc/parts/coreprops.py -> build/lib/docx/opc/parts copying src/docx/opc/parts/__init__.py -> build/lib/docx/opc/parts creating build/lib/docx/oxml/text copying src/docx/oxml/text/hyperlink.py -> build/lib/docx/oxml/text copying src/docx/oxml/text/run.py -> build/lib/docx/oxml/text copying src/docx/oxml/text/font.py -> build/lib/docx/oxml/text copying src/docx/oxml/text/pagebreak.py -> build/lib/docx/oxml/text copying src/docx/oxml/text/__init__.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 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' 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/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/_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/word copying src/docx/templates/default-docx-template/word/document.xml -> build/lib/docx/templates/default-docx-template/word copying src/docx/templates/default-docx-template/word/fontTable.xml -> build/lib/docx/templates/default-docx-template/word copying src/docx/templates/default-docx-template/word/numbering.xml -> build/lib/docx/templates/default-docx-template/word copying src/docx/templates/default-docx-template/word/settings.xml -> build/lib/docx/templates/default-docx-template/word copying src/docx/templates/default-docx-template/word/styles.xml -> build/lib/docx/templates/default-docx-template/word copying src/docx/templates/default-docx-template/word/stylesWithEffects.xml -> build/lib/docx/templates/default-docx-template/word copying src/docx/templates/default-docx-template/word/webSettings.xml -> build/lib/docx/templates/default-docx-template/word creating build/lib/docx/templates/default-docx-template/customXml copying src/docx/templates/default-docx-template/customXml/item1.xml -> build/lib/docx/templates/default-docx-template/customXml copying src/docx/templates/default-docx-template/customXml/itemProps1.xml -> build/lib/docx/templates/default-docx-template/customXml creating build/lib/docx/templates/default-docx-template/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 creating build/lib/docx/templates/default-docx-template/customXml/_rels copying src/docx/templates/default-docx-template/customXml/_rels/item1.xml.rels -> build/lib/docx/templates/default-docx-template/customXml/_rels installing to build/bdist.linux-riscv64/wheel running install running install_lib creating build/bdist.linux-riscv64 creating build/bdist.linux-riscv64/wheel creating build/bdist.linux-riscv64/wheel/docx copying build/lib/docx/package.py -> build/bdist.linux-riscv64/wheel/docx copying build/lib/docx/shape.py -> build/bdist.linux-riscv64/wheel/docx creating build/bdist.linux-riscv64/wheel/docx/dml copying build/lib/docx/dml/color.py -> build/bdist.linux-riscv64/wheel/docx/dml copying build/lib/docx/dml/__init__.py -> build/bdist.linux-riscv64/wheel/docx/dml copying build/lib/docx/api.py -> build/bdist.linux-riscv64/wheel/docx copying build/lib/docx/document.py -> build/bdist.linux-riscv64/wheel/docx creating build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/package.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/oxml.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/part.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/rel.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/shared.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/packuri.py -> build/bdist.linux-riscv64/wheel/docx/opc creating build/bdist.linux-riscv64/wheel/docx/opc/parts copying build/lib/docx/opc/parts/coreprops.py -> build/bdist.linux-riscv64/wheel/docx/opc/parts copying build/lib/docx/opc/parts/__init__.py -> build/bdist.linux-riscv64/wheel/docx/opc/parts copying build/lib/docx/opc/exceptions.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/spec.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/coreprops.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/constants.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/phys_pkg.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/pkgwriter.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/__init__.py -> build/bdist.linux-riscv64/wheel/docx/opc copying build/lib/docx/opc/pkgreader.py -> build/bdist.linux-riscv64/wheel/docx/opc creating build/bdist.linux-riscv64/wheel/docx/text copying build/lib/docx/text/tabstops.py -> build/bdist.linux-riscv64/wheel/docx/text copying build/lib/docx/text/hyperlink.py -> build/bdist.linux-riscv64/wheel/docx/text copying build/lib/docx/text/run.py -> build/bdist.linux-riscv64/wheel/docx/text copying build/lib/docx/text/font.py -> build/bdist.linux-riscv64/wheel/docx/text copying build/lib/docx/text/pagebreak.py -> build/bdist.linux-riscv64/wheel/docx/text copying build/lib/docx/text/__init__.py -> build/bdist.linux-riscv64/wheel/docx/text copying build/lib/docx/text/paragraph.py -> build/bdist.linux-riscv64/wheel/docx/text copying build/lib/docx/text/parfmt.py -> build/bdist.linux-riscv64/wheel/docx/text creating build/bdist.linux-riscv64/wheel/docx/templates copying build/lib/docx/templates/default-header.xml -> build/bdist.linux-riscv64/wheel/docx/templates copying build/lib/docx/templates/default-settings.xml -> build/bdist.linux-riscv64/wheel/docx/templates copying build/lib/docx/templates/default-footer.xml -> build/bdist.linux-riscv64/wheel/docx/templates creating build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template creating build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/docProps copying build/lib/docx/templates/default-docx-template/docProps/core.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/docProps copying build/lib/docx/templates/default-docx-template/docProps/app.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/docProps copying build/lib/docx/templates/default-docx-template/docProps/thumbnail.jpeg -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/docProps creating build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/_rels copying build/lib/docx/templates/default-docx-template/_rels/.rels -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/_rels creating build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word copying build/lib/docx/templates/default-docx-template/word/document.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word creating build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word/_rels copying build/lib/docx/templates/default-docx-template/word/_rels/document.xml.rels -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word/_rels copying build/lib/docx/templates/default-docx-template/word/settings.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word creating build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word/theme copying build/lib/docx/templates/default-docx-template/word/theme/theme1.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word/theme copying build/lib/docx/templates/default-docx-template/word/styles.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word copying build/lib/docx/templates/default-docx-template/word/webSettings.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word copying build/lib/docx/templates/default-docx-template/word/fontTable.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word copying build/lib/docx/templates/default-docx-template/word/stylesWithEffects.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word copying build/lib/docx/templates/default-docx-template/word/numbering.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/word creating build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/customXml creating build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/customXml/_rels copying build/lib/docx/templates/default-docx-template/customXml/_rels/item1.xml.rels -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/customXml/_rels copying build/lib/docx/templates/default-docx-template/customXml/item1.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/customXml copying build/lib/docx/templates/default-docx-template/customXml/itemProps1.xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template/customXml copying build/lib/docx/templates/default-docx-template/[Content_Types].xml -> build/bdist.linux-riscv64/wheel/docx/templates/default-docx-template copying build/lib/docx/templates/default.docx -> build/bdist.linux-riscv64/wheel/docx/templates copying build/lib/docx/templates/default-styles.xml -> build/bdist.linux-riscv64/wheel/docx/templates copying build/lib/docx/shared.py -> build/bdist.linux-riscv64/wheel/docx creating build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/xmlchemy.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/shape.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/document.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/parser.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/drawing.py -> build/bdist.linux-riscv64/wheel/docx/oxml creating build/bdist.linux-riscv64/wheel/docx/oxml/text copying build/lib/docx/oxml/text/hyperlink.py -> build/bdist.linux-riscv64/wheel/docx/oxml/text copying build/lib/docx/oxml/text/run.py -> build/bdist.linux-riscv64/wheel/docx/oxml/text copying build/lib/docx/oxml/text/font.py -> build/bdist.linux-riscv64/wheel/docx/oxml/text copying build/lib/docx/oxml/text/pagebreak.py -> build/bdist.linux-riscv64/wheel/docx/oxml/text copying build/lib/docx/oxml/text/__init__.py -> build/bdist.linux-riscv64/wheel/docx/oxml/text copying build/lib/docx/oxml/text/paragraph.py -> build/bdist.linux-riscv64/wheel/docx/oxml/text copying build/lib/docx/oxml/text/parfmt.py -> build/bdist.linux-riscv64/wheel/docx/oxml/text copying build/lib/docx/oxml/shared.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/numbering.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/exceptions.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/simpletypes.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/coreprops.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/settings.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/ns.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/__init__.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/styles.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/section.py -> build/bdist.linux-riscv64/wheel/docx/oxml copying build/lib/docx/oxml/table.py -> build/bdist.linux-riscv64/wheel/docx/oxml creating build/bdist.linux-riscv64/wheel/docx/parts copying build/lib/docx/parts/story.py -> build/bdist.linux-riscv64/wheel/docx/parts copying build/lib/docx/parts/hdrftr.py -> build/bdist.linux-riscv64/wheel/docx/parts copying build/lib/docx/parts/document.py -> build/bdist.linux-riscv64/wheel/docx/parts copying build/lib/docx/parts/image.py -> build/bdist.linux-riscv64/wheel/docx/parts copying build/lib/docx/parts/numbering.py -> build/bdist.linux-riscv64/wheel/docx/parts copying build/lib/docx/parts/settings.py -> build/bdist.linux-riscv64/wheel/docx/parts copying build/lib/docx/parts/__init__.py -> build/bdist.linux-riscv64/wheel/docx/parts copying build/lib/docx/parts/styles.py -> build/bdist.linux-riscv64/wheel/docx/parts copying build/lib/docx/exceptions.py -> build/bdist.linux-riscv64/wheel/docx creating build/bdist.linux-riscv64/wheel/docx/enum copying build/lib/docx/enum/style.py -> build/bdist.linux-riscv64/wheel/docx/enum copying build/lib/docx/enum/shape.py -> build/bdist.linux-riscv64/wheel/docx/enum copying build/lib/docx/enum/text.py -> build/bdist.linux-riscv64/wheel/docx/enum copying build/lib/docx/enum/base.py -> build/bdist.linux-riscv64/wheel/docx/enum copying build/lib/docx/enum/__init__.py -> build/bdist.linux-riscv64/wheel/docx/enum copying build/lib/docx/enum/dml.py -> build/bdist.linux-riscv64/wheel/docx/enum copying build/lib/docx/enum/section.py -> build/bdist.linux-riscv64/wheel/docx/enum copying build/lib/docx/enum/table.py -> build/bdist.linux-riscv64/wheel/docx/enum creating build/bdist.linux-riscv64/wheel/docx/image copying build/lib/docx/image/tiff.py -> build/bdist.linux-riscv64/wheel/docx/image copying build/lib/docx/image/gif.py -> build/bdist.linux-riscv64/wheel/docx/image copying build/lib/docx/image/image.py -> build/bdist.linux-riscv64/wheel/docx/image copying build/lib/docx/image/exceptions.py -> build/bdist.linux-riscv64/wheel/docx/image copying build/lib/docx/image/constants.py -> build/bdist.linux-riscv64/wheel/docx/image copying build/lib/docx/image/bmp.py -> build/bdist.linux-riscv64/wheel/docx/image copying build/lib/docx/image/__init__.py -> build/bdist.linux-riscv64/wheel/docx/image copying build/lib/docx/image/jpeg.py -> build/bdist.linux-riscv64/wheel/docx/image copying build/lib/docx/image/helpers.py -> build/bdist.linux-riscv64/wheel/docx/image copying build/lib/docx/image/png.py -> build/bdist.linux-riscv64/wheel/docx/image copying build/lib/docx/types.py -> build/bdist.linux-riscv64/wheel/docx creating build/bdist.linux-riscv64/wheel/docx/drawing copying build/lib/docx/drawing/__init__.py -> build/bdist.linux-riscv64/wheel/docx/drawing copying build/lib/docx/settings.py -> build/bdist.linux-riscv64/wheel/docx copying build/lib/docx/__init__.py -> build/bdist.linux-riscv64/wheel/docx copying build/lib/docx/blkcntnr.py -> build/bdist.linux-riscv64/wheel/docx creating build/bdist.linux-riscv64/wheel/docx/styles copying build/lib/docx/styles/style.py -> build/bdist.linux-riscv64/wheel/docx/styles copying build/lib/docx/styles/latent.py -> build/bdist.linux-riscv64/wheel/docx/styles copying build/lib/docx/styles/__init__.py -> build/bdist.linux-riscv64/wheel/docx/styles copying build/lib/docx/styles/styles.py -> build/bdist.linux-riscv64/wheel/docx/styles copying build/lib/docx/section.py -> build/bdist.linux-riscv64/wheel/docx copying build/lib/docx/table.py -> build/bdist.linux-riscv64/wheel/docx running install_egg_info Copying src/python_docx.egg-info to build/bdist.linux-riscv64/wheel/python_docx-1.1.0-py3.12.egg-info running install_scripts creating build/bdist.linux-riscv64/wheel/python_docx-1.1.0.dist-info/WHEEL creating '/builddir/build/BUILD/python-docx-1.1.0/.pyproject-builddir/pip-wheel-8dip87b2/.tmp-_210nwe_/python_docx-1.1.0-py3-none-any.whl' and adding 'build/bdist.linux-riscv64/wheel' to it adding 'docx/__init__.py' adding 'docx/api.py' adding 'docx/blkcntnr.py' adding 'docx/document.py' adding 'docx/exceptions.py' adding 'docx/package.py' adding 'docx/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.0.dist-info/LICENSE' adding 'python_docx-1.1.0.dist-info/METADATA' adding 'python_docx-1.1.0.dist-info/WHEEL' adding 'python_docx-1.1.0.dist-info/top_level.txt' adding 'python_docx-1.1.0.dist-info/RECORD' removing build/bdist.linux-riscv64/wheel Building wheel for python-docx (pyproject.toml): finished with status 'done' Created wheel for python-docx: filename=python_docx-1.1.0-py3-none-any.whl size=239608 sha256=fbce8f27b59a021b8c2dd516f57db764c94b0d3338c900ff5d4f15835dbc86f8 Stored in directory: /builddir/.cache/pip/wheels/2a/6f/ad/ebfe98c42ebd4f5bd9fcfc2cb3b24fa1f17303eb6df6004c7c Successfully built python-docx + PYTHONPATH=/builddir/build/BUILD/python-docx-1.1.0/src + /usr/bin/make -O -j8 V=1 VERBOSE=1 -C docs latex SPHINXOPTS=-j8 make: Entering directory '/builddir/build/BUILD/python-docx-1.1.0/docs' sphinx-build -b latex -d .build/doctrees -j8 . .build/latex Running Sphinx v6.2.1 making output directory... done building [mo]: targets for 0 po files that are out of date writing output... building [latex]: all documents updating environment: [new config] 71 added, 0 changed, 0 removed reading sources... [ 11%] api/dml .. api/enum/WdColorIndex reading sources... [ 22%] api/enum/WdLineSpacing .. api/enum/WdTabLeader reading sources... [ 33%] api/enum/WdTableDirection .. api/style reading sources... [ 44%] api/table .. dev/analysis/features/shapes/index reading sources... [ 55%] dev/analysis/features/shapes/picture .. dev/analysis/features/styles/style reading sources... [ 66%] dev/analysis/features/styles/styles .. dev/analysis/features/text/font reading sources... [ 77%] dev/analysis/features/text/font-color .. dev/analysis/features/text/underline reading sources... [ 88%] dev/analysis/index .. user/hdrftr reading sources... [100%] user/install .. user/text looking for now-outdated files... none found pickling environment... done checking consistency... done processing python-docx.tex... index user/install user/quickstart user/documents user/text user/sections user/hdrftr user/api-concepts user/styles-understanding user/styles-using user/shapes api/document api/settings api/style api/text api/table api/section api/shape api/dml api/shared api/enum/index api/enum/MsoColorType api/enum/MsoThemeColorIndex api/enum/WdAlignParagraph api/enum/WdBuiltinStyle api/enum/WdCellVerticalAlignment api/enum/WdColorIndex api/enum/WdLineSpacing api/enum/WdOrientation api/enum/WdRowAlignment api/enum/WdRowHeightRule api/enum/WdSectionStart api/enum/WdStyleType api/enum/WdTabAlignment api/enum/WdTabLeader api/enum/WdTableDirection api/enum/WdUnderline dev/analysis/index dev/analysis/features/header dev/analysis/features/settings dev/analysis/features/text/index dev/analysis/features/text/hyperlink dev/analysis/features/text/tab-stops dev/analysis/features/text/font-highlight-color dev/analysis/features/text/paragraph-format dev/analysis/features/text/font dev/analysis/features/text/font-color dev/analysis/features/text/underline dev/analysis/features/text/run-content dev/analysis/features/text/breaks dev/analysis/features/table/index dev/analysis/features/table/table-props dev/analysis/features/table/table-row dev/analysis/features/table/table-cell dev/analysis/features/table/cell-merge dev/analysis/features/styles/index dev/analysis/features/styles/styles dev/analysis/features/styles/style dev/analysis/features/styles/paragraph-style dev/analysis/features/styles/character-style dev/analysis/features/styles/latent-styles dev/analysis/features/shapes/index dev/analysis/features/shapes/shapes-inline dev/analysis/features/shapes/shapes-inline-size dev/analysis/features/shapes/picture dev/analysis/features/coreprops dev/analysis/features/numbering dev/analysis/features/sections dev/analysis/schema/ct_document dev/analysis/schema/ct_body dev/analysis/schema/ct_p resolving references... done writing... done copying images... [ 33%] _static/img/example-docx-01.png copying images... [ 66%] _static/img/hdrftr-01.png copying images... [100%] _static/img/hdrftr-02.png copying TeX support files... copying TeX support files... done 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.0/docs' + /usr/bin/make -O -j8 V=1 VERBOSE=1 -C docs/.build/latex LATEXMKOPTS=-quiet make: Entering directory '/builddir/build/BUILD/python-docx-1.1.0/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' 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' 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' make: Leaving directory '/builddir/build/BUILD/python-docx-1.1.0/docs/.build/latex' + RPM_EC=0 ++ jobs -p + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.NMXmPK + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch '!=' / ']' + rm -rf /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch ++ dirname /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -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 -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --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.0 ++ xargs basename --multiple ++ ls /builddir/build/BUILD/python-docx-1.1.0/pyproject-wheeldir/python_docx-1.1.0-py3-none-any.whl ++ sed -E 's/([^-]+)-([^-]+)-.+\.whl/\1==\2/' + specifier=python_docx==1.1.0 + '[' -z python_docx==1.1.0 ']' + TMPDIR=/builddir/build/BUILD/python-docx-1.1.0/.pyproject-builddir + /usr/bin/python3 -m pip install --root /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch --prefix /usr --no-deps --disable-pip-version-check --progress-bar off --verbose --ignore-installed --no-warn-script-location --no-index --no-cache-dir --find-links /builddir/build/BUILD/python-docx-1.1.0/pyproject-wheeldir python_docx==1.1.0 Using pip 23.2.1 from /usr/lib/python3.12/site-packages/pip (python 3.12) Looking in links: /builddir/build/BUILD/python-docx-1.1.0/pyproject-wheeldir Processing ./pyproject-wheeldir/python_docx-1.1.0-py3-none-any.whl Installing collected packages: python_docx Successfully installed python_docx-1.1.0 + '[' -d /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/bin ']' + rm -f /builddir/build/BUILD/python-docx-1.1.0-1.fc40.noarch-pyproject-ghost-distinfo + site_dirs=() + '[' -d /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/lib/python3.12/site-packages ']' + site_dirs+=("/usr/lib/python3.12/site-packages") + '[' /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/lib64/python3.12/site-packages '!=' /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/lib/python3.12/site-packages ']' + '[' -d /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/lib64/python3.12/site-packages ']' + for site_dir in ${site_dirs[@]} + for distinfo in /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch$site_dir/*.dist-info + echo '%ghost /usr/lib/python3.12/site-packages/python_docx-1.1.0.dist-info' + sed -i s/pip/rpm/ /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/lib/python3.12/site-packages/python_docx-1.1.0.dist-info/INSTALLER + PYTHONPATH=/usr/lib/rpm/redhat + /usr/bin/python3 -B /usr/lib/rpm/redhat/pyproject_preprocess_record.py --buildroot /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch --record /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/lib/python3.12/site-packages/python_docx-1.1.0.dist-info/RECORD --output /builddir/build/BUILD/python-docx-1.1.0-1.fc40.noarch-pyproject-record + rm -fv /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/lib/python3.12/site-packages/python_docx-1.1.0.dist-info/RECORD removed '/builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/lib/python3.12/site-packages/python_docx-1.1.0.dist-info/RECORD' + rm -fv /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/lib/python3.12/site-packages/python_docx-1.1.0.dist-info/REQUESTED removed '/builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/lib/python3.12/site-packages/python_docx-1.1.0.dist-info/REQUESTED' ++ wc -l /builddir/build/BUILD/python-docx-1.1.0-1.fc40.noarch-pyproject-ghost-distinfo ++ cut -f1 '-d ' + lines=1 + '[' 1 -ne 1 ']' + RPM_PERCENTAGES_COUNT=2 + /usr/bin/python3 /usr/lib/rpm/redhat/pyproject_save_files.py --output-files /builddir/build/BUILD/python-docx-1.1.0-1.fc40.noarch-pyproject-files --output-modules /builddir/build/BUILD/python-docx-1.1.0-1.fc40.noarch-pyproject-modules --buildroot /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch --sitelib /usr/lib/python3.12/site-packages --sitearch /usr/lib64/python3.12/site-packages --python-version 3.12 --pyproject-record /builddir/build/BUILD/python-docx-1.1.0-1.fc40.noarch-pyproject-record --prefix /usr docx + /usr/bin/find-debuginfo -j8 --strict-build-id -m -i --build-id-seed 1.1.0-1.fc40 --unique-debug-suffix -1.1.0-1.fc40.noarch --unique-debug-src-base python-docx-1.1.0-1.fc40.noarch --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 50000000 -S debugsourcefiles.list /builddir/build/BUILD/python-docx-1.1.0 find-debuginfo: starting Extracting debug info from 0 files Creating .debug symlinks for symlinks to ELF files find: ‘debug’: No such file or directory find-debuginfo: done + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-ldconfig + /usr/lib/rpm/brp-compress + /usr/lib/rpm/redhat/brp-strip-lto /usr/bin/strip + /usr/lib/rpm/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/check-rpaths + /usr/lib/rpm/redhat/brp-mangle-shebangs + /usr/lib/rpm/brp-remove-la-files + env /usr/lib/rpm/redhat/brp-python-bytecompile '' 1 0 -j8 Bytecompiling .py files below /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/lib/python3.12 using python3.12 + /usr/lib/rpm/redhat/brp-python-hardlink Executing(%check): /bin/sh -e /var/tmp/rpm-tmp.iMJ51G + umask 022 + cd /builddir/build/BUILD + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CFLAGS + CXXFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + export CXXFLAGS + FFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -I/usr/lib/gfortran/modules ' + export FFLAGS + FCFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer -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 -Clink-arg=-Wl,-z,relro -Clink-arg=-Wl,-z,now --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.0 + k='not (DescribeParseXml and it_accepts_unicode_providing_there_is_no_encoding_declaration)' + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + PATH=/builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/lib64/python3.12/site-packages:/builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/lib/python3.12/site-packages + PYTHONDONTWRITEBYTECODE=1 + PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/python-docx-1.1.0/.pyproject-builddir' + PYTEST_XDIST_AUTO_NUM_WORKERS=8 + /usr/bin/pytest -k 'not (DescribeParseXml and it_accepts_unicode_providing_there_is_no_encoding_declaration)' -v ============================= test session starts ============================== platform linux -- Python 3.12.0, pytest-7.3.2, pluggy-1.2.0 -- /usr/bin/python3 cachedir: .pytest_cache rootdir: /builddir/build/BUILD/python-docx-1.1.0 configfile: pyproject.toml collecting ... collected 1542 items / 1 deselected / 1541 selected tests/test_api.py::DescribeDocument::it_opens_a_docx_file PASSED [ 0%] tests/test_api.py::DescribeDocument::it_opens_the_default_docx_if_none_specified PASSED [ 0%] tests/test_api.py::DescribeDocument::it_raises_on_not_a_Word_file PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_can_add_a_paragraph[add_paragraph_fixture0] PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_can_add_a_paragraph[add_paragraph_fixture1] PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_can_add_a_paragraph[add_paragraph_fixture2] PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_can_add_a_paragraph[add_paragraph_fixture3] PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_can_add_a_table PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_can_iterate_its_inner_content PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_paragraphs_it_contains[paragraphs_fixture0] PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_paragraphs_it_contains[paragraphs_fixture1] PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_paragraphs_it_contains[paragraphs_fixture2] PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_paragraphs_it_contains[paragraphs_fixture3] PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_paragraphs_it_contains[paragraphs_fixture4] PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_tables_it_contains[tables_fixture0] PASSED [ 0%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_tables_it_contains[tables_fixture1] PASSED [ 1%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_tables_it_contains[tables_fixture2] PASSED [ 1%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_tables_it_contains[tables_fixture3] PASSED [ 1%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_provides_access_to_the_tables_it_contains[tables_fixture4] PASSED [ 1%] tests/test_blkcntnr.py::DescribeBlockItemContainer::it_adds_a_paragraph_to_help PASSED [ 1%] tests/test_document.py::DescribeDocument::it_can_add_a_heading[add_heading_fixture0] PASSED [ 1%] tests/test_document.py::DescribeDocument::it_can_add_a_heading[add_heading_fixture1] PASSED [ 1%] tests/test_document.py::DescribeDocument::it_can_add_a_heading[add_heading_fixture2] PASSED [ 1%] tests/test_document.py::DescribeDocument::it_can_add_a_heading[add_heading_fixture3] PASSED [ 1%] tests/test_document.py::DescribeDocument::it_raises_on_heading_level_out_of_range PASSED [ 1%] tests/test_document.py::DescribeDocument::it_can_add_a_page_break PASSED [ 1%] tests/test_document.py::DescribeDocument::it_can_add_a_paragraph[add_paragraph_fixture0] PASSED [ 1%] tests/test_document.py::DescribeDocument::it_can_add_a_paragraph[add_paragraph_fixture1] PASSED [ 1%] tests/test_document.py::DescribeDocument::it_can_add_a_paragraph[add_paragraph_fixture2] PASSED [ 1%] tests/test_document.py::DescribeDocument::it_can_add_a_picture PASSED [ 1%] tests/test_document.py::DescribeDocument::it_can_add_a_section[add_section_fixture0] PASSED [ 2%] tests/test_document.py::DescribeDocument::it_can_add_a_section[add_section_fixture1] PASSED [ 2%] tests/test_document.py::DescribeDocument::it_can_add_a_section[add_section_fixture2] PASSED [ 2%] tests/test_document.py::DescribeDocument::it_can_add_a_table PASSED [ 2%] tests/test_document.py::DescribeDocument::it_can_save_the_document_to_a_file PASSED [ 2%] tests/test_document.py::DescribeDocument::it_provides_access_to_its_core_properties PASSED [ 2%] tests/test_document.py::DescribeDocument::it_provides_access_to_its_inline_shapes PASSED [ 2%] tests/test_document.py::DescribeDocument::it_can_iterate_the_inner_content_of_the_document PASSED [ 2%] tests/test_document.py::DescribeDocument::it_provides_access_to_its_paragraphs PASSED [ 2%] tests/test_document.py::DescribeDocument::it_provides_access_to_its_sections PASSED [ 2%] tests/test_document.py::DescribeDocument::it_provides_access_to_its_settings PASSED [ 2%] tests/test_document.py::DescribeDocument::it_provides_access_to_its_styles PASSED [ 2%] tests/test_document.py::DescribeDocument::it_provides_access_to_its_tables PASSED [ 2%] tests/test_document.py::DescribeDocument::it_provides_access_to_the_document_part PASSED [ 2%] tests/test_document.py::DescribeDocument::it_provides_access_to_the_document_body PASSED [ 2%] tests/test_document.py::DescribeDocument::it_determines_block_width_to_help PASSED [ 2%] tests/test_document.py::Describe_Body::it_can_clear_itself_of_all_content_it_holds[clear_fixture0] PASSED [ 3%] tests/test_document.py::Describe_Body::it_can_clear_itself_of_all_content_it_holds[clear_fixture1] PASSED [ 3%] tests/test_document.py::Describe_Body::it_can_clear_itself_of_all_content_it_holds[clear_fixture2] PASSED [ 3%] tests/test_document.py::Describe_Body::it_can_clear_itself_of_all_content_it_holds[clear_fixture3] PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnum::it_is_an_instance_of_EnumMeta_just_like_a_regular_Enum PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnum::it_has_the_same_repr_as_a_regular_Enum PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnum::it_has_an_MRO_that_goes_through_the_base_class_int_and_Enum PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnum::it_knows_the_XML_value_for_each_member_by_the_member_instance PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnum::it_knows_the_XML_value_for_each_member_by_the_member_value PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnum::but_it_raises_when_there_is_no_such_member PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnum::it_can_find_the_member_from_the_XML_attr_value PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnum::and_it_can_find_the_member_from_None_when_a_member_maps_that PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnum::but_it_raises_when_there_is_no_such_mapped_XML_value PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnumMembers::it_is_an_instance_of_its_XmlEnum_subtype_class PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnumMembers::it_has_the_default_Enum_repr PASSED [ 3%] tests/test_enum.py::DescribeBaseXmlEnumMembers::but_its_str_value_is_customized PASSED [ 4%] tests/test_enum.py::DescribeBaseXmlEnumMembers::its_value_is_the_same_int_as_its_corresponding_MS_API_enum_member PASSED [ 4%] tests/test_enum.py::DescribeBaseXmlEnumMembers::its_name_is_its_member_name_the_same_as_a_regular_Enum PASSED [ 4%] tests/test_enum.py::DescribeBaseXmlEnumMembers::it_has_an_individual_member_specific_docstring PASSED [ 4%] tests/test_enum.py::DescribeBaseXmlEnumMembers::it_is_equivalent_to_its_int_value PASSED [ 4%] tests/test_package.py::DescribePackage::it_can_get_or_add_an_image_part_containing_a_specified_image PASSED [ 4%] tests/test_package.py::DescribePackage::it_gathers_package_image_parts_after_unmarshalling PASSED [ 4%] tests/test_package.py::DescribeImageParts::it_can_get_a_matching_image_part PASSED [ 4%] tests/test_package.py::DescribeImageParts::but_it_adds_a_new_image_part_when_match_fails PASSED [ 4%] tests/test_package.py::DescribeImageParts::it_knows_the_next_available_image_partname[next_partname_fixture0] PASSED [ 4%] tests/test_package.py::DescribeImageParts::it_knows_the_next_available_image_partname[next_partname_fixture1] PASSED [ 4%] tests/test_package.py::DescribeImageParts::it_knows_the_next_available_image_partname[next_partname_fixture2] PASSED [ 4%] tests/test_package.py::DescribeImageParts::it_can_really_add_a_new_image_part PASSED [ 4%] tests/test_section.py::DescribeSections::it_knows_how_many_sections_it_contains PASSED [ 4%] tests/test_section.py::DescribeSections::it_can_iterate_over_its_Section_instances PASSED [ 4%] tests/test_section.py::DescribeSections::it_can_access_its_Section_instances_by_index PASSED [ 4%] tests/test_section.py::DescribeSections::it_can_access_its_Section_instances_by_slice PASSED [ 5%] tests/test_section.py::DescribeSection::it_knows_when_it_displays_a_distinct_first_page_header[w:sectPr-False] PASSED [ 5%] tests/test_section.py::DescribeSection::it_knows_when_it_displays_a_distinct_first_page_header[w:sectPr/w:titlePg-True] PASSED [ 5%] tests/test_section.py::DescribeSection::it_knows_when_it_displays_a_distinct_first_page_header[w:sectPr/w:titlePg{w:val=0}-False] PASSED [ 5%] tests/test_section.py::DescribeSection::it_knows_when_it_displays_a_distinct_first_page_header[w:sectPr/w:titlePg{w:val=1}-True] PASSED [ 5%] tests/test_section.py::DescribeSection::it_knows_when_it_displays_a_distinct_first_page_header[w:sectPr/w:titlePg{w:val=true}-True] PASSED [ 5%] tests/test_section.py::DescribeSection::it_can_change_whether_the_document_has_distinct_odd_and_even_headers[w:sectPr-True-w:sectPr/w:titlePg] PASSED [ 5%] tests/test_section.py::DescribeSection::it_can_change_whether_the_document_has_distinct_odd_and_even_headers[w:sectPr/w:titlePg-False-w:sectPr] PASSED [ 5%] tests/test_section.py::DescribeSection::it_can_change_whether_the_document_has_distinct_odd_and_even_headers[w:sectPr/w:titlePg{w:val=1}-True-w:sectPr/w:titlePg] PASSED [ 5%] tests/test_section.py::DescribeSection::it_can_change_whether_the_document_has_distinct_odd_and_even_headers[w:sectPr/w:titlePg{w:val=off}-False-w:sectPr] PASSED [ 5%] tests/test_section.py::DescribeSection::it_provides_access_to_its_even_page_footer PASSED [ 5%] tests/test_section.py::DescribeSection::it_provides_access_to_its_even_page_header PASSED [ 5%] tests/test_section.py::DescribeSection::it_provides_access_to_its_first_page_footer PASSED [ 5%] tests/test_section.py::DescribeSection::it_provides_access_to_its_first_page_header PASSED [ 5%] tests/test_section.py::DescribeSection::it_provides_access_to_its_default_footer PASSED [ 5%] tests/test_section.py::DescribeSection::it_provides_access_to_its_default_header PASSED [ 6%] tests/test_section.py::DescribeSection::it_can_iterate_its_inner_content PASSED [ 6%] tests/test_section.py::DescribeSection::it_knows_its_start_type[w:sectPr-NEW_PAGE (2)] PASSED [ 6%] tests/test_section.py::DescribeSection::it_knows_its_start_type[w:sectPr/w:type-NEW_PAGE (2)] PASSED [ 6%] tests/test_section.py::DescribeSection::it_knows_its_start_type[w:sectPr/w:type{w:val=continuous}-CONTINUOUS (0)] PASSED [ 6%] tests/test_section.py::DescribeSection::it_knows_its_start_type[w:sectPr/w:type{w:val=nextPage}-NEW_PAGE (2)] PASSED [ 6%] tests/test_section.py::DescribeSection::it_knows_its_start_type[w:sectPr/w:type{w:val=oddPage}-ODD_PAGE (4)] PASSED [ 6%] tests/test_section.py::DescribeSection::it_knows_its_start_type[w:sectPr/w:type{w:val=evenPage}-EVEN_PAGE (3)] PASSED [ 6%] tests/test_section.py::DescribeSection::it_knows_its_start_type[w:sectPr/w:type{w:val=nextColumn}-NEW_COLUMN (1)] PASSED [ 6%] tests/test_section.py::DescribeSection::it_can_change_its_start_type[w:sectPr/w:type{w:val=oddPage}-EVEN_PAGE (3)-w:sectPr/w:type{w:val=evenPage}] PASSED [ 6%] tests/test_section.py::DescribeSection::it_can_change_its_start_type[w:sectPr/w:type{w:val=nextPage}-None-w:sectPr] PASSED [ 6%] tests/test_section.py::DescribeSection::it_can_change_its_start_type[w:sectPr-None-w:sectPr] PASSED [ 6%] tests/test_section.py::DescribeSection::it_can_change_its_start_type[w:sectPr/w:type{w:val=continuous}-NEW_PAGE (2)-w:sectPr] PASSED [ 6%] tests/test_section.py::DescribeSection::it_can_change_its_start_type[w:sectPr/w:type-NEW_PAGE (2)-w:sectPr] PASSED [ 6%] tests/test_section.py::DescribeSection::it_can_change_its_start_type[w:sectPr/w:type-NEW_COLUMN (1)-w:sectPr/w:type{w:val=nextColumn}] PASSED [ 6%] tests/test_section.py::DescribeSection::it_knows_its_page_width[w:sectPr/w:pgSz{w:w=1440}-914400] PASSED [ 7%] tests/test_section.py::DescribeSection::it_knows_its_page_width[w:sectPr/w:pgSz-None] PASSED [ 7%] tests/test_section.py::DescribeSection::it_knows_its_page_width[w:sectPr-None] PASSED [ 7%] tests/test_section.py::DescribeSection::it_can_change_its_page_width[None-w:sectPr/w:pgSz] PASSED [ 7%] tests/test_section.py::DescribeSection::it_can_change_its_page_width[3657600-w:sectPr/w:pgSz{w:w=5760}] PASSED [ 7%] tests/test_section.py::DescribeSection::it_knows_its_page_height[w:sectPr/w:pgSz{w:h=2880}-1828800] PASSED [ 7%] tests/test_section.py::DescribeSection::it_knows_its_page_height[w:sectPr/w:pgSz-None] PASSED [ 7%] tests/test_section.py::DescribeSection::it_knows_its_page_height[w:sectPr-None] PASSED [ 7%] tests/test_section.py::DescribeSection::it_can_change_its_page_height[None-w:sectPr/w:pgSz] PASSED [ 7%] tests/test_section.py::DescribeSection::it_can_change_its_page_height[1828800-w:sectPr/w:pgSz{w:h=2880}] PASSED [ 7%] tests/test_section.py::DescribeSection::it_knows_its_page_orientation[w:sectPr/w:pgSz{w:orient=landscape}-LANDSCAPE (1)] PASSED [ 7%] tests/test_section.py::DescribeSection::it_knows_its_page_orientation[w:sectPr/w:pgSz{w:orient=portrait}-PORTRAIT (0)] PASSED [ 7%] tests/test_section.py::DescribeSection::it_knows_its_page_orientation[w:sectPr/w:pgSz-PORTRAIT (0)] PASSED [ 7%] tests/test_section.py::DescribeSection::it_knows_its_page_orientation[w:sectPr-PORTRAIT (0)] PASSED [ 7%] tests/test_section.py::DescribeSection::it_can_change_its_orientation[LANDSCAPE (1)-w:sectPr/w:pgSz{w:orient=landscape}] PASSED [ 7%] tests/test_section.py::DescribeSection::it_can_change_its_orientation[PORTRAIT (0)-w:sectPr/w:pgSz] PASSED [ 7%] tests/test_section.py::DescribeSection::it_can_change_its_orientation[None-w:sectPr/w:pgSz] PASSED [ 8%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar{w:left=120}-left_margin-76200] PASSED [ 8%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar{w:right=240}-right_margin-152400] PASSED [ 8%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar{w:top=-360}-top_margin--228600] PASSED [ 8%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar{w:bottom=480}-bottom_margin-304800] PASSED [ 8%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar{w:gutter=600}-gutter-381000] PASSED [ 8%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar{w:header=720}-header_distance-457200] PASSED [ 8%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar{w:footer=840}-footer_distance-533400] PASSED [ 8%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr/w:pgMar-left_margin-None] PASSED [ 8%] tests/test_section.py::DescribeSection::it_knows_its_page_margins[w:sectPr-top_margin-None] PASSED [ 8%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-left_margin-914400-w:sectPr/w:pgMar{w:left=1440}] PASSED [ 8%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-right_margin-457200-w:sectPr/w:pgMar{w:right=720}] PASSED [ 8%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-top_margin--228600-w:sectPr/w:pgMar{w:top=-360}] PASSED [ 8%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-bottom_margin-685800-w:sectPr/w:pgMar{w:bottom=1080}] PASSED [ 8%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-gutter-228600-w:sectPr/w:pgMar{w:gutter=360}] PASSED [ 8%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-header_distance-1143000-w:sectPr/w:pgMar{w:header=1800}] PASSED [ 9%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-footer_distance-1234440-w:sectPr/w:pgMar{w:footer=1944}] PASSED [ 9%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr-left_margin-None-w:sectPr/w:pgMar] PASSED [ 9%] tests/test_section.py::DescribeSection::it_can_change_its_page_margins[w:sectPr/w:pgMar{w:top=-360}-top_margin-548640-w:sectPr/w:pgMar{w:top=864}] PASSED [ 9%] tests/test_section.py::Describe_BaseHeaderFooter::it_knows_when_its_linked_to_the_previous_header_or_footer[False-True] PASSED [ 9%] tests/test_section.py::Describe_BaseHeaderFooter::it_knows_when_its_linked_to_the_previous_header_or_footer[True-False] PASSED [ 9%] tests/test_section.py::Describe_BaseHeaderFooter::it_can_change_whether_it_is_linked_to_previous_header_or_footer[False-True-0-0] PASSED [ 9%] tests/test_section.py::Describe_BaseHeaderFooter::it_can_change_whether_it_is_linked_to_previous_header_or_footer[True-False-0-0] PASSED [ 9%] tests/test_section.py::Describe_BaseHeaderFooter::it_can_change_whether_it_is_linked_to_previous_header_or_footer[True-True-1-0] PASSED [ 9%] tests/test_section.py::Describe_BaseHeaderFooter::it_can_change_whether_it_is_linked_to_previous_header_or_footer[False-False-0-1] PASSED [ 9%] tests/test_section.py::Describe_BaseHeaderFooter::it_provides_access_to_the_header_or_footer_part_for_BlockItemContainer PASSED [ 9%] tests/test_section.py::Describe_BaseHeaderFooter::it_provides_access_to_the_hdr_or_ftr_element_to_help PASSED [ 9%] tests/test_section.py::Describe_BaseHeaderFooter::it_gets_the_definition_when_it_has_one PASSED [ 9%] tests/test_section.py::Describe_BaseHeaderFooter::but_it_gets_the_prior_definition_when_it_is_linked PASSED [ 9%] tests/test_section.py::Describe_BaseHeaderFooter::and_it_adds_a_definition_when_it_is_linked_and_the_first_section PASSED [ 9%] tests/test_section.py::Describe_Footer::it_can_add_a_footer_part_to_help PASSED [ 9%] tests/test_section.py::Describe_Footer::it_provides_access_to_its_footer_part_to_help PASSED [ 10%] tests/test_section.py::Describe_Footer::it_can_drop_the_related_footer_part_to_help PASSED [ 10%] tests/test_section.py::Describe_Footer::it_knows_when_it_has_a_definition_to_help[w:sectPr-False] PASSED [ 10%] tests/test_section.py::Describe_Footer::it_knows_when_it_has_a_definition_to_help[w:sectPr/w:footerReference{w:type=default}-True] PASSED [ 10%] tests/test_section.py::Describe_Footer::it_provides_access_to_the_prior_Footer_to_help PASSED [ 10%] tests/test_section.py::Describe_Footer::but_it_returns_None_when_its_the_first_footer PASSED [ 10%] tests/test_section.py::Describe_Header::it_can_add_a_header_part_to_help PASSED [ 10%] tests/test_section.py::Describe_Header::it_provides_access_to_its_header_part_to_help PASSED [ 10%] tests/test_section.py::Describe_Header::it_can_drop_the_related_header_part_to_help PASSED [ 10%] tests/test_section.py::Describe_Header::it_knows_when_it_has_a_header_part_to_help[w:sectPr-False] PASSED [ 10%] tests/test_section.py::Describe_Header::it_knows_when_it_has_a_header_part_to_help[w:sectPr/w:headerReference{w:type=first}-True] PASSED [ 10%] tests/test_section.py::Describe_Header::it_provides_access_to_the_prior_Header_to_help PASSED [ 10%] tests/test_section.py::Describe_Header::but_it_returns_None_when_its_the_first_header PASSED [ 10%] tests/test_settings.py::DescribeSettings::it_knows_when_the_document_has_distinct_odd_and_even_headers[odd_and_even_get_fixture0] PASSED [ 10%] tests/test_settings.py::DescribeSettings::it_knows_when_the_document_has_distinct_odd_and_even_headers[odd_and_even_get_fixture1] PASSED [ 10%] tests/test_settings.py::DescribeSettings::it_knows_when_the_document_has_distinct_odd_and_even_headers[odd_and_even_get_fixture2] PASSED [ 11%] tests/test_settings.py::DescribeSettings::it_knows_when_the_document_has_distinct_odd_and_even_headers[odd_and_even_get_fixture3] PASSED [ 11%] tests/test_settings.py::DescribeSettings::it_knows_when_the_document_has_distinct_odd_and_even_headers[odd_and_even_get_fixture4] PASSED [ 11%] tests/test_settings.py::DescribeSettings::it_can_change_whether_the_document_has_distinct_odd_and_even_headers[odd_and_even_set_fixture0] PASSED [ 11%] tests/test_settings.py::DescribeSettings::it_can_change_whether_the_document_has_distinct_odd_and_even_headers[odd_and_even_set_fixture1] PASSED [ 11%] tests/test_settings.py::DescribeSettings::it_can_change_whether_the_document_has_distinct_odd_and_even_headers[odd_and_even_set_fixture2] PASSED [ 11%] tests/test_settings.py::DescribeSettings::it_can_change_whether_the_document_has_distinct_odd_and_even_headers[odd_and_even_set_fixture3] PASSED [ 11%] tests/test_shape.py::DescribeInlineShapes::it_knows_how_many_inline_shapes_it_contains PASSED [ 11%] tests/test_shape.py::DescribeInlineShapes::it_can_iterate_over_its_InlineShape_instances PASSED [ 11%] tests/test_shape.py::DescribeInlineShapes::it_provides_indexed_access_to_inline_shapes PASSED [ 11%] tests/test_shape.py::DescribeInlineShapes::it_raises_on_indexed_access_out_of_range PASSED [ 11%] tests/test_shape.py::DescribeInlineShapes::it_knows_the_part_it_belongs_to PASSED [ 11%] tests/test_shape.py::DescribeInlineShape::it_knows_what_type_of_shape_it_is[embed pic] PASSED [ 11%] tests/test_shape.py::DescribeInlineShape::it_knows_what_type_of_shape_it_is[link pic] PASSED [ 11%] tests/test_shape.py::DescribeInlineShape::it_knows_what_type_of_shape_it_is[link+embed pic] PASSED [ 11%] tests/test_shape.py::DescribeInlineShape::it_knows_what_type_of_shape_it_is[chart] PASSED [ 12%] tests/test_shape.py::DescribeInlineShape::it_knows_what_type_of_shape_it_is[smart art] PASSED [ 12%] tests/test_shape.py::DescribeInlineShape::it_knows_what_type_of_shape_it_is[not implemented] PASSED [ 12%] tests/test_shape.py::DescribeInlineShape::it_knows_its_display_dimensions PASSED [ 12%] tests/test_shape.py::DescribeInlineShape::it_can_change_its_display_dimensions PASSED [ 12%] tests/test_shared.py::DescribeElementProxy::it_knows_when_its_equal_to_another_proxy_object PASSED [ 12%] tests/test_shared.py::DescribeElementProxy::it_knows_its_element PASSED [ 12%] tests/test_shared.py::DescribeElementProxy::it_knows_its_part PASSED [ 12%] tests/test_shared.py::DescribeLength::it_can_construct_from_convenient_units[construct_fixture0] PASSED [ 12%] tests/test_shared.py::DescribeLength::it_can_construct_from_convenient_units[construct_fixture1] PASSED [ 12%] tests/test_shared.py::DescribeLength::it_can_construct_from_convenient_units[construct_fixture2] PASSED [ 12%] tests/test_shared.py::DescribeLength::it_can_construct_from_convenient_units[construct_fixture3] PASSED [ 12%] tests/test_shared.py::DescribeLength::it_can_construct_from_convenient_units[construct_fixture4] PASSED [ 12%] tests/test_shared.py::DescribeLength::it_can_construct_from_convenient_units[construct_fixture5] PASSED [ 12%] tests/test_shared.py::DescribeLength::it_can_construct_from_convenient_units[construct_fixture6] PASSED [ 12%] tests/test_shared.py::DescribeLength::it_can_self_convert_to_convenient_units[units_fixture0] PASSED [ 12%] tests/test_shared.py::DescribeLength::it_can_self_convert_to_convenient_units[units_fixture1] PASSED [ 13%] tests/test_shared.py::DescribeLength::it_can_self_convert_to_convenient_units[units_fixture2] PASSED [ 13%] tests/test_shared.py::DescribeLength::it_can_self_convert_to_convenient_units[units_fixture3] PASSED [ 13%] tests/test_shared.py::DescribeLength::it_can_self_convert_to_convenient_units[units_fixture4] PASSED [ 13%] tests/test_shared.py::DescribeLength::it_can_self_convert_to_convenient_units[units_fixture5] PASSED [ 13%] tests/test_shared.py::DescribeRGBColor::it_is_natively_constructed_using_three_ints_0_to_255 PASSED [ 13%] tests/test_shared.py::DescribeRGBColor::it_can_construct_from_a_hex_string_rgb_value PASSED [ 13%] tests/test_shared.py::DescribeRGBColor::it_can_provide_a_hex_string_rgb_value PASSED [ 13%] tests/test_shared.py::DescribeRGBColor::it_has_a_custom_repr PASSED [ 13%] tests/test_table.py::DescribeTable::it_can_add_a_row PASSED [ 13%] tests/test_table.py::DescribeTable::it_can_add_a_column PASSED [ 13%] tests/test_table.py::DescribeTable::it_provides_access_to_a_cell_by_row_and_col_indices PASSED [ 13%] tests/test_table.py::DescribeTable::it_provides_access_to_the_table_rows PASSED [ 13%] tests/test_table.py::DescribeTable::it_provides_access_to_the_table_columns PASSED [ 13%] tests/test_table.py::DescribeTable::it_provides_access_to_the_cells_in_a_column PASSED [ 13%] tests/test_table.py::DescribeTable::it_provides_access_to_the_cells_in_a_row PASSED [ 14%] tests/test_table.py::DescribeTable::it_knows_its_alignment_setting[alignment_get_fixture0] PASSED [ 14%] tests/test_table.py::DescribeTable::it_knows_its_alignment_setting[alignment_get_fixture1] PASSED [ 14%] tests/test_table.py::DescribeTable::it_knows_its_alignment_setting[alignment_get_fixture2] PASSED [ 14%] tests/test_table.py::DescribeTable::it_knows_its_alignment_setting[alignment_get_fixture3] PASSED [ 14%] tests/test_table.py::DescribeTable::it_can_change_its_alignment_setting[alignment_set_fixture0] PASSED [ 14%] tests/test_table.py::DescribeTable::it_can_change_its_alignment_setting[alignment_set_fixture1] PASSED [ 14%] tests/test_table.py::DescribeTable::it_can_change_its_alignment_setting[alignment_set_fixture2] PASSED [ 14%] tests/test_table.py::DescribeTable::it_knows_whether_it_should_autofit[autofit_get_fixture0] PASSED [ 14%] tests/test_table.py::DescribeTable::it_knows_whether_it_should_autofit[autofit_get_fixture1] PASSED [ 14%] tests/test_table.py::DescribeTable::it_knows_whether_it_should_autofit[autofit_get_fixture2] PASSED [ 14%] tests/test_table.py::DescribeTable::it_knows_whether_it_should_autofit[autofit_get_fixture3] PASSED [ 14%] tests/test_table.py::DescribeTable::it_can_change_its_autofit_setting[autofit_set_fixture0] PASSED [ 14%] tests/test_table.py::DescribeTable::it_can_change_its_autofit_setting[autofit_set_fixture1] PASSED [ 14%] tests/test_table.py::DescribeTable::it_can_change_its_autofit_setting[autofit_set_fixture2] PASSED [ 14%] tests/test_table.py::DescribeTable::it_can_change_its_autofit_setting[autofit_set_fixture3] PASSED [ 14%] tests/test_table.py::DescribeTable::it_can_change_its_autofit_setting[autofit_set_fixture4] PASSED [ 15%] tests/test_table.py::DescribeTable::it_knows_it_is_the_table_its_children_belong_to PASSED [ 15%] tests/test_table.py::DescribeTable::it_knows_its_direction[direction_get_fixture0] PASSED [ 15%] tests/test_table.py::DescribeTable::it_knows_its_direction[direction_get_fixture1] PASSED [ 15%] tests/test_table.py::DescribeTable::it_knows_its_direction[direction_get_fixture2] PASSED [ 15%] tests/test_table.py::DescribeTable::it_knows_its_direction[direction_get_fixture3] PASSED [ 15%] tests/test_table.py::DescribeTable::it_can_change_its_direction[direction_set_fixture0] PASSED [ 15%] tests/test_table.py::DescribeTable::it_can_change_its_direction[direction_set_fixture1] PASSED [ 15%] tests/test_table.py::DescribeTable::it_can_change_its_direction[direction_set_fixture2] PASSED [ 15%] tests/test_table.py::DescribeTable::it_can_change_its_direction[direction_set_fixture3] PASSED [ 15%] tests/test_table.py::DescribeTable::it_knows_its_table_style PASSED [ 15%] tests/test_table.py::DescribeTable::it_can_change_its_table_style[style_set_fixture0] PASSED [ 15%] tests/test_table.py::DescribeTable::it_can_change_its_table_style[style_set_fixture1] PASSED [ 15%] tests/test_table.py::DescribeTable::it_can_change_its_table_style[style_set_fixture2] PASSED [ 15%] tests/test_table.py::DescribeTable::it_provides_access_to_its_cells_to_help[cells_fixture0] PASSED [ 15%] tests/test_table.py::DescribeTable::it_provides_access_to_its_cells_to_help[cells_fixture1] PASSED [ 16%] tests/test_table.py::DescribeTable::it_provides_access_to_its_cells_to_help[cells_fixture2] PASSED [ 16%] tests/test_table.py::DescribeTable::it_provides_access_to_its_cells_to_help[cells_fixture3] PASSED [ 16%] tests/test_table.py::DescribeTable::it_provides_access_to_its_cells_to_help[cells_fixture4] PASSED [ 16%] tests/test_table.py::DescribeTable::it_knows_its_column_count_to_help PASSED [ 16%] tests/test_table.py::Describe_Cell::it_knows_what_text_it_contains[text_get_fixture0] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_knows_what_text_it_contains[text_get_fixture1] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_knows_what_text_it_contains[text_get_fixture2] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_knows_what_text_it_contains[text_get_fixture3] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_knows_what_text_it_contains[text_get_fixture4] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_can_replace_its_content_with_a_string_of_text[text_set_fixture0] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_can_replace_its_content_with_a_string_of_text[text_set_fixture1] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_can_replace_its_content_with_a_string_of_text[text_set_fixture2] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_knows_its_vertical_alignment[alignment_get_fixture0] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_knows_its_vertical_alignment[alignment_get_fixture1] PASSED [ 16%] tests/test_table.py::Describe_Cell::it_knows_its_vertical_alignment[alignment_get_fixture2] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_knows_its_vertical_alignment[alignment_get_fixture3] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_can_change_its_vertical_alignment[alignment_set_fixture0] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_can_change_its_vertical_alignment[alignment_set_fixture1] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_can_change_its_vertical_alignment[alignment_set_fixture2] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_can_change_its_vertical_alignment[alignment_set_fixture3] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_can_change_its_vertical_alignment[alignment_set_fixture4] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_can_change_its_vertical_alignment[alignment_set_fixture5] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_knows_its_width_in_EMU[width_get_fixture0] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_knows_its_width_in_EMU[width_get_fixture1] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_knows_its_width_in_EMU[width_get_fixture2] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_knows_its_width_in_EMU[width_get_fixture3] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_can_change_its_width[width_set_fixture0] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_can_change_its_width[width_set_fixture1] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_provides_access_to_the_paragraphs_it_contains PASSED [ 17%] tests/test_table.py::Describe_Cell::it_provides_access_to_the_tables_it_contains[tables_fixture0] PASSED [ 17%] tests/test_table.py::Describe_Cell::it_provides_access_to_the_tables_it_contains[tables_fixture1] PASSED [ 18%] tests/test_table.py::Describe_Cell::it_provides_access_to_the_tables_it_contains[tables_fixture2] PASSED [ 18%] tests/test_table.py::Describe_Cell::it_provides_access_to_the_tables_it_contains[tables_fixture3] PASSED [ 18%] tests/test_table.py::Describe_Cell::it_provides_access_to_the_tables_it_contains[tables_fixture4] PASSED [ 18%] tests/test_table.py::Describe_Cell::it_can_add_a_paragraph[add_paragraph_fixture0] PASSED [ 18%] tests/test_table.py::Describe_Cell::it_can_add_a_paragraph[add_paragraph_fixture1] PASSED [ 18%] tests/test_table.py::Describe_Cell::it_can_add_a_paragraph[add_paragraph_fixture2] PASSED [ 18%] tests/test_table.py::Describe_Cell::it_can_add_a_table PASSED [ 18%] tests/test_table.py::Describe_Cell::it_can_merge_itself_with_other_cells PASSED [ 18%] tests/test_table.py::Describe_Column::it_provides_access_to_its_cells PASSED [ 18%] tests/test_table.py::Describe_Column::it_provides_access_to_the_table_it_belongs_to PASSED [ 18%] tests/test_table.py::Describe_Column::it_knows_its_width_in_EMU[width_get_fixture0] PASSED [ 18%] tests/test_table.py::Describe_Column::it_knows_its_width_in_EMU[width_get_fixture1] PASSED [ 18%] tests/test_table.py::Describe_Column::it_knows_its_width_in_EMU[width_get_fixture2] PASSED [ 18%] tests/test_table.py::Describe_Column::it_knows_its_width_in_EMU[width_get_fixture3] PASSED [ 18%] tests/test_table.py::Describe_Column::it_knows_its_width_in_EMU[width_get_fixture4] PASSED [ 19%] tests/test_table.py::Describe_Column::it_knows_its_width_in_EMU[width_get_fixture5] PASSED [ 19%] tests/test_table.py::Describe_Column::it_can_change_its_width[width_set_fixture0] PASSED [ 19%] tests/test_table.py::Describe_Column::it_can_change_its_width[width_set_fixture1] PASSED [ 19%] tests/test_table.py::Describe_Column::it_can_change_its_width[width_set_fixture2] PASSED [ 19%] tests/test_table.py::Describe_Column::it_can_change_its_width[width_set_fixture3] PASSED [ 19%] tests/test_table.py::Describe_Column::it_knows_its_index_in_table_to_help PASSED [ 19%] tests/test_table.py::Describe_Columns::it_knows_how_many_columns_it_contains PASSED [ 19%] tests/test_table.py::Describe_Columns::it_can_interate_over_its__Column_instances PASSED [ 19%] tests/test_table.py::Describe_Columns::it_provides_indexed_access_to_columns PASSED [ 19%] tests/test_table.py::Describe_Columns::it_raises_on_indexed_access_out_of_range PASSED [ 19%] tests/test_table.py::Describe_Columns::it_provides_access_to_the_table_it_belongs_to PASSED [ 19%] tests/test_table.py::Describe_Row::it_knows_its_height[height_get_fixture0] PASSED [ 19%] tests/test_table.py::Describe_Row::it_knows_its_height[height_get_fixture1] PASSED [ 19%] tests/test_table.py::Describe_Row::it_knows_its_height[height_get_fixture2] PASSED [ 19%] tests/test_table.py::Describe_Row::it_knows_its_height[height_get_fixture3] PASSED [ 19%] tests/test_table.py::Describe_Row::it_knows_its_height[height_get_fixture4] PASSED [ 20%] tests/test_table.py::Describe_Row::it_can_change_its_height[height_set_fixture0] PASSED [ 20%] tests/test_table.py::Describe_Row::it_can_change_its_height[height_set_fixture1] PASSED [ 20%] tests/test_table.py::Describe_Row::it_can_change_its_height[height_set_fixture2] PASSED [ 20%] tests/test_table.py::Describe_Row::it_can_change_its_height[height_set_fixture3] PASSED [ 20%] tests/test_table.py::Describe_Row::it_can_change_its_height[height_set_fixture4] PASSED [ 20%] tests/test_table.py::Describe_Row::it_can_change_its_height[height_set_fixture5] PASSED [ 20%] tests/test_table.py::Describe_Row::it_can_change_its_height[height_set_fixture6] PASSED [ 20%] tests/test_table.py::Describe_Row::it_can_change_its_height[height_set_fixture7] PASSED [ 20%] tests/test_table.py::Describe_Row::it_knows_its_height_rule[height_rule_get_fixture0] PASSED [ 20%] tests/test_table.py::Describe_Row::it_knows_its_height_rule[height_rule_get_fixture1] PASSED [ 20%] tests/test_table.py::Describe_Row::it_knows_its_height_rule[height_rule_get_fixture2] PASSED [ 20%] tests/test_table.py::Describe_Row::it_knows_its_height_rule[height_rule_get_fixture3] PASSED [ 20%] tests/test_table.py::Describe_Row::it_knows_its_height_rule[height_rule_get_fixture4] PASSED [ 20%] tests/test_table.py::Describe_Row::it_can_change_its_height_rule[height_rule_set_fixture0] PASSED [ 20%] tests/test_table.py::Describe_Row::it_can_change_its_height_rule[height_rule_set_fixture1] PASSED [ 21%] tests/test_table.py::Describe_Row::it_can_change_its_height_rule[height_rule_set_fixture2] PASSED [ 21%] tests/test_table.py::Describe_Row::it_can_change_its_height_rule[height_rule_set_fixture3] PASSED [ 21%] tests/test_table.py::Describe_Row::it_can_change_its_height_rule[height_rule_set_fixture4] PASSED [ 21%] tests/test_table.py::Describe_Row::it_can_change_its_height_rule[height_rule_set_fixture5] PASSED [ 21%] tests/test_table.py::Describe_Row::it_can_change_its_height_rule[height_rule_set_fixture6] PASSED [ 21%] tests/test_table.py::Describe_Row::it_can_change_its_height_rule[height_rule_set_fixture7] PASSED [ 21%] tests/test_table.py::Describe_Row::it_provides_access_to_its_cells PASSED [ 21%] tests/test_table.py::Describe_Row::it_provides_access_to_the_table_it_belongs_to PASSED [ 21%] tests/test_table.py::Describe_Row::it_knows_its_index_in_table_to_help PASSED [ 21%] tests/test_table.py::Describe_Rows::it_knows_how_many_rows_it_contains PASSED [ 21%] tests/test_table.py::Describe_Rows::it_can_iterate_over_its__Row_instances PASSED [ 21%] tests/test_table.py::Describe_Rows::it_provides_indexed_access_to_rows PASSED [ 21%] tests/test_table.py::Describe_Rows::it_provides_sliced_access_to_rows[slice_fixture0] PASSED [ 21%] tests/test_table.py::Describe_Rows::it_provides_sliced_access_to_rows[slice_fixture1] PASSED [ 21%] tests/test_table.py::Describe_Rows::it_raises_on_indexed_access_out_of_range PASSED [ 21%] tests/test_table.py::Describe_Rows::it_provides_access_to_the_table_it_belongs_to PASSED [ 22%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_color_type[type_fixture0] PASSED [ 22%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_color_type[type_fixture1] PASSED [ 22%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_color_type[type_fixture2] PASSED [ 22%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_color_type[type_fixture3] PASSED [ 22%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_color_type[type_fixture4] PASSED [ 22%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_color_type[type_fixture5] PASSED [ 22%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_RGB_value[rgb_get_fixture0] PASSED [ 22%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_RGB_value[rgb_get_fixture1] PASSED [ 22%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_RGB_value[rgb_get_fixture2] PASSED [ 22%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_RGB_value[rgb_get_fixture3] PASSED [ 22%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_RGB_value[rgb_get_fixture4] PASSED [ 22%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_RGB_value[rgb_get_fixture5] PASSED [ 22%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_RGB_value[rgb_set_fixture0] PASSED [ 22%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_RGB_value[rgb_set_fixture1] PASSED [ 22%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_RGB_value[rgb_set_fixture2] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_RGB_value[rgb_set_fixture3] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_RGB_value[rgb_set_fixture4] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_RGB_value[rgb_set_fixture5] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_RGB_value[rgb_set_fixture6] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_theme_color[theme_color_get_fixture0] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_theme_color[theme_color_get_fixture1] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_theme_color[theme_color_get_fixture2] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_theme_color[theme_color_get_fixture3] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_theme_color[theme_color_get_fixture4] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_knows_its_theme_color[theme_color_get_fixture5] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_theme_color[theme_color_set_fixture0] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_theme_color[theme_color_set_fixture1] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_theme_color[theme_color_set_fixture2] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_theme_color[theme_color_set_fixture3] PASSED [ 23%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_theme_color[theme_color_set_fixture4] PASSED [ 24%] tests/dml/test_color.py::DescribeColorFormat::it_can_change_its_theme_color[theme_color_set_fixture5] PASSED [ 24%] tests/image/test_bmp.py::DescribeBmp::it_can_construct_from_a_bmp_stream PASSED [ 24%] tests/image/test_bmp.py::DescribeBmp::it_knows_its_content_type PASSED [ 24%] tests/image/test_bmp.py::DescribeBmp::it_knows_its_default_ext PASSED [ 24%] tests/image/test_gif.py::DescribeGif::it_can_construct_from_a_gif_stream PASSED [ 24%] tests/image/test_gif.py::DescribeGif::it_knows_its_content_type PASSED [ 24%] tests/image/test_gif.py::DescribeGif::it_knows_its_default_ext PASSED [ 24%] tests/image/test_helpers.py::DescribeStreamReader::it_can_read_a_string_of_specified_len_at_offset PASSED [ 24%] tests/image/test_helpers.py::DescribeStreamReader::it_raises_on_unexpected_EOF PASSED [ 24%] tests/image/test_helpers.py::DescribeStreamReader::it_can_read_a_long[read_long_fixture0] PASSED [ 24%] tests/image/test_helpers.py::DescribeStreamReader::it_can_read_a_long[read_long_fixture1] PASSED [ 24%] tests/image/test_image.py::DescribeImage::it_can_construct_from_an_image_blob PASSED [ 24%] tests/image/test_image.py::DescribeImage::it_can_construct_from_an_image_path PASSED [ 24%] tests/image/test_image.py::DescribeImage::it_can_construct_from_an_image_file_like PASSED [ 24%] tests/image/test_image.py::DescribeImage::it_can_construct_from_an_image_stream[foobar.png] PASSED [ 24%] tests/image/test_image.py::DescribeImage::it_can_construct_from_an_image_stream[None] PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_provides_access_to_the_image_blob PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_knows_the_image_content_type PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_knows_the_image_px_dimensions PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_knows_the_horz_and_vert_dpi_of_the_image PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_knows_the_image_native_size PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_can_scale_its_dimensions[scale_fixture0] PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_can_scale_its_dimensions[scale_fixture1] PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_can_scale_its_dimensions[scale_fixture2] PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_can_scale_its_dimensions[scale_fixture3] PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_knows_the_image_filename PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_knows_the_image_filename_extension PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_knows_the_sha1_of_its_image PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[0] PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[1] PASSED [ 25%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[2] PASSED [ 26%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[3] PASSED [ 26%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[4] PASSED [ 26%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[5] PASSED [ 26%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[6] PASSED [ 26%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[7] PASSED [ 26%] tests/image/test_image.py::DescribeImage::it_correctly_characterizes_known_images[8] PASSED [ 26%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_constructs_the_right_class_for_a_given_image_stream[call_fixture0] PASSED [ 26%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_constructs_the_right_class_for_a_given_image_stream[call_fixture1] PASSED [ 26%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_constructs_the_right_class_for_a_given_image_stream[call_fixture2] PASSED [ 26%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_constructs_the_right_class_for_a_given_image_stream[call_fixture3] PASSED [ 26%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_constructs_the_right_class_for_a_given_image_stream[call_fixture4] PASSED [ 26%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_constructs_the_right_class_for_a_given_image_stream[call_fixture5] PASSED [ 26%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_constructs_the_right_class_for_a_given_image_stream[call_fixture6] PASSED [ 26%] tests/image/test_image.py::Describe_ImageHeaderFactory::it_raises_on_unrecognized_image_stream PASSED [ 26%] tests/image/test_image.py::DescribeBaseImageHeader::it_defines_content_type_as_an_abstract_property PASSED [ 26%] tests/image/test_image.py::DescribeBaseImageHeader::it_defines_default_ext_as_an_abstract_property PASSED [ 27%] tests/image/test_image.py::DescribeBaseImageHeader::it_knows_the_image_dimensions PASSED [ 27%] tests/image/test_image.py::DescribeBaseImageHeader::it_knows_the_horz_and_vert_dpi_of_the_image PASSED [ 27%] tests/image/test_jpeg.py::DescribeJpeg::it_knows_its_content_type PASSED [ 27%] tests/image/test_jpeg.py::DescribeJpeg::it_knows_its_default_ext PASSED [ 27%] tests/image/test_jpeg.py::DescribeJpeg::DescribeExif::it_can_construct_from_an_exif_stream PASSED [ 27%] tests/image/test_jpeg.py::DescribeJpeg::DescribeJfif::it_can_construct_from_a_jfif_stream PASSED [ 27%] tests/image/test_jpeg.py::Describe_JfifMarkers::it_can_construct_from_a_jfif_stream PASSED [ 27%] tests/image/test_jpeg.py::Describe_JfifMarkers::it_can_find_the_APP0_marker PASSED [ 27%] tests/image/test_jpeg.py::Describe_JfifMarkers::it_can_find_the_APP1_marker PASSED [ 27%] tests/image/test_jpeg.py::Describe_JfifMarkers::it_raises_if_it_cant_find_the_APP0_marker PASSED [ 27%] tests/image/test_jpeg.py::Describe_JfifMarkers::it_raises_if_it_cant_find_the_APP1_marker PASSED [ 27%] tests/image/test_jpeg.py::Describe_JfifMarkers::it_can_find_the_SOF_marker PASSED [ 27%] tests/image/test_jpeg.py::Describe_JfifMarkers::it_raises_if_it_cant_find_the_SOF_marker PASSED [ 27%] tests/image/test_jpeg.py::Describe_Marker::it_can_construct_from_a_stream_and_offset[from_stream_fixture0] PASSED [ 27%] tests/image/test_jpeg.py::Describe_Marker::it_can_construct_from_a_stream_and_offset[from_stream_fixture1] PASSED [ 28%] tests/image/test_jpeg.py::Describe_App0Marker::it_can_construct_from_a_stream_and_offset PASSED [ 28%] tests/image/test_jpeg.py::Describe_App0Marker::it_knows_the_image_dpi[dpi_fixture0] PASSED [ 28%] tests/image/test_jpeg.py::Describe_App0Marker::it_knows_the_image_dpi[dpi_fixture1] PASSED [ 28%] tests/image/test_jpeg.py::Describe_App0Marker::it_knows_the_image_dpi[dpi_fixture2] PASSED [ 28%] tests/image/test_jpeg.py::Describe_App1Marker::it_can_construct_from_a_stream_and_offset PASSED [ 28%] tests/image/test_jpeg.py::Describe_App1Marker::it_can_construct_from_non_Exif_APP1_segment PASSED [ 28%] tests/image/test_jpeg.py::Describe_App1Marker::it_gets_a_tiff_from_its_Exif_segment_to_help_construct PASSED [ 28%] tests/image/test_jpeg.py::Describe_App1Marker::it_knows_the_image_dpi PASSED [ 28%] tests/image/test_jpeg.py::Describe_SofMarker::it_can_construct_from_a_stream_and_offset PASSED [ 28%] tests/image/test_jpeg.py::Describe_SofMarker::it_knows_the_image_width_and_height PASSED [ 28%] tests/image/test_jpeg.py::Describe_MarkerFactory::it_constructs_the_appropriate_marker_object[\xe0] PASSED [ 28%] tests/image/test_jpeg.py::Describe_MarkerFactory::it_constructs_the_appropriate_marker_object[\xe1] PASSED [ 28%] tests/image/test_jpeg.py::Describe_MarkerFactory::it_constructs_the_appropriate_marker_object[\xc0] PASSED [ 28%] tests/image/test_jpeg.py::Describe_MarkerFactory::it_constructs_the_appropriate_marker_object[\xc7] PASSED [ 28%] tests/image/test_jpeg.py::Describe_MarkerFactory::it_constructs_the_appropriate_marker_object[\xda] PASSED [ 29%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_construct_from_a_stream PASSED [ 29%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_find_the_next_marker_after_a_given_offset[next_fixture0] PASSED [ 29%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_find_the_next_marker_after_a_given_offset[next_fixture1] PASSED [ 29%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_find_the_next_marker_after_a_given_offset[next_fixture2] PASSED [ 29%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_find_the_next_marker_after_a_given_offset[next_fixture3] PASSED [ 29%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_find_the_next_marker_after_a_given_offset[next_fixture4] PASSED [ 29%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_find_the_next_marker_after_a_given_offset[next_fixture5] PASSED [ 29%] tests/image/test_jpeg.py::Describe_MarkerFinder::it_can_find_the_next_marker_after_a_given_offset[next_fixture6] PASSED [ 29%] tests/image/test_jpeg.py::Describe_MarkerParser::it_can_construct_from_a_jfif_stream PASSED [ 29%] tests/image/test_jpeg.py::Describe_MarkerParser::it_can_iterate_over_the_jfif_markers_in_its_stream PASSED [ 29%] tests/image/test_png.py::DescribePng::it_can_construct_from_a_png_stream PASSED [ 29%] tests/image/test_png.py::DescribePng::it_knows_its_content_type PASSED [ 29%] tests/image/test_png.py::DescribePng::it_knows_its_default_ext PASSED [ 29%] tests/image/test_png.py::Describe_PngParser::it_can_parse_the_headers_of_a_PNG_stream PASSED [ 29%] tests/image/test_png.py::Describe_PngParser::it_knows_the_image_width_and_height PASSED [ 29%] tests/image/test_png.py::Describe_PngParser::it_knows_the_image_dpi PASSED [ 30%] tests/image/test_png.py::Describe_PngParser::it_defaults_image_dpi_to_72[no_dpi_fixture0] PASSED [ 30%] tests/image/test_png.py::Describe_PngParser::it_defaults_image_dpi_to_72[no_dpi_fixture1] PASSED [ 30%] tests/image/test_png.py::Describe_PngParser::it_defaults_image_dpi_to_72[no_dpi_fixture2] PASSED [ 30%] tests/image/test_png.py::Describe_PngParser::it_defaults_image_dpi_to_72[no_dpi_fixture3] PASSED [ 30%] tests/image/test_png.py::Describe_PngParser::it_defaults_image_dpi_to_72[no_dpi_fixture4] PASSED [ 30%] tests/image/test_png.py::Describe_Chunks::it_can_construct_from_a_stream PASSED [ 30%] tests/image/test_png.py::Describe_Chunks::it_provides_access_to_the_IHDR_chunk PASSED [ 30%] tests/image/test_png.py::Describe_Chunks::it_provides_access_to_the_pHYs_chunk[True] PASSED [ 30%] tests/image/test_png.py::Describe_Chunks::it_provides_access_to_the_pHYs_chunk[False] PASSED [ 30%] tests/image/test_png.py::Describe_Chunks::it_raises_if_theres_no_IHDR_chunk PASSED [ 30%] tests/image/test_png.py::Describe_ChunkParser::it_can_construct_from_a_stream PASSED [ 30%] tests/image/test_png.py::Describe_ChunkParser::it_can_iterate_over_the_chunks_in_its_png_stream PASSED [ 30%] tests/image/test_png.py::Describe_ChunkParser::it_iterates_over_the_chunk_offsets_to_help_parse PASSED [ 30%] tests/image/test_png.py::Describe_ChunkFactory::it_constructs_the_appropriate_Chunk_subclass[IHDR] PASSED [ 30%] tests/image/test_png.py::Describe_ChunkFactory::it_constructs_the_appropriate_Chunk_subclass[pHYs] PASSED [ 31%] tests/image/test_png.py::Describe_ChunkFactory::it_constructs_the_appropriate_Chunk_subclass[IEND] PASSED [ 31%] tests/image/test_png.py::Describe_Chunk::it_can_construct_from_a_stream_and_offset PASSED [ 31%] tests/image/test_png.py::Describe_IHDRChunk::it_can_construct_from_a_stream_and_offset PASSED [ 31%] tests/image/test_png.py::Describe_pHYsChunk::it_can_construct_from_a_stream_and_offset PASSED [ 31%] tests/image/test_tiff.py::DescribeTiff::it_can_construct_from_a_tiff_stream PASSED [ 31%] tests/image/test_tiff.py::DescribeTiff::it_knows_its_content_type PASSED [ 31%] tests/image/test_tiff.py::DescribeTiff::it_knows_its_default_ext PASSED [ 31%] tests/image/test_tiff.py::Describe_TiffParser::it_can_parse_the_properties_from_a_tiff_stream PASSED [ 31%] tests/image/test_tiff.py::Describe_TiffParser::it_makes_a_stream_reader_to_help_parse[mk_stream_rdr_fixture0] PASSED [ 31%] tests/image/test_tiff.py::Describe_TiffParser::it_makes_a_stream_reader_to_help_parse[mk_stream_rdr_fixture1] PASSED [ 31%] tests/image/test_tiff.py::Describe_TiffParser::it_knows_image_width_and_height_after_parsing PASSED [ 31%] tests/image/test_tiff.py::Describe_TiffParser::it_knows_the_horz_and_vert_dpi_after_parsing[dpi_fixture0] PASSED [ 31%] tests/image/test_tiff.py::Describe_TiffParser::it_knows_the_horz_and_vert_dpi_after_parsing[dpi_fixture1] PASSED [ 31%] tests/image/test_tiff.py::Describe_TiffParser::it_knows_the_horz_and_vert_dpi_after_parsing[dpi_fixture2] PASSED [ 31%] tests/image/test_tiff.py::Describe_TiffParser::it_knows_the_horz_and_vert_dpi_after_parsing[dpi_fixture3] PASSED [ 31%] tests/image/test_tiff.py::Describe_TiffParser::it_knows_the_horz_and_vert_dpi_after_parsing[dpi_fixture4] PASSED [ 32%] tests/image/test_tiff.py::Describe_IfdEntries::it_can_construct_from_a_stream_and_offset PASSED [ 32%] tests/image/test_tiff.py::Describe_IfdEntries::it_has_basic_mapping_semantics PASSED [ 32%] tests/image/test_tiff.py::Describe_IfdParser::it_can_iterate_through_the_directory_entries_in_an_IFD PASSED [ 32%] tests/image/test_tiff.py::Describe_IfdEntryFactory::it_constructs_the_right_class_for_a_given_ifd_entry[fixture0] PASSED [ 32%] tests/image/test_tiff.py::Describe_IfdEntryFactory::it_constructs_the_right_class_for_a_given_ifd_entry[fixture1] PASSED [ 32%] tests/image/test_tiff.py::Describe_IfdEntryFactory::it_constructs_the_right_class_for_a_given_ifd_entry[fixture2] PASSED [ 32%] tests/image/test_tiff.py::Describe_IfdEntryFactory::it_constructs_the_right_class_for_a_given_ifd_entry[fixture3] PASSED [ 32%] tests/image/test_tiff.py::Describe_IfdEntryFactory::it_constructs_the_right_class_for_a_given_ifd_entry[fixture4] PASSED [ 32%] tests/image/test_tiff.py::Describe_IfdEntryFactory::it_constructs_the_right_class_for_a_given_ifd_entry[fixture5] PASSED [ 32%] tests/image/test_tiff.py::Describe_IfdEntry::it_can_construct_from_a_stream_and_offset PASSED [ 32%] tests/image/test_tiff.py::Describe_IfdEntry::it_provides_read_only_access_to_the_directory_entry PASSED [ 32%] tests/image/test_tiff.py::Describe_AsciiIfdEntry::it_can_parse_an_ascii_string_IFD_entry PASSED [ 32%] tests/image/test_tiff.py::Describe_ShortIfdEntry::it_can_parse_a_short_int_IFD_entry PASSED [ 32%] tests/image/test_tiff.py::Describe_LongIfdEntry::it_can_parse_a_long_int_IFD_entry PASSED [ 32%] tests/image/test_tiff.py::Describe_RationalIfdEntry::it_can_parse_a_rational_IFD_entry PASSED [ 33%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[text_prop_get_fixture0] PASSED [ 33%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[text_prop_get_fixture1] PASSED [ 33%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[text_prop_get_fixture2] PASSED [ 33%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[text_prop_get_fixture3] PASSED [ 33%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[text_prop_get_fixture4] PASSED [ 33%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[text_prop_get_fixture5] PASSED [ 33%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[text_prop_get_fixture6] PASSED [ 33%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[text_prop_get_fixture7] PASSED [ 33%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[text_prop_get_fixture8] PASSED [ 33%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[text_prop_get_fixture9] PASSED [ 33%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_string_property_values[text_prop_get_fixture10] PASSED [ 33%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[text_prop_set_fixture0] PASSED [ 33%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[text_prop_set_fixture1] PASSED [ 33%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[text_prop_set_fixture2] PASSED [ 33%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[text_prop_set_fixture3] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[text_prop_set_fixture4] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[text_prop_set_fixture5] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[text_prop_set_fixture6] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[text_prop_set_fixture7] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[text_prop_set_fixture8] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[text_prop_set_fixture9] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_string_property_values[text_prop_set_fixture10] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_date_property_values[date_prop_get_fixture0] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_date_property_values[date_prop_get_fixture1] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_date_property_values[date_prop_get_fixture2] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_date_property_values[date_prop_set_fixture0] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_date_property_values[date_prop_set_fixture1] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_date_property_values[date_prop_set_fixture2] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_revision_number[revision_get_fixture0] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_revision_number[revision_get_fixture1] PASSED [ 34%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_revision_number[revision_get_fixture2] PASSED [ 35%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_revision_number[revision_get_fixture3] PASSED [ 35%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_knows_the_revision_number[revision_get_fixture4] PASSED [ 35%] tests/opc/test_coreprops.py::DescribeCoreProperties::it_can_change_the_revision_number[revision_set_fixture0] PASSED [ 35%] tests/opc/test_oxml.py::DescribeCT_Default::it_provides_read_access_to_xml_values PASSED [ 35%] tests/opc/test_oxml.py::DescribeCT_Default::it_can_construct_a_new_default_element PASSED [ 35%] tests/opc/test_oxml.py::DescribeCT_Override::it_provides_read_access_to_xml_values PASSED [ 35%] tests/opc/test_oxml.py::DescribeCT_Override::it_can_construct_a_new_override_element PASSED [ 35%] tests/opc/test_oxml.py::DescribeCT_Relationship::it_provides_read_access_to_xml_values PASSED [ 35%] tests/opc/test_oxml.py::DescribeCT_Relationship::it_can_construct_from_attribute_values PASSED [ 35%] tests/opc/test_oxml.py::DescribeCT_Relationships::it_can_construct_a_new_relationships_element PASSED [ 35%] tests/opc/test_oxml.py::DescribeCT_Relationships::it_can_build_rels_element_incrementally PASSED [ 35%] tests/opc/test_oxml.py::DescribeCT_Relationships::it_can_generate_rels_file_xml PASSED [ 35%] tests/opc/test_oxml.py::DescribeCT_Types::it_provides_access_to_default_child_elements PASSED [ 35%] tests/opc/test_oxml.py::DescribeCT_Types::it_provides_access_to_override_child_elements PASSED [ 35%] tests/opc/test_oxml.py::DescribeCT_Types::it_should_have_empty_list_on_no_matching_elements PASSED [ 36%] tests/opc/test_oxml.py::DescribeCT_Types::it_can_construct_a_new_types_element PASSED [ 36%] tests/opc/test_oxml.py::DescribeCT_Types::it_can_build_types_element_incrementally PASSED [ 36%] tests/opc/test_package.py::DescribeOpcPackage::it_can_open_a_pkg_file PASSED [ 36%] tests/opc/test_package.py::DescribeOpcPackage::it_initializes_its_rels_collection_on_first_reference PASSED [ 36%] tests/opc/test_package.py::DescribeOpcPackage::it_can_add_a_relationship_to_a_part PASSED [ 36%] tests/opc/test_package.py::DescribeOpcPackage::it_can_establish_a_relationship_to_another_part PASSED [ 36%] tests/opc/test_package.py::DescribeOpcPackage::it_can_provide_a_list_of_the_parts_it_contains PASSED [ 36%] tests/opc/test_package.py::DescribeOpcPackage::it_can_iterate_over_parts_by_walking_rels_graph PASSED [ 36%] tests/opc/test_package.py::DescribeOpcPackage::it_can_find_the_next_available_vector_partname[next_partname_fixture0] PASSED [ 36%] tests/opc/test_package.py::DescribeOpcPackage::it_can_find_the_next_available_vector_partname[next_partname_fixture1] PASSED [ 36%] tests/opc/test_package.py::DescribeOpcPackage::it_can_find_the_next_available_vector_partname[next_partname_fixture2] PASSED [ 36%] tests/opc/test_package.py::DescribeOpcPackage::it_can_find_the_next_available_vector_partname[next_partname_fixture3] PASSED [ 36%] tests/opc/test_package.py::DescribeOpcPackage::it_can_find_the_next_available_vector_partname[next_partname_fixture4] PASSED [ 36%] tests/opc/test_package.py::DescribeOpcPackage::it_can_find_a_part_related_by_reltype PASSED [ 36%] tests/opc/test_package.py::DescribeOpcPackage::it_can_save_to_a_pkg_file PASSED [ 36%] tests/opc/test_package.py::DescribeOpcPackage::it_provides_access_to_the_core_properties PASSED [ 37%] tests/opc/test_package.py::DescribeOpcPackage::it_provides_access_to_the_core_properties_part_to_help PASSED [ 37%] tests/opc/test_package.py::DescribeOpcPackage::it_creates_a_default_core_props_part_if_none_present PASSED [ 37%] tests/opc/test_package.py::DescribeUnmarshaller::it_can_unmarshal_from_a_pkg_reader PASSED [ 37%] tests/opc/test_package.py::DescribeUnmarshaller::it_can_unmarshal_parts PASSED [ 37%] tests/opc/test_package.py::DescribeUnmarshaller::it_can_unmarshal_relationships PASSED [ 37%] tests/opc/test_packuri.py::DescribePackURI::it_can_construct_from_relative_ref PASSED [ 37%] tests/opc/test_packuri.py::DescribePackURI::it_should_raise_on_construct_with_bad_pack_uri_str PASSED [ 37%] tests/opc/test_packuri.py::DescribePackURI::it_can_calculate_baseURI PASSED [ 37%] tests/opc/test_packuri.py::DescribePackURI::it_can_calculate_extension PASSED [ 37%] tests/opc/test_packuri.py::DescribePackURI::it_can_calculate_filename PASSED [ 37%] tests/opc/test_packuri.py::DescribePackURI::it_knows_the_filename_index PASSED [ 37%] tests/opc/test_packuri.py::DescribePackURI::it_can_calculate_membername PASSED [ 37%] tests/opc/test_packuri.py::DescribePackURI::it_can_calculate_relative_ref_value PASSED [ 37%] tests/opc/test_packuri.py::DescribePackURI::it_can_calculate_rels_uri PASSED [ 37%] tests/opc/test_part.py::DescribePart::it_can_be_constructed_by_PartFactory PASSED [ 38%] tests/opc/test_part.py::DescribePart::it_knows_its_partname PASSED [ 38%] tests/opc/test_part.py::DescribePart::it_can_change_its_partname PASSED [ 38%] tests/opc/test_part.py::DescribePart::it_knows_its_content_type PASSED [ 38%] tests/opc/test_part.py::DescribePart::it_knows_the_package_it_belongs_to PASSED [ 38%] tests/opc/test_part.py::DescribePart::it_can_be_notified_after_unmarshalling_is_complete PASSED [ 38%] tests/opc/test_part.py::DescribePart::it_can_be_notified_before_marshalling_is_started PASSED [ 38%] tests/opc/test_part.py::DescribePart::it_uses_the_load_blob_as_its_blob PASSED [ 38%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_provides_access_to_its_relationships PASSED [ 38%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_load_a_relationship PASSED [ 38%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_establish_a_relationship_to_another_part PASSED [ 38%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_establish_an_external_relationship PASSED [ 38%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_drop_a_relationship[drop_rel_fixture0] PASSED [ 38%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_drop_a_relationship[drop_rel_fixture1] PASSED [ 38%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_drop_a_relationship[drop_rel_fixture2] PASSED [ 38%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_find_a_related_part_by_reltype PASSED [ 39%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_find_a_related_part_by_rId PASSED [ 39%] tests/opc/test_part.py::DescribePartRelationshipManagementInterface::it_can_find_the_uri_of_an_external_relationship PASSED [ 39%] tests/opc/test_part.py::DescribePartFactory::it_constructs_part_from_selector_if_defined PASSED [ 39%] tests/opc/test_part.py::DescribePartFactory::it_constructs_custom_part_type_for_registered_content_types PASSED [ 39%] tests/opc/test_part.py::DescribePartFactory::it_constructs_part_using_default_class_when_no_custom_registered PASSED [ 39%] tests/opc/test_part.py::DescribeXmlPart::it_can_be_constructed_by_PartFactory PASSED [ 39%] tests/opc/test_part.py::DescribeXmlPart::it_can_serialize_to_xml PASSED [ 39%] tests/opc/test_part.py::DescribeXmlPart::it_knows_its_the_part_for_its_child_objects PASSED [ 39%] tests/opc/test_phys_pkg.py::DescribeDirPkgReader::it_is_used_by_PhysPkgReader_when_pkg_is_a_dir PASSED [ 39%] tests/opc/test_phys_pkg.py::DescribeDirPkgReader::it_doesnt_mind_being_closed_even_though_it_doesnt_need_it PASSED [ 39%] tests/opc/test_phys_pkg.py::DescribeDirPkgReader::it_can_retrieve_the_blob_for_a_pack_uri PASSED [ 39%] tests/opc/test_phys_pkg.py::DescribeDirPkgReader::it_can_get_the_content_types_xml PASSED [ 39%] tests/opc/test_phys_pkg.py::DescribeDirPkgReader::it_can_retrieve_the_rels_xml_for_a_source_uri PASSED [ 39%] tests/opc/test_phys_pkg.py::DescribeDirPkgReader::it_returns_none_when_part_has_no_rels_xml PASSED [ 39%] tests/opc/test_phys_pkg.py::DescribePhysPkgReader::it_raises_when_pkg_path_is_not_a_package PASSED [ 39%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_is_used_by_PhysPkgReader_when_pkg_is_a_zip PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_is_used_by_PhysPkgReader_when_pkg_is_a_stream PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_opens_pkg_file_zip_on_construction PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_can_be_closed PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_can_retrieve_the_blob_for_a_pack_uri PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_has_the_content_types_xml PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_can_retrieve_rels_xml_for_source_uri PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeZipPkgReader::it_returns_none_when_part_has_no_rels_xml PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeZipPkgWriter::it_is_used_by_PhysPkgWriter_unconditionally PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeZipPkgWriter::it_opens_pkg_file_zip_on_construction PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeZipPkgWriter::it_can_be_closed PASSED [ 40%] tests/opc/test_phys_pkg.py::DescribeZipPkgWriter::it_can_write_a_blob PASSED [ 40%] tests/opc/test_pkgreader.py::DescribePackageReader::it_can_construct_from_pkg_file PASSED [ 40%] tests/opc/test_pkgreader.py::DescribePackageReader::it_can_iterate_over_the_serialized_parts PASSED [ 40%] tests/opc/test_pkgreader.py::DescribePackageReader::it_can_iterate_over_all_the_srels PASSED [ 40%] tests/opc/test_pkgreader.py::DescribePackageReader::it_can_load_serialized_parts PASSED [ 41%] tests/opc/test_pkgreader.py::DescribePackageReader::it_can_walk_phys_pkg_parts PASSED [ 41%] tests/opc/test_pkgreader.py::DescribePackageReader::it_can_retrieve_srels_for_a_source_uri PASSED [ 41%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_can_construct_from_ct_item_xml PASSED [ 41%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_matches_an_override_on_case_insensitive_partname[match_override_fixture0] PASSED [ 41%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_matches_an_override_on_case_insensitive_partname[match_override_fixture1] PASSED [ 41%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_matches_an_override_on_case_insensitive_partname[match_override_fixture2] PASSED [ 41%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_falls_back_to_case_insensitive_extension_default_match[match_default_fixture0] PASSED [ 41%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_falls_back_to_case_insensitive_extension_default_match[match_default_fixture1] PASSED [ 41%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_falls_back_to_case_insensitive_extension_default_match[match_default_fixture2] PASSED [ 41%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_should_raise_on_partname_not_found PASSED [ 41%] tests/opc/test_pkgreader.py::Describe_ContentTypeMap::it_should_raise_on_key_not_instance_of_PackURI PASSED [ 41%] tests/opc/test_pkgreader.py::Describe_SerializedPart::it_remembers_construction_values PASSED [ 41%] tests/opc/test_pkgreader.py::Describe_SerializedRelationship::it_remembers_construction_values PASSED [ 41%] tests/opc/test_pkgreader.py::Describe_SerializedRelationship::it_knows_when_it_is_external PASSED [ 41%] tests/opc/test_pkgreader.py::Describe_SerializedRelationship::it_can_calculate_its_target_partname PASSED [ 41%] tests/opc/test_pkgreader.py::Describe_SerializedRelationship::it_raises_on_target_partname_when_external PASSED [ 42%] tests/opc/test_pkgreader.py::Describe_SerializedRelationships::it_can_load_from_xml PASSED [ 42%] tests/opc/test_pkgreader.py::Describe_SerializedRelationships::it_should_be_iterable PASSED [ 42%] tests/opc/test_pkgwriter.py::DescribePackageWriter::it_can_write_a_package PASSED [ 42%] tests/opc/test_pkgwriter.py::DescribePackageWriter::it_can_write_a_content_types_stream PASSED [ 42%] tests/opc/test_pkgwriter.py::DescribePackageWriter::it_can_write_a_pkg_rels_item PASSED [ 42%] tests/opc/test_pkgwriter.py::DescribePackageWriter::it_can_write_a_list_of_parts PASSED [ 42%] tests/opc/test_pkgwriter.py::Describe_ContentTypesItem::it_can_compose_content_types_element[xml_for_fixture0] PASSED [ 42%] tests/opc/test_pkgwriter.py::Describe_ContentTypesItem::it_can_compose_content_types_element[xml_for_fixture1] PASSED [ 42%] tests/opc/test_pkgwriter.py::Describe_ContentTypesItem::it_can_compose_content_types_element[xml_for_fixture2] PASSED [ 42%] tests/opc/test_pkgwriter.py::Describe_ContentTypesItem::it_can_compose_content_types_element[xml_for_fixture3] PASSED [ 42%] tests/opc/test_pkgwriter.py::Describe_ContentTypesItem::it_can_compose_content_types_element[xml_for_fixture4] PASSED [ 42%] tests/opc/test_pkgwriter.py::Describe_ContentTypesItem::it_can_compose_content_types_element[xml_for_fixture5] PASSED [ 42%] tests/opc/test_pkgwriter.py::Describe_ContentTypesItem::it_can_compose_content_types_element[xml_for_fixture6] PASSED [ 42%] tests/opc/test_rel.py::Describe_Relationship::it_remembers_construction_values PASSED [ 42%] tests/opc/test_rel.py::Describe_Relationship::it_should_raise_on_target_part_access_on_external_rel PASSED [ 43%] tests/opc/test_rel.py::Describe_Relationship::it_should_have_target_ref_for_external_rel PASSED [ 43%] tests/opc/test_rel.py::Describe_Relationship::it_should_have_relative_ref_for_internal_rel PASSED [ 43%] tests/opc/test_rel.py::DescribeRelationships::it_can_add_a_relationship PASSED [ 43%] tests/opc/test_rel.py::DescribeRelationships::it_can_add_an_external_relationship PASSED [ 43%] tests/opc/test_rel.py::DescribeRelationships::it_can_find_a_relationship_by_rId PASSED [ 43%] tests/opc/test_rel.py::DescribeRelationships::it_can_find_or_add_a_relationship PASSED [ 43%] tests/opc/test_rel.py::DescribeRelationships::it_can_find_or_add_an_external_relationship PASSED [ 43%] tests/opc/test_rel.py::DescribeRelationships::it_can_find_a_related_part_by_rId PASSED [ 43%] tests/opc/test_rel.py::DescribeRelationships::it_raises_on_related_part_not_found PASSED [ 43%] tests/opc/test_rel.py::DescribeRelationships::it_can_find_a_related_part_by_reltype PASSED [ 43%] tests/opc/test_rel.py::DescribeRelationships::it_can_compose_rels_xml PASSED [ 43%] tests/opc/test_rel.py::DescribeRelationships::it_knows_the_next_available_rId_to_help PASSED [ 43%] tests/opc/parts/test_coreprops.py::DescribeCorePropertiesPart::it_provides_access_to_its_core_props_object PASSED [ 43%] tests/opc/parts/test_coreprops.py::DescribeCorePropertiesPart::it_can_create_a_default_core_properties_part PASSED [ 43%] tests/oxml/test__init__.py::DescribeOxmlElement::it_returns_an_lxml_element_with_matching_tag_name PASSED [ 43%] tests/oxml/test__init__.py::DescribeOxmlElement::it_adds_supplied_attributes PASSED [ 44%] tests/oxml/test__init__.py::DescribeOxmlElement::it_adds_additional_namespace_declarations_when_supplied PASSED [ 44%] tests/oxml/test__init__.py::DescribeOxmlParser::it_strips_whitespace_between_elements PASSED [ 44%] tests/oxml/test__init__.py::DescribeParseXml::it_accepts_bytes_and_assumes_utf8_encoding PASSED [ 44%] tests/oxml/test__init__.py::DescribeParseXml::it_uses_registered_element_classes PASSED [ 44%] tests/oxml/test__init__.py::DescribeRegisterElementCls::it_determines_class_used_for_elements_with_matching_tagname PASSED [ 44%] tests/oxml/test_document.py::DescribeCT_Body::it_knows_its_inner_content_block_item_elements PASSED [ 44%] tests/oxml/test_ns.py::DescribeNamespacePrefixedTag::it_behaves_like_a_string_when_you_want_it_to PASSED [ 44%] tests/oxml/test_ns.py::DescribeNamespacePrefixedTag::it_knows_its_clark_name PASSED [ 44%] tests/oxml/test_ns.py::DescribeNamespacePrefixedTag::it_can_construct_from_a_clark_name PASSED [ 44%] tests/oxml/test_ns.py::DescribeNamespacePrefixedTag::it_knows_its_local_part PASSED [ 44%] tests/oxml/test_ns.py::DescribeNamespacePrefixedTag::it_can_compose_a_single_entry_nsmap_for_itself PASSED [ 44%] tests/oxml/test_ns.py::DescribeNamespacePrefixedTag::it_knows_its_namespace_prefix PASSED [ 44%] tests/oxml/test_ns.py::DescribeNamespacePrefixedTag::it_knows_its_namespace_uri PASSED [ 44%] tests/oxml/test_section.py::DescribeCT_HdrFtr::it_knows_its_inner_content_block_item_elements PASSED [ 44%] tests/oxml/test_styles.py::DescribeCT_Styles::it_can_add_a_style_of_type[add_fixture0] PASSED [ 45%] tests/oxml/test_styles.py::DescribeCT_Styles::it_can_add_a_style_of_type[add_fixture1] PASSED [ 45%] tests/oxml/test_table.py::DescribeCT_Row::it_can_add_a_trPr[add_trPr_fixture0] PASSED [ 45%] tests/oxml/test_table.py::DescribeCT_Row::it_can_add_a_trPr[add_trPr_fixture1] PASSED [ 45%] tests/oxml/test_table.py::DescribeCT_Row::it_can_add_a_trPr[add_trPr_fixture2] PASSED [ 45%] tests/oxml/test_table.py::DescribeCT_Row::it_can_add_a_trPr[add_trPr_fixture3] PASSED [ 45%] tests/oxml/test_table.py::DescribeCT_Row::it_raises_on_tc_at_grid_col[tc_raise_fixture0] PASSED [ 45%] tests/oxml/test_table.py::DescribeCT_Row::it_raises_on_tc_at_grid_col[tc_raise_fixture1] PASSED [ 45%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_merge_to_another_tc PASSED [ 45%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[extents_fixture0] PASSED [ 45%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[extents_fixture1] PASSED [ 45%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[extents_fixture2] PASSED [ 45%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[extents_fixture3] PASSED [ 45%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[extents_fixture4] PASSED [ 45%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[extents_fixture5] PASSED [ 45%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[extents_fixture6] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[extents_fixture7] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[extents_fixture8] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[extents_fixture9] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[extents_fixture10] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[extents_fixture11] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[extents_fixture12] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[extents_fixture13] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[extents_fixture14] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_extents_to_help[extents_fixture15] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[span_fixture0] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[span_fixture1] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[span_fixture2] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[span_fixture3] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[span_fixture4] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[span_fixture5] PASSED [ 46%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[span_fixture6] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[span_fixture7] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[span_fixture8] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_calculates_the_dimensions_of_a_span_to_help[span_fixture9] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_span[span_raise_fixture0] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_span[span_raise_fixture1] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_span[span_raise_fixture2] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_span[span_raise_fixture3] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_span[span_raise_fixture4] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_span[span_raise_fixture5] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_span[span_raise_fixture6] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_grow_itself_to_help_merge[grow_to_fixture0] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_grow_itself_to_help_merge[grow_to_fixture1] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_grow_itself_to_help_merge[grow_to_fixture2] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_grow_itself_to_help_merge[grow_to_fixture3] PASSED [ 47%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_grow_itself_to_help_merge[grow_to_fixture4] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_grow_itself_to_help_merge[grow_to_fixture5] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_extend_its_horz_span_to_help_merge PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_knows_its_inner_content_block_item_elements PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_swallow_the_next_tc_help_merge[swallow_fixture0] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_swallow_the_next_tc_help_merge[swallow_fixture1] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_swallow_the_next_tc_help_merge[swallow_fixture2] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_swallow_the_next_tc_help_merge[swallow_fixture3] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_swallow_the_next_tc_help_merge[swallow_fixture4] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_adds_cell_widths_on_swallow[add_width_fixture0] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_adds_cell_widths_on_swallow[add_width_fixture1] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_adds_cell_widths_on_swallow[add_width_fixture2] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_adds_cell_widths_on_swallow[add_width_fixture3] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_swallow[swallow_raise_fixture0] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_invalid_swallow[swallow_raise_fixture1] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_move_its_content_to_help_merge[move_fixture0] PASSED [ 48%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_move_its_content_to_help_merge[move_fixture1] PASSED [ 49%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_move_its_content_to_help_merge[move_fixture2] PASSED [ 49%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_move_its_content_to_help_merge[move_fixture3] PASSED [ 49%] tests/oxml/test_table.py::DescribeCT_Tc::it_can_move_its_content_to_help_merge[move_fixture4] PASSED [ 49%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_tr_above[tr_above_raise_fixture0] PASSED [ 49%] tests/oxml/test_table.py::DescribeCT_Tc::it_raises_on_tr_above[tr_above_raise_fixture1] PASSED [ 49%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_find_the_first_of_its_children_named_in_a_sequence[first_fixture0] PASSED [ 49%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_find_the_first_of_its_children_named_in_a_sequence[first_fixture1] PASSED [ 49%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_find_the_first_of_its_children_named_in_a_sequence[first_fixture2] PASSED [ 49%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_find_the_first_of_its_children_named_in_a_sequence[first_fixture3] PASSED [ 49%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_find_the_first_of_its_children_named_in_a_sequence[first_fixture4] PASSED [ 49%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_find_the_first_of_its_children_named_in_a_sequence[first_fixture5] PASSED [ 49%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_insert_an_element_before_named_successors[insert_fixture0] PASSED [ 49%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_insert_an_element_before_named_successors[insert_fixture1] PASSED [ 49%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_insert_an_element_before_named_successors[insert_fixture2] PASSED [ 49%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_insert_an_element_before_named_successors[insert_fixture3] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_insert_an_element_before_named_successors[insert_fixture4] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture0] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture1] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture2] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture3] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture4] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture5] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture6] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture7] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture8] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture9] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeBaseOxmlElement::it_can_remove_all_children_with_name_in_sequence[remove_fixture10] PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeSerializeForReading::it_pretty_prints_an_lxml_element PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeSerializeForReading::it_returns_unicode_text PASSED [ 50%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_parses_a_line_to_help_compare[parse_fixture0] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_parses_a_line_to_help_compare[parse_fixture1] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_parses_a_line_to_help_compare[parse_fixture2] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_parses_a_line_to_help_compare[parse_fixture3] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_parses_a_line_to_help_compare[parse_fixture4] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_knows_if_two_xml_lines_are_equivalent[simple_elm] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_knows_if_two_xml_lines_are_equivalent[nsp_tagname] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_knows_if_two_xml_lines_are_equivalent[indent] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_knows_if_two_xml_lines_are_equivalent[attrs] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_knows_if_two_xml_lines_are_equivalent[nsdecl_order] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeXmlString::it_knows_if_two_xml_lines_are_equivalent[closing_elm] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_a_getter_property_for_the_choice_element[choice] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_a_getter_property_for_the_choice_element[None] PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_a_creator_method_for_the_child_element PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_an_insert_method_for_the_child_element PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_an_add_method_for_the_child_element PASSED [ 51%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_a_get_or_change_to_method_for_the_child_element[get_or_change_to_fixture0] PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_a_get_or_change_to_method_for_the_child_element[get_or_change_to_fixture1] PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeChoice::it_adds_a_get_or_change_to_method_for_the_child_element[get_or_change_to_fixture2] PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeOneAndOnlyOne::it_adds_a_getter_property_for_the_child_element PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeOneOrMore::it_adds_a_getter_property_for_the_child_element_list PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeOneOrMore::it_adds_a_creator_method_for_the_child_element PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeOneOrMore::it_adds_an_insert_method_for_the_child_element PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeOneOrMore::it_adds_a_private_add_method_for_the_child_element PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeOneOrMore::it_adds_a_public_add_method_for_the_child_element PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeOptionalAttribute::it_adds_a_getter_property_for_the_attr_value PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeOptionalAttribute::it_adds_a_setter_property_for_the_attr[36] PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeOptionalAttribute::it_adds_a_setter_property_for_the_attr[None] PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeOptionalAttribute::it_adds_a_docstring_for_the_property PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeRequiredAttribute::it_adds_a_getter_property_for_the_attr_value PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeRequiredAttribute::it_adds_a_setter_property_for_the_attr PASSED [ 52%] tests/oxml/test_xmlchemy.py::DescribeRequiredAttribute::it_adds_a_docstring_for_the_property PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeRequiredAttribute::it_raises_on_get_when_attribute_not_present PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeRequiredAttribute::it_raises_on_assign_invalid_value[invalid_assign_fixture0] PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeRequiredAttribute::it_raises_on_assign_invalid_value[invalid_assign_fixture1] PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeRequiredAttribute::it_raises_on_assign_invalid_value[invalid_assign_fixture2] PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeZeroOrMore::it_adds_a_getter_property_for_the_child_element_list PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeZeroOrMore::it_adds_a_creator_method_for_the_child_element PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeZeroOrMore::it_adds_an_insert_method_for_the_child_element PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeZeroOrMore::it_adds_an_add_method_for_the_child_element PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeZeroOrMore::it_adds_a_public_add_method_for_the_child_element PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeZeroOrMore::it_removes_the_property_root_name_used_for_declaration PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_a_getter_property_for_the_child_element[True] PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_a_getter_property_for_the_child_element[False] PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_an_add_method_for_the_child_element PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_an_insert_method_for_the_child_element PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_a_get_or_add_method_for_the_child_element[True] PASSED [ 53%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_a_get_or_add_method_for_the_child_element[False] PASSED [ 54%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_a_remover_method_for_the_child_element[True] PASSED [ 54%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOne::it_adds_a_remover_method_for_the_child_element[False] PASSED [ 54%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOneChoice::it_adds_a_getter_for_the_current_choice[None] PASSED [ 54%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOneChoice::it_adds_a_getter_for_the_current_choice[choice] PASSED [ 54%] tests/oxml/test_xmlchemy.py::DescribeZeroOrOneChoice::it_adds_a_getter_for_the_current_choice[choice2] PASSED [ 54%] tests/oxml/parts/test_document.py::DescribeCT_Body::it_can_clear_all_its_content[clear_fixture0] PASSED [ 54%] tests/oxml/parts/test_document.py::DescribeCT_Body::it_can_clear_all_its_content[clear_fixture1] PASSED [ 54%] tests/oxml/parts/test_document.py::DescribeCT_Body::it_can_clear_all_its_content[clear_fixture2] PASSED [ 54%] tests/oxml/parts/test_document.py::DescribeCT_Body::it_can_clear_all_its_content[clear_fixture3] PASSED [ 54%] tests/oxml/parts/test_document.py::DescribeCT_Body::it_can_clear_all_its_content[clear_fixture4] PASSED [ 54%] tests/oxml/parts/test_document.py::DescribeCT_Body::it_can_add_a_section_break PASSED [ 54%] tests/oxml/text/test_hyperlink.py::DescribeCT_Hyperlink::it_has_a_relationship_that_contains_the_hyperlink_address PASSED [ 54%] 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 [ 54%] 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 [ 54%] tests/oxml/text/test_hyperlink.py::DescribeCT_Hyperlink::it_knows_whether_it_has_been_clicked_on_aka_visited[w:hyperlink{r:id=rId6,w:history=1}-True] PASSED [ 55%] tests/oxml/text/test_hyperlink.py::DescribeCT_Hyperlink::it_has_zero_or_more_runs_containing_the_hyperlink_text PASSED [ 55%] tests/oxml/text/test_run.py::DescribeCT_R::it_can_add_a_t_preserving_edge_whitespace[w:r-foobar-w:r/w:t"foobar"] PASSED [ 55%] tests/oxml/text/test_run.py::DescribeCT_R::it_can_add_a_t_preserving_edge_whitespace[w:r-foobar -w:r/w:t{xml:space=preserve}"foobar "] PASSED [ 55%] tests/oxml/text/test_run.py::DescribeCT_R::it_can_add_a_t_preserving_edge_whitespace[w:r/(w:rPr/w:rStyle{w:val=emphasis}, w:cr)-foobar-w:r/(w:rPr/w:rStyle{w:val=emphasis}, w:cr, w:t"foobar")] PASSED [ 55%] tests/oxml/text/test_run.py::DescribeCT_R::it_can_assemble_the_text_in_the_run PASSED [ 55%] tests/parts/test_document.py::DescribeDocumentPart::it_can_add_a_footer_part PASSED [ 55%] tests/parts/test_document.py::DescribeDocumentPart::it_can_add_a_header_part PASSED [ 55%] tests/parts/test_document.py::DescribeDocumentPart::it_can_drop_a_specified_header_part PASSED [ 55%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_a_footer_part_by_rId PASSED [ 55%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_a_header_part_by_rId PASSED [ 55%] tests/parts/test_document.py::DescribeDocumentPart::it_can_save_the_package_to_a_file PASSED [ 55%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_the_document_settings PASSED [ 55%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_the_document_styles PASSED [ 55%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_its_core_properties PASSED [ 55%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_the_inline_shapes_in_the_document PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_the_numbering_part PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::and_it_creates_a_numbering_part_if_not_present PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::it_can_get_a_style_by_id PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::it_can_get_the_id_of_a_style PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_its_settings_part_to_help PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::and_it_creates_a_default_settings_part_if_not_present PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::it_provides_access_to_its_styles_part_to_help PASSED [ 56%] tests/parts/test_document.py::DescribeDocumentPart::and_it_creates_a_default_styles_part_if_not_present PASSED [ 56%] tests/parts/test_hdrftr.py::DescribeFooterPart::it_is_used_by_loader_to_construct_footer_part PASSED [ 56%] tests/parts/test_hdrftr.py::DescribeFooterPart::it_can_create_a_new_footer_part PASSED [ 56%] tests/parts/test_hdrftr.py::DescribeFooterPart::it_loads_default_footer_XML_from_a_template_to_help PASSED [ 56%] tests/parts/test_hdrftr.py::DescribeHeaderPart::it_is_used_by_loader_to_construct_header_part PASSED [ 56%] tests/parts/test_hdrftr.py::DescribeHeaderPart::it_can_create_a_new_header_part PASSED [ 56%] tests/parts/test_hdrftr.py::DescribeHeaderPart::it_loads_default_header_XML_from_a_template_to_help PASSED [ 56%] tests/parts/test_image.py::DescribeImagePart::it_is_used_by_PartFactory_to_construct_image_part PASSED [ 56%] tests/parts/test_image.py::DescribeImagePart::it_can_construct_from_an_Image_instance PASSED [ 57%] tests/parts/test_image.py::DescribeImagePart::it_knows_its_default_dimensions_in_EMU[loaded] PASSED [ 57%] tests/parts/test_image.py::DescribeImagePart::it_knows_its_default_dimensions_in_EMU[new] PASSED [ 57%] tests/parts/test_image.py::DescribeImagePart::it_knows_its_filename[loaded] PASSED [ 57%] tests/parts/test_image.py::DescribeImagePart::it_knows_its_filename[new] PASSED [ 57%] tests/parts/test_image.py::DescribeImagePart::it_knows_the_sha1_of_its_image PASSED [ 57%] tests/parts/test_numbering.py::DescribeNumberingPart::it_provides_access_to_the_numbering_definitions PASSED [ 57%] tests/parts/test_numbering.py::Describe_NumberingDefinitions::it_knows_how_many_numbering_definitions_it_contains[0] PASSED [ 57%] tests/parts/test_numbering.py::Describe_NumberingDefinitions::it_knows_how_many_numbering_definitions_it_contains[1] PASSED [ 57%] tests/parts/test_numbering.py::Describe_NumberingDefinitions::it_knows_how_many_numbering_definitions_it_contains[2] PASSED [ 57%] tests/parts/test_numbering.py::Describe_NumberingDefinitions::it_knows_how_many_numbering_definitions_it_contains[3] PASSED [ 57%] tests/parts/test_settings.py::DescribeSettingsPart::it_is_used_by_loader_to_construct_settings_part PASSED [ 57%] tests/parts/test_settings.py::DescribeSettingsPart::it_provides_access_to_its_settings PASSED [ 57%] tests/parts/test_settings.py::DescribeSettingsPart::it_constructs_a_default_settings_part_to_help PASSED [ 57%] tests/parts/test_story.py::DescribeStoryPart::it_can_get_or_add_an_image PASSED [ 57%] tests/parts/test_story.py::DescribeStoryPart::it_can_get_a_style_by_id_and_type PASSED [ 58%] tests/parts/test_story.py::DescribeStoryPart::it_can_get_a_style_id_by_style_or_name_and_type PASSED [ 58%] tests/parts/test_story.py::DescribeStoryPart::it_can_create_a_new_pic_inline PASSED [ 58%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture0] PASSED [ 58%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture1] PASSED [ 58%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture2] PASSED [ 58%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture3] PASSED [ 58%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture4] PASSED [ 58%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture5] PASSED [ 58%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture6] PASSED [ 58%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture7] PASSED [ 58%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_next_available_xml_id[next_id_fixture8] PASSED [ 58%] tests/parts/test_story.py::DescribeStoryPart::it_knows_the_main_document_part_to_help PASSED [ 58%] tests/parts/test_styles.py::DescribeStylesPart::it_provides_access_to_its_styles PASSED [ 58%] tests/parts/test_styles.py::DescribeStylesPart::it_can_construct_a_default_styles_part_to_help PASSED [ 58%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_delete_itself PASSED [ 58%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_name[name_get_fixture0] PASSED [ 59%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_priority[priority_get_fixture0] PASSED [ 59%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_priority[priority_get_fixture1] PASSED [ 59%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_priority[priority_set_fixture0] PASSED [ 59%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_priority[priority_set_fixture1] PASSED [ 59%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_priority[priority_set_fixture2] PASSED [ 59%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture0] PASSED [ 59%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture1] PASSED [ 59%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture2] PASSED [ 59%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture3] PASSED [ 59%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture4] PASSED [ 59%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture5] PASSED [ 59%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture6] PASSED [ 59%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture7] PASSED [ 59%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture8] PASSED [ 59%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture9] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture10] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_knows_its_on_off_properties[on_off_get_fixture11] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_on_off_properties[on_off_set_fixture0] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_on_off_properties[on_off_set_fixture1] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_on_off_properties[on_off_set_fixture2] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_on_off_properties[on_off_set_fixture3] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_on_off_properties[on_off_set_fixture4] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_on_off_properties[on_off_set_fixture5] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyle::it_can_change_its_on_off_properties[on_off_set_fixture6] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_add_a_latent_style PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_how_many_latent_styles_it_contains[len_fixture0] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_how_many_latent_styles_it_contains[len_fixture1] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_how_many_latent_styles_it_contains[len_fixture2] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_iterate_over_its_latent_styles[iter_fixture0] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_iterate_over_its_latent_styles[iter_fixture1] PASSED [ 60%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_iterate_over_its_latent_styles[iter_fixture2] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_get_a_latent_style_by_name[getitem_fixture0] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_get_a_latent_style_by_name[getitem_fixture1] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_get_a_latent_style_by_name[getitem_fixture2] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_get_a_latent_style_by_name[getitem_fixture3] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_raises_on_latent_style_not_found PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_default_priority[priority_get_fixture0] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_default_priority[priority_get_fixture1] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_default_priority[priority_set_fixture0] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_default_priority[priority_set_fixture1] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_default_priority[priority_set_fixture2] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_load_count[count_get_fixture0] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_load_count[count_get_fixture1] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_load_count[count_set_fixture0] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_load_count[count_set_fixture1] PASSED [ 61%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_load_count[count_set_fixture2] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture0] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture1] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture2] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture3] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture4] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture5] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture6] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_knows_its_boolean_properties[bool_prop_get_fixture7] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_boolean_properties[bool_prop_set_fixture0] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_boolean_properties[bool_prop_set_fixture1] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_boolean_properties[bool_prop_set_fixture2] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_boolean_properties[bool_prop_set_fixture3] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_boolean_properties[bool_prop_set_fixture4] PASSED [ 62%] tests/styles/test_latent.py::DescribeLatentStyles::it_can_change_its_boolean_properties[bool_prop_set_fixture5] PASSED [ 62%] tests/styles/test_style.py::DescribeStyleFactory::it_constructs_the_right_type_of_style[paragraph] PASSED [ 63%] tests/styles/test_style.py::DescribeStyleFactory::it_constructs_the_right_type_of_style[character] PASSED [ 63%] tests/styles/test_style.py::DescribeStyleFactory::it_constructs_the_right_type_of_style[table] PASSED [ 63%] tests/styles/test_style.py::DescribeStyleFactory::it_constructs_the_right_type_of_style[numbering] PASSED [ 63%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_style_id[id_get_fixture0] PASSED [ 63%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_style_id[id_get_fixture1] PASSED [ 63%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_style_id[id_set_fixture0] PASSED [ 63%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_style_id[id_set_fixture1] PASSED [ 63%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_style_id[id_set_fixture2] PASSED [ 63%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_style_id[id_set_fixture3] PASSED [ 63%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_type[type_get_fixture0] PASSED [ 63%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_type[type_get_fixture1] PASSED [ 63%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_type[type_get_fixture2] PASSED [ 63%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_type[type_get_fixture3] PASSED [ 63%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_name[name_get_fixture0] PASSED [ 63%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_name[name_get_fixture1] PASSED [ 63%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_name[name_get_fixture2] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_name[name_set_fixture0] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_name[name_set_fixture1] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_name[name_set_fixture2] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_a_builtin_style[builtin_get_fixture0] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_a_builtin_style[builtin_get_fixture1] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_a_builtin_style[builtin_get_fixture2] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_hidden[hidden_get_fixture0] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_hidden[hidden_get_fixture1] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_hidden[hidden_get_fixture2] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_hidden[hidden_get_fixture3] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_hidden[hidden_set_fixture0] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_hidden[hidden_set_fixture1] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_hidden[hidden_set_fixture2] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_hidden[hidden_set_fixture3] PASSED [ 64%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_hidden[hidden_set_fixture4] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_hidden[hidden_set_fixture5] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_sort_order[priority_get_fixture0] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_sort_order[priority_get_fixture1] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_sort_order[priority_set_fixture0] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_sort_order[priority_set_fixture1] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_sort_order[priority_set_fixture2] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_unhide_when_used[unhide_get_fixture0] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_unhide_when_used[unhide_get_fixture1] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_unhide_when_used[unhide_get_fixture2] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_unhide_when_used[unhide_get_fixture3] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_unhide_when_used_value[unhide_set_fixture0] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_unhide_when_used_value[unhide_set_fixture1] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_unhide_when_used_value[unhide_set_fixture2] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_unhide_when_used_value[unhide_set_fixture3] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_unhide_when_used_value[unhide_set_fixture4] PASSED [ 65%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_unhide_when_used_value[unhide_set_fixture5] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_quick_style_setting[quick_get_fixture0] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_quick_style_setting[quick_get_fixture1] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_quick_style_setting[quick_get_fixture2] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_its_quick_style_setting[quick_get_fixture3] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_quick_style_setting[quick_set_fixture0] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_quick_style_setting[quick_set_fixture1] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_quick_style_setting[quick_set_fixture2] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_quick_style_setting[quick_set_fixture3] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_its_quick_style_setting[quick_set_fixture4] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_locked[locked_get_fixture0] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_locked[locked_get_fixture1] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_locked[locked_get_fixture2] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_knows_whether_its_locked[locked_get_fixture3] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_locked[locked_set_fixture0] PASSED [ 66%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_locked[locked_set_fixture1] PASSED [ 67%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_locked[locked_set_fixture2] PASSED [ 67%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_locked[locked_set_fixture3] PASSED [ 67%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_locked[locked_set_fixture4] PASSED [ 67%] tests/styles/test_style.py::DescribeBaseStyle::it_can_change_whether_its_locked[locked_set_fixture5] PASSED [ 67%] tests/styles/test_style.py::DescribeBaseStyle::it_can_delete_itself_from_the_document PASSED [ 67%] tests/styles/test_style.py::DescribeCharacterStyle::it_knows_which_style_it_is_based_on[base_get_fixture0] PASSED [ 67%] tests/styles/test_style.py::DescribeCharacterStyle::it_knows_which_style_it_is_based_on[base_get_fixture1] PASSED [ 67%] tests/styles/test_style.py::DescribeCharacterStyle::it_knows_which_style_it_is_based_on[base_get_fixture2] PASSED [ 67%] tests/styles/test_style.py::DescribeCharacterStyle::it_can_change_its_base_style[base_set_fixture0] PASSED [ 67%] tests/styles/test_style.py::DescribeCharacterStyle::it_can_change_its_base_style[base_set_fixture1] PASSED [ 67%] tests/styles/test_style.py::DescribeCharacterStyle::it_can_change_its_base_style[base_set_fixture2] PASSED [ 67%] tests/styles/test_style.py::DescribeCharacterStyle::it_provides_access_to_its_font PASSED [ 67%] tests/styles/test_style.py::DescribeParagraphStyle::it_knows_its_next_paragraph_style[next_get_fixture0] PASSED [ 67%] tests/styles/test_style.py::DescribeParagraphStyle::it_knows_its_next_paragraph_style[next_get_fixture1] PASSED [ 67%] tests/styles/test_style.py::DescribeParagraphStyle::it_knows_its_next_paragraph_style[next_get_fixture2] PASSED [ 68%] tests/styles/test_style.py::DescribeParagraphStyle::it_knows_its_next_paragraph_style[next_get_fixture3] PASSED [ 68%] tests/styles/test_style.py::DescribeParagraphStyle::it_can_change_its_next_paragraph_style[next_set_fixture0] PASSED [ 68%] tests/styles/test_style.py::DescribeParagraphStyle::it_can_change_its_next_paragraph_style[next_set_fixture1] PASSED [ 68%] tests/styles/test_style.py::DescribeParagraphStyle::it_can_change_its_next_paragraph_style[next_set_fixture2] PASSED [ 68%] tests/styles/test_style.py::DescribeParagraphStyle::it_provides_access_to_its_paragraph_format PASSED [ 68%] tests/styles/test_styles.py::DescribeStyles::it_supports_the_in_operator_on_style_name[in_fixture0] PASSED [ 68%] tests/styles/test_styles.py::DescribeStyles::it_supports_the_in_operator_on_style_name[in_fixture1] PASSED [ 68%] tests/styles/test_styles.py::DescribeStyles::it_supports_the_in_operator_on_style_name[in_fixture2] PASSED [ 68%] tests/styles/test_styles.py::DescribeStyles::it_supports_the_in_operator_on_style_name[in_fixture3] PASSED [ 68%] tests/styles/test_styles.py::DescribeStyles::it_knows_its_length[len_fixture0] PASSED [ 68%] tests/styles/test_styles.py::DescribeStyles::it_knows_its_length[len_fixture1] PASSED [ 68%] tests/styles/test_styles.py::DescribeStyles::it_knows_its_length[len_fixture2] PASSED [ 68%] tests/styles/test_styles.py::DescribeStyles::it_knows_its_length[len_fixture3] PASSED [ 68%] tests/styles/test_styles.py::DescribeStyles::it_can_iterate_over_its_styles[iter_fixture0] PASSED [ 68%] tests/styles/test_styles.py::DescribeStyles::it_can_iterate_over_its_styles[iter_fixture1] PASSED [ 68%] tests/styles/test_styles.py::DescribeStyles::it_can_iterate_over_its_styles[iter_fixture2] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_can_iterate_over_its_styles[iter_fixture3] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_by_id[getitem_id_fixture0] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_by_id[getitem_id_fixture1] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_by_id[getitem_id_fixture2] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_by_name[getitem_name_fixture0] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_by_name[getitem_name_fixture1] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_by_name[getitem_name_fixture2] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_raises_on_style_not_found[w:styles/(w:style,w:style/w:name{w:val=foo},w:style)] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_raises_on_style_not_found[w:styles/(w:style{w:styleId=foo},w:style,w:style)] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_can_add_a_new_style[add_fixture0] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_can_add_a_new_style[add_fixture1] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_raises_when_style_name_already_used PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_can_get_the_default_style_for_a_type[default_fixture0] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_can_get_the_default_style_for_a_type[default_fixture1] PASSED [ 69%] tests/styles/test_styles.py::DescribeStyles::it_can_get_the_default_style_for_a_type[default_fixture2] PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_of_type_by_id PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::but_it_returns_the_default_style_for_style_id_None PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::it_can_get_a_style_id_from_a_style PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::and_it_can_get_a_style_id_from_a_style_name PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::but_it_returns_None_for_a_style_or_name_of_None PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::it_gets_a_style_by_id_to_help[_get_by_id_fixture0] PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::it_gets_a_style_by_id_to_help[_get_by_id_fixture1] PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::it_gets_a_style_by_id_to_help[_get_by_id_fixture2] PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::it_gets_a_style_id_from_a_name_to_help PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::it_gets_a_style_id_from_a_style_to_help[True] PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::it_gets_a_style_id_from_a_style_to_help[False] PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::it_raises_on_style_type_mismatch PASSED [ 70%] tests/styles/test_styles.py::DescribeStyles::it_provides_access_to_the_latent_styles PASSED [ 70%] tests/text/test_font.py::DescribeFont::it_provides_access_to_its_color_object PASSED [ 70%] tests/text/test_font.py::DescribeFont::it_knows_its_typeface_name[w:r-None] PASSED [ 70%] 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 [ 71%] tests/text/test_font.py::DescribeFont::it_knows_its_size[w:r/w:rPr/w:sz{w:val=28}-177800] PASSED [ 71%] tests/text/test_font.py::DescribeFont::it_can_change_its_size[w:r-152400-w:r/w:rPr/w:sz{w:val=24}] PASSED [ 71%] 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 [ 71%] 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 [ 71%] 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 [ 71%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr-all_caps-None] PASSED [ 71%] 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 [ 72%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:vanish{w:val=0}-hidden-False] PASSED [ 72%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:i{w:val=true}-italic-True] PASSED [ 72%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:imprint{w:val=false}-imprint-False] PASSED [ 72%] tests/text/test_font.py::DescribeFont::it_knows_its_bool_prop_states[w:r/w:rPr/w:oMath{w:val=on}-math-True] PASSED [ 72%] 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 [ 72%] 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 [ 73%] tests/text/test_font.py::DescribeFont::it_can_change_its_bool_prop_settings[w:r-italic-None-w:r/w:rPr] PASSED [ 73%] 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 [ 73%] 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 [ 73%] 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 [ 73%] 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 [ 73%] 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 [ 73%] 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 [ 74%] 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 [ 74%] 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 [ 74%] 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 [ 74%] tests/text/test_font.py::DescribeFont::it_knows_whether_it_is_subscript[w:r-None] PASSED [ 74%] tests/text/test_font.py::DescribeFont::it_knows_whether_it_is_subscript[w:r/w:rPr-None] PASSED [ 74%] 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 [ 75%] 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 [ 75%] 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 [ 75%] tests/text/test_font.py::DescribeFont::it_knows_whether_it_is_superscript[w:r-None] PASSED [ 75%] tests/text/test_font.py::DescribeFont::it_knows_whether_it_is_superscript[w:r/w:rPr-None] PASSED [ 75%] tests/text/test_font.py::DescribeFont::it_knows_whether_it_is_superscript[w:r/w:rPr/w:vertAlign{w:val=baseline}-False] PASSED [ 75%] 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 [ 76%] 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 [ 76%] 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 [ 76%] tests/text/test_font.py::DescribeFont::it_knows_its_underline_type[w:r-None] PASSED [ 76%] tests/text/test_font.py::DescribeFont::it_knows_its_underline_type[w:r/w:rPr/w:u-None] PASSED [ 76%] tests/text/test_font.py::DescribeFont::it_knows_its_underline_type[w:r/w:rPr/w:u{w:val=single}-True] PASSED [ 76%] 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 [ 77%] 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 [ 77%] 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 [ 77%] tests/text/test_font.py::DescribeFont::it_knows_its_highlight_color[w:r-None] PASSED [ 77%] tests/text/test_font.py::DescribeFont::it_knows_its_highlight_color[w:r/w:rPr-None] PASSED [ 77%] 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 [ 78%] tests/text/test_hyperlink.py::DescribeHyperlink::it_knows_whether_it_contains_a_page_break[w:hyperlink/w:r-False] PASSED [ 78%] 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 [ 78%] 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 [ 78%] 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 [ 78%] 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 [ 79%] 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 [ 79%] 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 [ 79%] tests/text/test_hyperlink.py::DescribeHyperlink::it_knows_the_full_url_for_web_addresses[w:hyperlink-] PASSED [ 79%] tests/text/test_hyperlink.py::DescribeHyperlink::it_knows_the_full_url_for_web_addresses[w:hyperlink{w:anchor=_Toc147925734}-] PASSED [ 79%] 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 [ 80%] 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 [ 80%] tests/text/test_paragraph.py::DescribeParagraph::it_knows_whether_it_contains_a_page_break[w:p/w:r/(w:lastRenderedPageBreak, w:lastRenderedPageBreak)-True] PASSED [ 80%] tests/text/test_paragraph.py::DescribeParagraph::it_provides_access_to_the_hyperlinks_it_contains[w:p-0] PASSED [ 80%] tests/text/test_paragraph.py::DescribeParagraph::it_provides_access_to_the_hyperlinks_it_contains[w:p/w:r-0] PASSED [ 80%] 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 [ 81%] tests/text/test_paragraph.py::DescribeParagraph::it_can_change_its_paragraph_style[style_set_fixture2] PASSED [ 81%] tests/text/test_paragraph.py::DescribeParagraph::it_can_change_its_paragraph_style[style_set_fixture3] PASSED [ 81%] tests/text/test_paragraph.py::DescribeParagraph::it_can_change_its_paragraph_style[style_set_fixture4] PASSED [ 81%] 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 [ 82%] 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 [ 82%] 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 [ 82%] 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 [ 82%] 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 [ 82%] 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 [ 83%] tests/text/test_paragraph.py::DescribeParagraph::it_can_add_a_run_to_itself[add_run_fixture3] PASSED [ 83%] tests/text/test_paragraph.py::DescribeParagraph::it_can_insert_a_paragraph_before_itself[insert_before_fixture0] PASSED [ 83%] tests/text/test_paragraph.py::DescribeParagraph::it_can_insert_a_paragraph_before_itself[insert_before_fixture1] PASSED [ 83%] 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 [ 84%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_alignment_value[alignment_set_fixture3] PASSED [ 84%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_alignment_value[alignment_set_fixture4] PASSED [ 84%] 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 [ 85%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_space_after[space_after_get_fixture1] PASSED [ 85%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_space_after[space_after_get_fixture2] PASSED [ 85%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_space_after[space_after_get_fixture3] PASSED [ 85%] 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 [ 86%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_line_spacing[line_spacing_get_fixture5] PASSED [ 86%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_line_spacing[line_spacing_set_fixture0] PASSED [ 86%] 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 [ 87%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_line_spacing_rule[line_spacing_rule_get_fixture6] PASSED [ 87%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_line_spacing_rule[line_spacing_rule_get_fixture7] PASSED [ 87%] 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 [ 88%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_first_line_indent[first_indent_set_fixture0] PASSED [ 88%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_first_line_indent[first_indent_set_fixture1] PASSED [ 88%] 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 [ 89%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_left_indent[left_indent_set_fixture4] PASSED [ 89%] 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 [ 90%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_knows_its_on_off_prop_values[on_off_get_fixture5] PASSED [ 90%] 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 [ 91%] tests/text/test_parfmt.py::DescribeParagraphFormat::it_can_change_its_on_off_props[on_off_set_fixture8] PASSED [ 91%] 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 [ 92%] tests/text/test_run.py::DescribeRun::it_can_change_its_bool_prop_settings[bool_prop_set_fixture5] PASSED [ 92%] 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 [ 93%] 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 [ 94%] 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 [ 95%] 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 [ 97%] 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%] =============================== warnings summary =============================== tests/opc/parts/test_coreprops.py::DescribeCorePropertiesPart::it_can_create_a_default_core_properties_part /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/lib/python3.12/site-packages/docx/opc/parts/coreprops.py:25: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). core_properties.modified = datetime.utcnow() tests/opc/parts/test_coreprops.py::DescribeCorePropertiesPart::it_can_create_a_default_core_properties_part /builddir/build/BUILD/python-docx-1.1.0/tests/opc/parts/test_coreprops.py:28: DeprecationWarning: datetime.datetime.utcnow() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.datetime.now(datetime.UTC). delta = datetime.utcnow() - core_properties.modified -- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html ========== 1541 passed, 1 deselected, 2 warnings in 224.25s (0:03:44) ========== + CFLAGS='-O2 -flto=auto -ffat-lto-objects -fexceptions -g -grecord-gcc-switches -pipe -Wall -Werror=format-security -Werror=implicit-function-declaration -Werror=implicit-int -Wp,-U_FORTIFY_SOURCE,-D_FORTIFY_SOURCE=3 -Wp,-D_GLIBCXX_ASSERTIONS -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -fstack-protector-strong -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -fasynchronous-unwind-tables -fno-omit-frame-pointer ' + LDFLAGS='-Wl,-z,relro -Wl,--as-needed -Wl,-z,now -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -Wl,--build-id=sha1 ' + PATH=/builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/sbin + PYTHONPATH=/builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/lib64/python3.12/site-packages:/builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/lib/python3.12/site-packages + PYTHONDONTWRITEBYTECODE=1 + PYTEST_ADDOPTS=' --ignore=/builddir/build/BUILD/python-docx-1.1.0/.pyproject-builddir' + PYTEST_XDIST_AUTO_NUM_WORKERS=8 + /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.004s When I call docx.Document() with the path of a .docx file ... passed in 0.138s Then document is a Document object ... passed in 0.004s Scenario: Open the default document Given I have python-docx installed ... passed in 0.003s When I call docx.Document() with no arguments ... passed in 0.372s Then document is a Document object ... passed in 0.004s Feature: Add a paragraph of text Scenario: Add a paragraph using low-level text API Given a document ... passed in 0.366s When I add a paragraph ... passed in 0.017s And I add a run to the paragraph ... passed in 0.011s And I add text to the run ... passed in 0.006s And I save the document ... passed in 0.251s Then the document contains the text I added ... passed in 0.316s Feature: Add a table Scenario: Access a table Given a document containing a table ... passed in 0.059s Then I can access the table ... passed in 0.006s Scenario: Add a table Given a document ... passed in 0.329s When I add a table ... passed in 0.020s Then the new table appears in the document ... passed in 0.005s Feature: Iterate paragraphs and tables in document-order Scenario: Document.iter_inner_content() Given a Document object with paragraphs and tables ... passed in 0.206s Then document.iter_inner_content() produces the block-items in document order ... passed in 0.008s Scenario: Header.iter_inner_content() Given a Header object with paragraphs and tables ... passed in 0.071s Then header.iter_inner_content() produces the block-items in document order ... passed in 0.010s Scenario: Footer.iter_inner_content() Given a Footer object with paragraphs and tables ... passed in 0.072s Then footer.iter_inner_content() produces the block-items in document order ... passed in 0.008s Scenario: _Cell.iter_inner_content() Given a _Cell object with paragraphs and tables ... passed in 0.077s Then cell.iter_inner_content() produces the block-items in document order ... passed in 0.006s Feature: Add a table into a table cell Scenario: Add a table into a table cell Given a table cell ... passed in 0.072s When I add a 2 x 2 table into the first cell ... passed in 0.011s Then cell.tables[0] is a 2 x 2 table ... passed in 0.006s And the width of each column is 1.5375 inches ... passed in 0.007s And the width of each cell is 1.5375 inches ... passed in 0.011s Feature: Set table cell text Scenario: Set table cell text Given a table cell ... passed in 0.065s When I assign a string to the cell text attribute ... passed in 0.013s Then the cell contains the string I assigned ... passed in 0.006s Feature: Access document collections Scenario: Access the inline shapes collection of a document Given a document having inline shapes ... passed in 0.098s Then document.inline_shapes is an InlineShapes object ... passed in 0.004s Scenario: Access the paragraphs in the document body as a list Given a document containing three paragraphs ... passed in 0.245s Then document.paragraphs is a list containing three paragraphs ... passed in 0.005s Scenario: Access the section collection of a document Given a document having sections ... passed in 0.058s Then document.sections is a Sections object ... passed in 0.004s Scenario: Access the styles collection of a document Given a document having styles ... passed in 0.057s Then document.styles is a Styles object ... passed in 0.005s Scenario: Access the tables collection of a document Given a document having three tables ... passed in 0.071s Then document.tables is a list containing three tables ... passed in 0.005s Feature: Access document sections Scenario: Access section in section collection Given a section collection containing 3 sections ... passed in 0.062s Then len(sections) is 3 ... passed in 0.006s And I can iterate over the sections ... passed in 0.005s And I can access a section by index ... passed in 0.007s Feature: Add a heading paragraph Scenario: Add a heading specifying only its text Given a document having built-in styles ... passed in 0.200s When I add a heading specifying only its text ... passed in 0.057s Then the style of the last paragraph is 'Heading 1' ... passed in 0.011s And the last paragraph contains the heading text ... passed in 0.007s Scenario Outline: Add a heading specifying level -- @1.1 Heading level styles Given a document having built-in styles ... passed in 0.230s When I add a heading specifying level=0 ... passed in 0.038s Then the style of the last paragraph is 'Title' ... passed in 0.010s Scenario Outline: Add a heading specifying level -- @1.2 Heading level styles Given a document having built-in styles ... passed in 0.174s When I add a heading specifying level=1 ... passed in 0.037s Then the style of the last paragraph is 'Heading 1' ... passed in 0.010s Scenario Outline: Add a heading specifying level -- @1.3 Heading level styles Given a document having built-in styles ... passed in 0.296s When I add a heading specifying level=2 ... passed in 0.043s Then the style of the last paragraph is 'Heading 2' ... passed in 0.010s Scenario Outline: Add a heading specifying level -- @1.4 Heading level styles Given a document having built-in styles ... passed in 0.331s When I add a heading specifying level=5 ... passed in 0.042s Then the style of the last paragraph is 'Heading 5' ... passed in 0.011s Scenario Outline: Add a heading specifying level -- @1.5 Heading level styles Given a document having built-in styles ... passed in 0.342s When I add a heading specifying level=9 ... passed in 0.044s Then the style of the last paragraph is 'Heading 9' ... passed in 0.011s Feature: Add a page break Scenario: Add a hard page break paragraph Given a blank document ... passed in 0.066s When I add a page break to the document ... passed in 0.008s Then the last paragraph contains only a page break ... passed in 0.007s Feature: Add a paragraph with optional text and style Scenario: Add an empty paragraph Given a blank document ... passed in 0.064s When I add a paragraph without specifying text or style ... passed in 0.006s Then the last paragraph is the empty paragraph I added ... passed in 0.006s Scenario: Add a paragraph specifying its text Given a blank document ... passed in 0.074s When I add a paragraph specifying its text ... passed in 0.011s Then the last paragraph contains the text I specified ... passed in 0.008s Scenario Outline: Add a paragraph specifying its style -- @1.1 ways of specifying a style Given a document ... passed in 0.192s When I add a paragraph specifying its style as a style object ... passed in 0.042s Then the last paragraph has the style I specified ... passed in 0.010s Scenario Outline: Add a paragraph specifying its style -- @1.2 ways of specifying a style Given a document ... passed in 0.191s When I add a paragraph specifying its style as a style name ... passed in 0.054s Then the last paragraph has the style I specified ... passed in 0.011s Feature: Append an inline picture in its own paragraph Scenario: Add a picture at native size Given a blank document ... passed in 0.067s When I add a picture specifying only the image file ... passed in 0.037s Then the document contains the inline picture ... passed in 0.010s And the picture has its native width and height ... passed in 0.006s Scenario: Add a picture specifying both width and height Given a blank document ... passed in 0.062s When I add a picture specifying 1.75" width and 2.5" height ... passed in 0.028s Then picture.width is 1.75 inches ... passed in 0.005s And picture.height is 2.5 inches ... passed in 0.005s Scenario: Add a picture specifying only width Given a blank document ... passed in 0.063s When I add a picture specifying a width of 1.5 inches ... passed in 0.027s Then picture.height is 2.14 inches ... passed in 0.006s Scenario: Add a picture specifying only height Given a blank document ... passed in 0.062s When I add a picture specifying a height of 1.5 inches ... passed in 0.026s Then picture.width is 1.05 inches ... passed in 0.005s 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.148s When I add an even-page section to the document ... passed in 0.017s And I change the new section layout to landscape ... passed in 0.007s Then the document has two sections ... passed in 0.006s And the first section is portrait ... passed in 0.008s And the second section is landscape ... passed in 0.008s 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.085s When I execute section = document.add_section() ... passed in 0.012s Then section.header.is_linked_to_previous is True ... passed in 0.006s And section.even_page_header.is_linked_to_previous is True ... passed in 0.006s And section.first_page_header.is_linked_to_previous is True ... passed in 0.006s And section.footer.is_linked_to_previous is True ... passed in 0.006s And section.even_page_footer.is_linked_to_previous is True ... passed in 0.006s And section.first_page_footer.is_linked_to_previous is True ... passed in 0.006s Feature: Add a table Scenario: Add a table specifying only row and column count Given a blank document ... passed in 0.057s When I add a 2 x 2 table specifying only row and column count ... passed in 0.011s Then the document contains a 2 x 2 table ... passed in 0.007s And table.style is styles['Normal Table'] ... passed in 0.010s And the width of each column is 3.0 inches ... passed in 0.006s And the width of each cell is 3.0 inches ... passed in 0.012s Scenario: Add a table specifying style Given a document having built-in styles ... passed in 0.194s When I add a 2 x 2 table specifying style 'Table Grid' ... passed in 0.049s Then the document contains a 2 x 2 table ... passed in 0.008s And table.style is styles['Table Grid'] ... passed in 0.017s 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.058s Then I can access the core properties object ... passed in 0.004s And the core property values match the known values ... passed in 0.129s Scenario: change the core properties of a document Given a document having known core properties ... passed in 0.059s When I assign new values to the properties ... passed in 0.014s Then the core property values match the new values ... passed in 0.012s 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.057s When I access the core properties object ... passed in 0.014s Then a core properties part with default values is added ... passed in 0.008s 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.064s Then document.settings is a Settings object ... passed in 0.004s Scenario Outline: Access document settings -- @1.2 having a settings part or not Given a document having no settings part ... passed in 0.055s Then document.settings is a Settings object ... passed in 0.008s 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.087s Then settings.odd_and_even_pages_header_footer is True ... passed in 0.007s 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.087s Then settings.odd_and_even_pages_header_footer is False ... passed in 0.006s 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.089s When I assign True to settings.odd_and_even_pages_header_footer ... passed in 0.008s Then settings.odd_and_even_pages_header_footer is True ... passed in 0.006s 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.083s When I assign False to settings.odd_and_even_pages_header_footer ... passed in 0.006s Then settings.odd_and_even_pages_header_footer is False ... passed in 0.006s 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.072s When I assign True to settings.odd_and_even_pages_header_footer ... passed in 0.013s Then settings.odd_and_even_pages_header_footer is True ... passed in 0.006s 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.075s When I assign False to settings.odd_and_even_pages_header_footer ... passed in 0.006s Then settings.odd_and_even_pages_header_footer is False ... passed in 0.005s 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.070s Then len(styles) is 6 ... passed in 0.006s And I can iterate over its styles ... passed in 0.007s And I can access a style by style id ... passed in 0.009s And I can access a style by its UI name ... passed in 0.006s Scenario Outline: Access style in style collection -- @1.2 having styles or not Given a document having no styles part ... passed in 0.046s Then len(styles) is 4 ... passed in 0.012s And I can iterate over its styles ... passed in 0.006s And I can access a style by style id ... passed in 0.009s And I can access a style by its UI name ... passed in 0.006s 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.109s Then header.is_linked_to_previous is False ... passed in 0.007s 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.085s Then header.is_linked_to_previous is True ... passed in 0.006s 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.088s When I assign True to header.is_linked_to_previous ... passed in 0.010s Then header.is_linked_to_previous is True ... passed in 0.007s 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.090s When I assign False to header.is_linked_to_previous ... passed in 0.014s Then header.is_linked_to_previous is False ... passed in 0.006s 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.097s When I assign False to header.is_linked_to_previous ... passed in 0.007s Then header.is_linked_to_previous is False ... passed in 0.006s 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.089s When I assign True to header.is_linked_to_previous ... passed in 0.009s Then header.is_linked_to_previous is True ... passed in 0.007s Scenario: _Header inherits content Given a _Header object with a header definition as header ... passed in 0.085s And the next _Header object with no header definition as header_2 ... passed in 0.007s Then header_2.paragraphs[0].text == header.paragraphs[0].text ... passed in 0.016s And header_2.is_linked_to_previous is True ... passed in 0.007s Scenario: _Header text accepts style assignment Given a _Header object with a header definition as header ... passed in 0.089s When I assign "Normal" to header.paragraphs[0].style ... passed in 0.016s Then header.paragraphs[0].style.name == "Normal" ... passed in 0.015s Scenario: _Header allows image insertion Given a _Run object from a header as run ... passed in 0.089s When I call run.add_picture() ... passed in 0.032s Then I can't detect the image but no exception is raised ... passed in 0.004s 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.114s Then footer.is_linked_to_previous is False ... passed in 0.007s 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.092s Then footer.is_linked_to_previous is True ... passed in 0.007s 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.089s When I assign True to footer.is_linked_to_previous ... passed in 0.009s Then footer.is_linked_to_previous is True ... passed in 0.006s 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.087s When I assign False to footer.is_linked_to_previous ... passed in 0.014s Then footer.is_linked_to_previous is False ... passed in 0.007s 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.086s When I assign False to footer.is_linked_to_previous ... passed in 0.007s Then footer.is_linked_to_previous is False ... passed in 0.007s 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.110s When I assign True to footer.is_linked_to_previous ... passed in 0.007s Then footer.is_linked_to_previous is True ... passed in 0.007s Scenario: _Footer inherits content Given a _Footer object with a footer definition as footer ... passed in 0.089s And the next _Footer object with no footer definition as footer_2 ... passed in 0.007s Then footer_2.paragraphs[0].text == footer.paragraphs[0].text ... passed in 0.023s And footer_2.is_linked_to_previous is True ... passed in 0.007s Scenario: _Footer text accepts style assignment Given a _Footer object with a footer definition as footer ... passed in 0.094s When I assign "Normal" to footer.paragraphs[0].style ... passed in 0.016s Then footer.paragraphs[0].style.name == "Normal" ... passed in 0.015s Scenario: _Footer allows image insertion Given a _Run object from a footer as run ... passed in 0.093s When I call run.add_picture() ... passed in 0.027s Then I can't detect the image but no exception is raised ... passed in 0.004s Feature: Access hyperlink properties Scenario: Hyperlink.address has the URL of the hyperlink Given a hyperlink ... passed in 0.065s Then hyperlink.address is the URL of the hyperlink ... passed in 0.005s 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.062s Then hyperlink.contains_page_break is False ... passed in 0.005s 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.064s Then hyperlink.contains_page_break is True ... passed in 0.015s Scenario: Hyperlink.fragment has the URI fragment of the hyperlink Given a hyperlink having a URI fragment ... passed in 0.107s Then hyperlink.fragment is the URI fragment of the hyperlink ... passed in 0.004s 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.059s Then hyperlink.runs has length 1 ... passed in 0.005s And hyperlink.runs contains only Run instances ... passed in 0.004s 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.059s Then hyperlink.runs has length 2 ... passed in 0.004s And hyperlink.runs contains only Run instances ... passed in 0.005s Scenario: Hyperlink.text has the visible text of the hyperlink Given a hyperlink ... passed in 0.058s Then hyperlink.text is the visible text of the hyperlink ... passed in 0.006s 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.062s Then hyperlink.url is '' ... passed in 0.004s 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.061s Then hyperlink.url is https://foo.com ... passed in 0.004s 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.061s Then hyperlink.url is https://foo.com?q=bar ... passed in 0.005s 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.085s Then hyperlink.url is http://foo.com/#intro ... passed in 0.004s 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.062s Then hyperlink.url is https://foo.com?q=bar#baz ... passed in 0.005s 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.062s Then hyperlink.url is court-exif.jpg ... passed in 0.004s 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.009s When I construct an image using the image path ... passed in 0.010s Then the image has content type 'image/png' ... passed in 0.004s And the image is 901 pixels wide ... passed in 0.004s And the image is 1350 pixels high ... passed in 0.004s And the image has 150 horizontal dpi ... passed in 0.004s And the image has 150 vertical dpi ... passed in 0.003s Scenario Outline: Characterize an image file -- @1.2 Image file characteristics Given the image file 'monty-truth.png' ... passed in 0.005s When I construct an image using the image path ... passed in 0.008s Then the image has content type 'image/png' ... passed in 0.004s And the image is 150 pixels wide ... passed in 0.004s And the image is 214 pixels high ... passed in 0.004s And the image has 72 horizontal dpi ... passed in 0.003s And the image has 72 vertical dpi ... passed in 0.004s Scenario Outline: Characterize an image file -- @1.3 Image file characteristics Given the image file 'jfif-300-dpi.jpg' ... passed in 0.005s When I construct an image using the image path ... passed in 0.016s Then the image has content type 'image/jpeg' ... passed in 0.004s And the image is 1504 pixels wide ... passed in 0.004s And the image is 1936 pixels high ... passed in 0.004s And the image has 300 horizontal dpi ... passed in 0.003s And the image has 300 vertical dpi ... passed in 0.004s Scenario Outline: Characterize an image file -- @1.4 Image file characteristics Given the image file 'lena_std.jpg' ... passed in 0.005s When I construct an image using the image path ... passed in 0.010s Then the image has content type 'image/jpeg' ... passed in 0.004s And the image is 512 pixels wide ... passed in 0.004s And the image is 512 pixels high ... passed in 0.004s And the image has 72 horizontal dpi ... passed in 0.004s And the image has 72 vertical dpi ... passed in 0.004s Scenario Outline: Characterize an image file -- @1.5 Image file characteristics Given the image file 'lena.tif' ... passed in 0.006s When I construct an image using the image path ... passed in 0.016s Then the image has content type 'image/tiff' ... passed in 0.004s And the image is 512 pixels wide ... passed in 0.008s And the image is 512 pixels high ... passed in 0.004s And the image has 72 horizontal dpi ... passed in 0.004s And the image has 72 vertical dpi ... passed in 0.004s Scenario Outline: Characterize an image file -- @1.6 Image file characteristics Given the image file 'sample.tif' ... passed in 0.005s When I construct an image using the image path ... passed in 0.011s Then the image has content type 'image/tiff' ... passed in 0.004s And the image is 1600 pixels wide ... passed in 0.004s And the image is 2100 pixels high ... passed in 0.004s And the image has 200 horizontal dpi ... passed in 0.004s And the image has 200 vertical dpi ... passed in 0.004s Scenario Outline: Characterize an image file -- @1.7 Image file characteristics Given the image file 'jpeg420exif.jpg' ... passed in 0.005s When I construct an image using the image path ... passed in 0.017s Then the image has content type 'image/jpeg' ... passed in 0.004s And the image is 2048 pixels wide ... passed in 0.004s And the image is 1536 pixels high ... passed in 0.004s And the image has 72 horizontal dpi ... passed in 0.004s And the image has 72 vertical dpi ... passed in 0.004s Scenario Outline: Characterize an image file -- @1.8 Image file characteristics Given the image file 'court-exif.jpg' ... passed in 0.005s When I construct an image using the image path ... passed in 0.014s Then the image has content type 'image/jpeg' ... passed in 0.004s And the image is 500 pixels wide ... passed in 0.005s And the image is 375 pixels high ... passed in 0.004s And the image has 256 horizontal dpi ... passed in 0.004s And the image has 256 vertical dpi ... passed in 0.004s Scenario Outline: Characterize an image file -- @1.9 Image file characteristics Given the image file 'lena.gif' ... passed in 0.005s When I construct an image using the image path ... passed in 0.008s Then the image has content type 'image/gif' ... passed in 0.004s And the image is 256 pixels wide ... passed in 0.004s And the image is 256 pixels high ... passed in 0.004s And the image has 72 horizontal dpi ... passed in 0.004s And the image has 72 vertical dpi ... passed in 0.004s Scenario Outline: Characterize an image file -- @1.10 Image file characteristics Given the image file 'lena.bmp' ... passed in 0.006s When I construct an image using the image path ... passed in 0.011s Then the image has content type 'image/bmp' ... passed in 0.003s And the image is 512 pixels wide ... passed in 0.004s And the image is 512 pixels high ... passed in 0.004s And the image has 96 horizontal dpi ... passed in 0.004s And the image has 96 vertical dpi ... passed in 0.004s Scenario Outline: Characterize an image file -- @1.11 Image file characteristics Given the image file 'mountain.bmp' ... passed in 0.005s When I construct an image using the image path ... passed in 0.009s Then the image has content type 'image/bmp' ... passed in 0.004s And the image is 640 pixels wide ... passed in 0.004s And the image is 480 pixels high ... passed in 0.004s And the image has 300 horizontal dpi ... passed in 0.005s And the image has 300 vertical dpi ... passed in 0.004s Feature: Access the document numbering part Scenario: Get an existing numbering part from document Given a document having a numbering part ... passed in 0.070s When I get the numbering part from the document ... passed in 0.005s Then the numbering part has the expected numbering definitions ... passed in 0.005s 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.059s Then paragraph.contains_page_break is False ... passed in 0.005s 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.064s Then paragraph.contains_page_break is True ... passed in 0.006s 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.058s Then paragraph.contains_page_break is True ... passed in 0.006s 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.074s Then paragraph.hyperlinks has length 0 ... passed in 0.004s And paragraph.hyperlinks contains only Hyperlink instances ... passed in 0.004s 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.060s Then paragraph.hyperlinks has length 1 ... passed in 0.005s And paragraph.hyperlinks contains only Hyperlink instances ... passed in 0.005s 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.062s Then paragraph.hyperlinks has length 3 ... passed in 0.008s And paragraph.hyperlinks contains only Hyperlink instances ... passed in 0.007s Scenario: Paragraph.iter_inner_content() generates the paragraph's runs and hyperlinks Given a paragraph having three hyperlinks ... passed in 0.069s Then paragraph.iter_inner_content() generates the paragraph runs and hyperlinks ... passed in 0.006s 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.065s Then paragraph.rendered_page_breaks has length 0 ... passed in 0.006s And paragraph.rendered_page_breaks contains only RenderedPageBreak instances ... passed in 0.007s 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.058s Then paragraph.rendered_page_breaks has length 1 ... passed in 0.005s And paragraph.rendered_page_breaks contains only RenderedPageBreak instances ... passed in 0.005s 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.068s Then paragraph.rendered_page_breaks has length 2 ... passed in 0.005s And paragraph.rendered_page_breaks contains only RenderedPageBreak instances ... passed in 0.006s Scenario: Paragraph.text contains both run-text and hyperlink-text Given a paragraph having three hyperlinks ... passed in 0.063s Then paragraph.text contains the text of both the runs and the hyperlinks ... passed in 0.016s Feature: Access paragraph format Scenario: Get paragraph format object Given a paragraph ... passed in 0.217s Then paragraph.paragraph_format is its ParagraphFormat object ... passed in 0.004s Feature: Add a run with optional text and style Scenario: Add a run specifying its text Given a paragraph ... passed in 0.190s When I add a run specifying its text ... passed in 0.012s Then the run contains the text I specified ... passed in 0.006s Scenario: Add a run specifying its style Given a paragraph ... passed in 0.188s When I add a run specifying the character style Emphasis ... passed in 0.055s Then run.style is styles['Emphasis'] ... passed in 0.016s 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.058s Then the paragraph alignment property value is None ... passed in 0.004s Scenario Outline: Get paragraph alignment -- @1.2 align property values Given a paragraph having left alignment ... passed in 0.059s Then the paragraph alignment property value is WD_ALIGN_PARAGRAPH.LEFT ... passed in 0.008s Scenario Outline: Get paragraph alignment -- @1.3 align property values Given a paragraph having center alignment ... passed in 0.088s Then the paragraph alignment property value is WD_ALIGN_PARAGRAPH.CENTER ... passed in 0.007s Scenario Outline: Get paragraph alignment -- @1.4 align property values Given a paragraph having right alignment ... passed in 0.113s Then the paragraph alignment property value is WD_ALIGN_PARAGRAPH.RIGHT ... passed in 0.006s Feature: Clear paragraph content Scenario: Clear paragraph content Given a paragraph with content and formatting ... passed in 0.065s When I clear the paragraph content ... passed in 0.007s Then the paragraph has no content ... passed in 0.005s But the paragraph formatting is preserved ... passed in 0.008s 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.200s When I insert a paragraph above the second paragraph ... passed in 0.058s Then the document contains four paragraphs ... passed in 0.005s And the text of the second paragraph matches the text I set ... passed in 0.008s And the style of the second paragraph matches the style I set ... passed in 0.011s Feature: Replace paragraph text Scenario: Set paragraph text Given a paragraph with content and formatting ... passed in 0.064s When I set the paragraph text ... passed in 0.010s Then the paragraph has the text I set ... passed in 0.007s And the paragraph formatting is preserved ... passed in 0.008s 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.066s Then paragraph.style is Normal ... passed in 0.020s 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.068s Then paragraph.style is Normal ... passed in 0.024s 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.069s Then paragraph.style is Heading 1 ... passed in 0.014s 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.066s Then paragraph.style is Body Text ... passed in 0.015s Scenario Outline: Set the style of a paragraph -- @1.1 ways of specifying a style Given a paragraph ... passed in 0.245s When I assign a style object to paragraph.style ... passed in 0.047s Then the paragraph has the style I set ... passed in 0.010s Scenario Outline: Set the style of a paragraph -- @1.2 ways of specifying a style Given a paragraph ... passed in 0.185s When I assign a style name to paragraph.style ... passed in 0.051s Then the paragraph has the style I set ... passed in 0.011s 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.066s Then rendered_page_break.preceding_paragraph_fragment is the content before break ... passed in 0.025s Scenario: RenderedPageBreak.preceding_paragraph_fragment includes the hyperlink Given a rendered_page_break in a hyperlink ... passed in 0.062s Then rendered_page_break.preceding_paragraph_fragment includes the hyperlink ... passed in 0.020s Scenario: RenderedPageBreak.following_paragraph_fragment is the content after break Given a rendered_page_break in a paragraph ... passed in 0.060s Then rendered_page_break.following_paragraph_fragment is the content after break ... passed in 0.026s Scenario: RenderedPageBreak.following_paragraph_fragment excludes the hyperlink Given a rendered_page_break in a hyperlink ... passed in 0.064s Then rendered_page_break.following_paragraph_fragment excludes the hyperlink ... passed in 0.016s Feature: Access run font Scenario: Access the font of a run Given a run ... passed in 0.189s Then run.font is the Font object for the run ... passed in 0.004s 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.060s Then run.contains_page_break is False ... passed in 0.005s 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.124s Then run.contains_page_break is True ... passed in 0.006s 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.114s Then run.contains_page_break is True ... passed in 0.010s 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.112s Then run.iter_inner_content() generates the run text and rendered page-breaks ... passed in 0.012s Scenario: Run.text contains the text content of the run Given a run having mixed text content ... passed in 0.012s Then run.text contains the text content of the run ... passed in 0.012s Feature: Add content to a run Scenario: Add a tab Given a run ... passed in 0.442s When I add a tab ... passed in 0.009s Then the tab appears at the end of the run ... passed in 0.010s Scenario: Assign mixed text to text property Given a run ... passed in 0.440s When I assign mixed text to the text property ... passed in 0.017s Then run.text contains the text content of the run ... passed in 0.011s Feature: Add picture to a run Scenario: Add a picture to a body paragraph run Given a run ... passed in 0.442s When I add a picture to the run ... passed in 0.023s Then the picture appears at the end of the run ... passed in 0.007s And the document contains the inline picture ... passed in 0.010s 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.446s When I add a picture to the run ... passed in 0.023s Then the picture appears at the end of the run ... passed in 0.008s And the document contains the inline picture ... passed in 0.009s 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.213s When I add a picture to the run ... passed in 0.020s Then the picture appears at the end of the run ... passed in 0.007s And the document contains the inline picture ... passed in 0.009s 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.193s When I add a picture to the run ... passed in 0.018s Then the picture appears at the end of the run ... passed in 0.006s And the document contains the inline picture ... passed in 0.008s 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.055s Then run.style is styles['Default Paragraph Font'] ... passed in 0.008s Scenario Outline: Get the character style of a run -- @1.2 Character styles Given a run having Emphasis style ... passed in 0.059s Then run.style is styles['Emphasis'] ... passed in 0.009s Scenario Outline: Get the character style of a run -- @1.3 Character styles Given a run having Strong style ... passed in 0.059s Then run.style is styles['Strong'] ... passed in 0.009s Scenario Outline: Set the style of a run -- @1.1 Character style transitions Given a run having no explicit style ... passed in 0.062s When I assign Emphasis to run.style ... passed in 0.024s Then run.style is styles['Emphasis'] ... passed in 0.011s Scenario Outline: Set the style of a run -- @1.2 Character style transitions Given a run having no explicit style ... passed in 0.064s When I assign styles['Emphasis'] to run.style ... passed in 0.020s Then run.style is styles['Emphasis'] ... passed in 0.010s Scenario Outline: Set the style of a run -- @1.3 Character style transitions Given a run having Emphasis style ... passed in 0.061s When I assign Strong to run.style ... passed in 0.011s Then run.style is styles['Strong'] ... passed in 0.010s Scenario Outline: Set the style of a run -- @1.4 Character style transitions Given a run having Emphasis style ... passed in 0.063s When I assign styles['Strong'] to run.style ... passed in 0.011s Then run.style is styles['Strong'] ... passed in 0.010s Scenario Outline: Set the style of a run -- @1.5 Character style transitions Given a run having Strong style ... passed in 0.064s When I assign None to run.style ... passed in 0.006s Then run.style is styles['Default Paragraph Font'] ... passed in 0.009s Feature: Remove the content of a run Scenario: Clear run content Given a run having known text and formatting ... passed in 0.203s When I clear the run ... passed in 0.005s Then the run contains no text ... passed in 0.005s But the run formatting is preserved ... passed in 0.005s 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.094s Then the run underline property value is None ... passed in 0.005s Scenario Outline: Get underline value of a run -- @1.2 underline property values Given a run having no underline ... passed in 0.061s Then the run underline property value is False ... passed in 0.006s Scenario Outline: Get underline value of a run -- @1.3 underline property values Given a run having single underline ... passed in 0.061s Then the run underline property value is True ... passed in 0.005s Scenario Outline: Get underline value of a run -- @1.4 underline property values Given a run having double underline ... passed in 0.059s Then the run underline property value is WD_UNDERLINE.DOUBLE ... passed in 0.006s Scenario Outline: Change underline setting for a run -- @1.1 underline property values Given a run having inherited underline ... passed in 0.063s When I set the run underline to True ... passed in 0.008s Then the run underline property value is True ... passed in 0.005s Scenario Outline: Change underline setting for a run -- @1.2 underline property values Given a run having inherited underline ... passed in 0.073s When I set the run underline to False ... passed in 0.007s Then the run underline property value is False ... passed in 0.005s Scenario Outline: Change underline setting for a run -- @1.3 underline property values Given a run having inherited underline ... passed in 0.062s When I set the run underline to None ... passed in 0.006s Then the run underline property value is None ... passed in 0.006s Scenario Outline: Change underline setting for a run -- @1.4 underline property values Given a run having inherited underline ... passed in 0.059s When I set the run underline to WD_UNDERLINE.SINGLE ... passed in 0.008s Then the run underline property value is True ... passed in 0.005s Scenario Outline: Change underline setting for a run -- @1.5 underline property values Given a run having inherited underline ... passed in 0.061s When I set the run underline to WD_UNDERLINE.DOUBLE ... passed in 0.008s Then the run underline property value is WD_UNDERLINE.DOUBLE ... passed in 0.005s Scenario Outline: Change underline setting for a run -- @1.6 underline property values Given a run having single underline ... passed in 0.061s When I set the run underline to None ... passed in 0.005s Then the run underline property value is None ... passed in 0.005s Scenario Outline: Change underline setting for a run -- @1.7 underline property values Given a run having single underline ... passed in 0.062s When I set the run underline to True ... passed in 0.008s Then the run underline property value is True ... passed in 0.005s Scenario Outline: Change underline setting for a run -- @1.8 underline property values Given a run having single underline ... passed in 0.060s When I set the run underline to False ... passed in 0.007s Then the run underline property value is False ... passed in 0.006s Scenario Outline: Change underline setting for a run -- @1.9 underline property values Given a run having single underline ... passed in 0.065s When I set the run underline to WD_UNDERLINE.SINGLE ... passed in 0.010s Then the run underline property value is True ... passed in 0.006s Scenario Outline: Change underline setting for a run -- @1.10 underline property values Given a run having single underline ... passed in 0.068s When I set the run underline to WD_UNDERLINE.DOUBLE ... passed in 0.008s Then the run underline property value is WD_UNDERLINE.DOUBLE ... passed in 0.005s 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.182s Then section.different_first_page_header_footer is True ... passed in 0.007s 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.070s Then section.different_first_page_header_footer is False ... passed in 0.006s 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.071s When I assign True to section.different_first_page_header_footer ... passed in 0.006s Then section.different_first_page_header_footer is True ... passed in 0.006s 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.072s When I assign False to section.different_first_page_header_footer ... passed in 0.009s Then section.different_first_page_header_footer is False ... passed in 0.009s 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.070s When I assign True to section.different_first_page_header_footer ... passed in 0.008s Then section.different_first_page_header_footer is True ... passed in 0.006s 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.070s When I assign False to section.different_first_page_header_footer ... passed in 0.005s Then section.different_first_page_header_footer is False ... passed in 0.005s Scenario: Section.even_page_footer Given a Section object as section ... passed in 0.090s Then section.even_page_footer is a _Footer object ... passed in 0.004s Scenario: Section.even_page_header Given a Section object as section ... passed in 0.073s Then section.even_page_header is a _Header object ... passed in 0.004s Scenario: Section.first_page_footer Given a Section object as section ... passed in 0.074s Then section.first_page_footer is a _Footer object ... passed in 0.003s Scenario: Section.first_page_header Given a Section object as section ... passed in 0.071s Then section.first_page_header is a _Header object ... passed in 0.004s Scenario: Section.footer Given a Section object as section ... passed in 0.074s Then section.footer is a _Footer object ... passed in 0.003s Scenario: Section.header Given a Section object as section ... passed in 0.073s Then section.header is a _Header object ... passed in 0.004s Scenario: Section.iter_inner_content() Given a Section object of a multi-section document as section ... passed in 0.059s Then section.iter_inner_content() produces the paragraphs and tables in section ... passed in 0.012s Scenario Outline: Get section start type -- @1.1 Section start types Given a section having start type CONTINUOUS ... passed in 0.091s Then the reported section start type is CONTINUOUS ... passed in 0.006s Scenario Outline: Get section start type -- @1.2 Section start types Given a section having start type NEW_COLUMN ... passed in 0.077s Then the reported section start type is NEW_COLUMN ... passed in 0.006s Scenario Outline: Get section start type -- @1.3 Section start types Given a section having start type NEW_PAGE ... passed in 0.072s Then the reported section start type is NEW_PAGE ... passed in 0.004s Scenario Outline: Get section start type -- @1.4 Section start types Given a section having start type EVEN_PAGE ... passed in 0.073s Then the reported section start type is EVEN_PAGE ... passed in 0.006s Scenario Outline: Get section start type -- @1.5 Section start types Given a section having start type ODD_PAGE ... passed in 0.075s Then the reported section start type is ODD_PAGE ... passed in 0.005s Scenario Outline: Set section start type -- @1.1 Section start types Given a section having start type CONTINUOUS ... passed in 0.081s When I set the section start type to NEW_PAGE ... passed in 0.004s Then the reported section start type is NEW_PAGE ... passed in 0.004s Scenario Outline: Set section start type -- @1.2 Section start types Given a section having start type NEW_PAGE ... passed in 0.074s When I set the section start type to ODD_PAGE ... passed in 0.007s Then the reported section start type is ODD_PAGE ... passed in 0.005s Scenario Outline: Set section start type -- @1.3 Section start types Given a section having start type NEW_COLUMN ... passed in 0.072s When I set the section start type to None ... passed in 0.005s Then the reported section start type is NEW_PAGE ... passed in 0.005s Scenario: Get section page size Given a section having known page dimension ... passed in 0.071s Then the reported page width is 8.5 inches ... passed in 0.005s And the reported page height is 11 inches ... passed in 0.005s Scenario: Set section page size Given a section having known page dimension ... passed in 0.072s When I set the section page width to 11 inches ... passed in 0.006s And I set the section page height to 8.5 inches ... passed in 0.005s Then the reported page width is 11 inches ... passed in 0.007s And the reported page height is 8.5 inches ... passed in 0.006s Scenario Outline: Get section orientation -- @1.1 Section page orientations Given a section known to have landscape orientation ... passed in 0.075s Then the reported page orientation is WD_ORIENT.LANDSCAPE ... passed in 0.005s Scenario Outline: Get section orientation -- @1.2 Section page orientations Given a section known to have portrait orientation ... passed in 0.069s Then the reported page orientation is WD_ORIENT.PORTRAIT ... passed in 0.004s Scenario Outline: Set section orientation -- @1.1 Section page orientations Given a section known to have portrait orientation ... passed in 0.073s When I set the section orientation to WD_ORIENT.LANDSCAPE ... passed in 0.005s Then the reported page orientation is WD_ORIENT.LANDSCAPE ... passed in 0.005s Scenario Outline: Set section orientation -- @1.2 Section page orientations Given a section known to have landscape orientation ... passed in 0.075s When I set the section orientation to WD_ORIENT.PORTRAIT ... passed in 0.005s Then the reported page orientation is WD_ORIENT.PORTRAIT ... passed in 0.004s Scenario Outline: Set section orientation -- @1.3 Section page orientations Given a section known to have landscape orientation ... passed in 0.074s When I set the section orientation to None ... passed in 0.004s Then the reported page orientation is WD_ORIENT.PORTRAIT ... passed in 0.004s Scenario: Get section page margins Given a section having known page margins ... passed in 0.075s Then the reported left margin is 1.0 inches ... passed in 0.006s And the reported right margin is 1.25 inches ... passed in 0.005s And the reported top margin is 1.5 inches ... passed in 0.005s And the reported bottom margin is 1.75 inches ... passed in 0.006s And the reported gutter margin is 0.25 inches ... passed in 0.005s And the reported header margin is 0.5 inches ... passed in 0.005s And the reported footer margin is 0.75 inches ... passed in 0.005s Scenario Outline: Set section page margins -- @1.1 Section margin settings Given a section having known page margins ... passed in 0.086s When I set the left margin to 1.0 inches ... passed in 0.005s Then the reported left margin is 1.0 inches ... passed in 0.004s Scenario Outline: Set section page margins -- @1.2 Section margin settings Given a section having known page margins ... passed in 0.073s When I set the right margin to 1.25 inches ... passed in 0.006s Then the reported right margin is 1.25 inches ... passed in 0.006s Scenario Outline: Set section page margins -- @1.3 Section margin settings Given a section having known page margins ... passed in 0.080s When I set the top margin to 0.75 inches ... passed in 0.006s Then the reported top margin is 0.75 inches ... passed in 0.005s Scenario Outline: Set section page margins -- @1.4 Section margin settings Given a section having known page margins ... passed in 0.076s When I set the bottom margin to 1.5 inches ... passed in 0.006s Then the reported bottom margin is 1.5 inches ... passed in 0.005s Scenario Outline: Set section page margins -- @1.5 Section margin settings Given a section having known page margins ... passed in 0.073s When I set the header margin to 0.25 inches ... passed in 0.006s Then the reported header margin is 0.25 inches ... passed in 0.005s Scenario Outline: Set section page margins -- @1.6 Section margin settings Given a section having known page margins ... passed in 0.075s When I set the footer margin to 0.5 inches ... passed in 0.005s Then the reported footer margin is 0.5 inches ... passed in 0.005s Scenario Outline: Set section page margins -- @1.7 Section margin settings Given a section having known page margins ... passed in 0.074s When I set the gutter margin to 0.25 inches ... passed in 0.005s Then the reported gutter margin is 0.25 inches ... passed in 0.006s 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.111s Then the length of the inline shape collection is 5 ... passed in 0.006s And I can iterate over the inline shape collection ... passed in 0.006s And I can access each inline shape by index ... passed in 0.007s 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.099s Then its inline shape type is WD_INLINE_SHAPE.PICTURE ... passed in 0.009s 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.097s Then its inline shape type is WD_INLINE_SHAPE.LINKED_PICTURE ... passed in 0.007s 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.094s Then its inline shape type is WD_INLINE_SHAPE.LINKED_PICTURE ... passed in 0.006s 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.106s Then its inline shape type is WD_INLINE_SHAPE.SMART_ART ... passed in 0.005s 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.097s Then its inline shape type is WD_INLINE_SHAPE.CHART ... passed in 0.005s Feature: Query and change dimensions of inline shape Scenario: Query inline shape dimensions Given an inline shape of known dimensions ... passed in 0.093s Then the dimensions of the inline shape match the known values ... passed in 0.006s Scenario: Change inline shape dimensions Given an inline shape of known dimensions ... passed in 0.094s When I change the dimensions of the inline shape ... passed in 0.009s Then the dimensions of the inline shape match the new values ... passed in 0.005s 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.062s Then style.font is the Font object for the style ... passed in 0.004s Scenario Outline: Get style font -- @1.2 Style types Given a style of type WD_STYLE_TYPE.PARAGRAPH ... passed in 0.062s Then style.font is the Font object for the style ... passed in 0.004s Scenario Outline: Get style font -- @1.3 Style types Given a style of type WD_STYLE_TYPE.TABLE ... passed in 0.081s Then style.font is the Font object for the style ... passed in 0.004s Feature: Access latent styles for a document Scenario: Access latent styles collection Given the style collection of a document ... passed in 0.060s Then styles.latent_styles is the LatentStyles object for the document ... passed in 0.008s And len(latent_styles) is 137 ... passed in 0.007s Scenario: Access latent style in collection Given a latent style collection ... passed in 0.062s Then I can iterate over the latent styles ... passed in 0.009s And I can access a latent style by name ... passed in 0.008s 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.064s Then style.paragraph_format is the ParagraphFormat object for the style ... passed in 0.004s Scenario Outline: Get style paragraph format -- @1.2 Style types Given a style of type WD_STYLE_TYPE.TABLE ... passed in 0.065s Then style.paragraph_format is the ParagraphFormat object for the style ... passed in 0.004s Feature: Add a style Scenario Outline: Add a style -- @1.1 New style varieties Given a document having known styles ... passed in 0.071s When I call add_style('Heading 1', WD_STYLE_TYPE.PARAGRAPH, builtin=True) ... passed in 0.016s Then the document has one additional style ... passed in 0.005s And styles['Heading 1'] is a style ... passed in 0.008s And style.type is WD_STYLE_TYPE.PARAGRAPH ... passed in 0.004s And style.builtin is True ... passed in 0.004s Scenario Outline: Add a style -- @1.2 New style varieties Given a document having known styles ... passed in 0.066s When I call add_style('Inline Code', WD_STYLE_TYPE.CHARACTER, builtin=False) ... passed in 0.013s Then the document has one additional style ... passed in 0.005s And styles['Inline Code'] is a style ... passed in 0.008s And style.type is WD_STYLE_TYPE.CHARACTER ... passed in 0.004s And style.builtin is False ... passed in 0.004s Scenario Outline: Add a style -- @1.3 New style varieties Given a document having known styles ... passed in 0.061s When I call add_style('List Bullet', WD_STYLE_TYPE.LIST, builtin=True) ... passed in 0.011s Then the document has one additional style ... passed in 0.005s And styles['List Bullet'] is a style ... passed in 0.008s And style.type is WD_STYLE_TYPE.LIST ... passed in 0.004s And style.builtin is True ... passed in 0.004s Scenario Outline: Add a style -- @1.4 New style varieties Given a document having known styles ... passed in 0.063s When I call add_style('Shipments', WD_STYLE_TYPE.TABLE, builtin=False) ... passed in 0.011s Then the document has one additional style ... passed in 0.006s And styles['Shipments'] is a style ... passed in 0.008s And style.type is WD_STYLE_TYPE.TABLE ... passed in 0.005s And style.builtin is False ... passed in 0.004s Feature: Delete a style Scenario: Delete a style Given a document having known styles ... passed in 0.063s When I delete a style ... passed in 0.007s Then the document has one fewer styles ... passed in 0.005s And the deleted style is not in the styles collection ... passed in 0.007s Feature: Add or delete a latent style Scenario: Add a latent style Given a document having known styles ... passed in 0.061s When I add a latent style named 'Foobar' ... passed in 0.012s Then the document has one additional latent style ... passed in 0.007s And latent_styles['Foobar'] is a latent style ... passed in 0.008s Scenario: Delete a latent style Given a document having known styles ... passed in 0.060s When I delete a latent style ... passed in 0.014s Then the document has one fewer latent styles ... passed in 0.006s And the deleted latent style is not in the latent styles collection ... passed in 0.007s 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.066s Then latent_styles.default_priority is 99 ... passed in 0.004s 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.059s Then latent_styles.load_count is 276 ... passed in 0.004s 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.059s Then latent_styles.default_to_hidden is True ... passed in 0.004s 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.060s Then latent_styles.default_to_locked is False ... passed in 0.005s 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.057s Then latent_styles.default_to_quick_style is False ... passed in 0.005s 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.060s Then latent_styles.default_to_unhide_when_used is True ... passed in 0.005s 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.058s When I assign 42 to latent_styles.default_priority ... passed in 0.005s Then latent_styles.default_priority is 42 ... passed in 0.004s 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.075s When I assign 240 to latent_styles.load_count ... passed in 0.005s Then latent_styles.load_count is 240 ... passed in 0.004s 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.059s When I assign False to latent_styles.default_to_hidden ... passed in 0.005s Then latent_styles.default_to_hidden is False ... passed in 0.005s 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.057s When I assign True to latent_styles.default_to_locked ... passed in 0.004s Then latent_styles.default_to_locked is True ... passed in 0.004s 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.057s When I assign True to latent_styles.default_to_quick_style ... passed in 0.006s Then latent_styles.default_to_quick_style is True ... passed in 0.004s 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.057s When I assign False to latent_styles.default_to_unhide_when_used ... passed in 0.004s Then latent_styles.default_to_unhide_when_used is False ... passed in 0.004s Scenario: Get latent style name Given a latent style having a known name ... passed in 0.060s Then latent_style.name is the known name ... passed in 0.004s 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.064s Then latent_style.priority is None ... passed in 0.004s 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.060s Then latent_style.priority is 42 ... passed in 0.004s 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.075s When I assign 42 to latent_style.priority ... passed in 0.004s Then latent_style.priority is 42 ... passed in 0.004s 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.059s When I assign 24 to latent_style.priority ... passed in 0.005s Then latent_style.priority is 24 ... passed in 0.004s 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.056s When I assign None to latent_style.priority ... passed in 0.004s Then latent_style.priority is None ... passed in 0.003s 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.057s Then latent_style.hidden is True ... passed in 0.004s 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.060s Then latent_style.hidden is False ... passed in 0.003s 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.066s Then latent_style.hidden is None ... passed in 0.004s 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.058s Then latent_style.locked is True ... passed in 0.004s 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.055s Then latent_style.locked is False ... passed in 0.004s 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.058s Then latent_style.locked is None ... passed in 0.003s 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.058s Then latent_style.quick_style is True ... passed in 0.004s 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.057s Then latent_style.quick_style is False ... passed in 0.004s 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.057s Then latent_style.quick_style is None ... passed in 0.004s 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.057s Then latent_style.unhide_when_used is True ... passed in 0.004s 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.060s Then latent_style.unhide_when_used is False ... passed in 0.007s 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.070s Then latent_style.unhide_when_used is None ... passed in 0.004s 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.142s When I assign True to latent_style.hidden ... passed in 0.010s Then latent_style.hidden is True ... passed in 0.009s 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.138s When I assign False to latent_style.hidden ... passed in 0.009s Then latent_style.hidden is False ... passed in 0.009s 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.140s When I assign None to latent_style.hidden ... passed in 0.010s Then latent_style.hidden is None ... passed in 0.010s 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.140s When I assign False to latent_style.locked ... passed in 0.011s Then latent_style.locked is False ... passed in 0.010s 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.164s When I assign True to latent_style.locked ... passed in 0.010s Then latent_style.locked is True ... passed in 0.009s 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.148s When I assign None to latent_style.locked ... passed in 0.005s Then latent_style.locked is None ... passed in 0.004s 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.068s When I assign True to latent_style.quick_style ... passed in 0.005s Then latent_style.quick_style is True ... passed in 0.005s 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.076s When I assign False to latent_style.quick_style ... passed in 0.010s Then latent_style.quick_style is False ... passed in 0.007s 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.079s When I assign None to latent_style.quick_style ... passed in 0.004s Then latent_style.quick_style is None ... passed in 0.004s 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.063s When I assign False to latent_style.unhide_when_used ... passed in 0.005s Then latent_style.unhide_when_used is False ... passed in 0.005s 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.075s When I assign True to latent_style.unhide_when_used ... passed in 0.005s Then latent_style.unhide_when_used is True ... passed in 0.007s 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.076s When I assign False to latent_style.unhide_when_used ... passed in 0.004s Then latent_style.unhide_when_used is False ... passed in 0.004s 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.066s Then style.base_style is None ... passed in 0.009s Scenario Outline: Get base style -- @1.2 Base style values Given a style based on Normal ... passed in 0.083s Then style.base_style is styles['Normal'] ... passed in 0.011s Scenario Outline: Set base style -- @1.1 Base style values Given a style based on no style ... passed in 0.066s When I assign styles['Normal'] to style.base_style ... passed in 0.012s Then style.base_style is styles['Normal'] ... passed in 0.013s Scenario Outline: Set base style -- @1.2 Base style values Given a style based on Normal ... passed in 0.074s When I assign styles['Base'] to style.base_style ... passed in 0.009s Then style.base_style is styles['Base'] ... passed in 0.011s Scenario Outline: Set base style -- @1.3 Base style values Given a style based on Base ... passed in 0.060s When I assign None to style.base_style ... passed in 0.009s Then style.base_style is None ... passed in 0.008s Scenario Outline: Get hidden value -- @1.1 Style hidden values Given a style having hidden set on ... passed in 0.056s Then style.hidden is True ... passed in 0.005s Scenario Outline: Get hidden value -- @1.2 Style hidden values Given a style having hidden set off ... passed in 0.054s Then style.hidden is False ... passed in 0.004s Scenario Outline: Get hidden value -- @1.3 Style hidden values Given a style having hidden set no setting ... passed in 0.066s Then style.hidden is False ... passed in 0.005s Scenario Outline: Set hidden value -- @1.1 Style hidden values Given a style having hidden set no setting ... passed in 0.058s When I assign True to style.hidden ... passed in 0.007s Then style.hidden is True ... passed in 0.004s Scenario Outline: Set hidden value -- @1.2 Style hidden values Given a style having hidden set on ... passed in 0.062s When I assign False to style.hidden ... passed in 0.005s Then style.hidden is False ... passed in 0.004s Scenario Outline: Get locked value -- @1.1 Style locked values Given a style having locked set on ... passed in 0.060s Then style.locked is True ... passed in 0.005s Scenario Outline: Get locked value -- @1.2 Style locked values Given a style having locked set off ... passed in 0.056s Then style.locked is False ... passed in 0.006s Scenario Outline: Get locked value -- @1.3 Style locked values Given a style having locked set no setting ... passed in 0.057s Then style.locked is False ... passed in 0.005s Scenario Outline: Set locked value -- @1.1 Style locked values Given a style having locked set no setting ... passed in 0.059s When I assign True to style.locked ... passed in 0.007s Then style.locked is True ... passed in 0.005s Scenario Outline: Set locked value -- @1.2 Style locked values Given a style having locked set on ... passed in 0.061s When I assign False to style.locked ... passed in 0.006s Then style.locked is False ... passed in 0.004s Scenario: Get name Given a style having a known name ... passed in 0.076s Then style.name is the known name ... passed in 0.007s Scenario: Set name Given a style having a known name ... passed in 0.065s When I assign a new name to the style ... passed in 0.007s Then style.name is the new name ... passed in 0.005s 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.065s Then style.next_paragraph_style is Base ... passed in 0.007s 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.067s Then style.next_paragraph_style is Sub Normal ... passed in 0.009s 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.061s Then style.next_paragraph_style is Sub Normal ... passed in 0.008s 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.059s When I assign Citation to style.next_paragraph_style ... passed in 0.009s Then style.next_paragraph_style is Citation ... passed in 0.009s 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.062s When I assign Base to style.next_paragraph_style ... passed in 0.007s Then style.next_paragraph_style is Base ... passed in 0.009s 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.079s When I assign None to style.next_paragraph_style ... passed in 0.005s Then style.next_paragraph_style is Foo ... passed in 0.007s Scenario Outline: Get style display sort order -- @1.1 style.priority values Given a style having priority of no setting ... passed in 0.055s Then style.priority is None ... passed in 0.005s Scenario Outline: Get style display sort order -- @1.2 style.priority values Given a style having priority of 42 ... passed in 0.058s Then style.priority is 42 ... passed in 0.005s Scenario Outline: Set style display sort order -- @1.1 Style priority values Given a style having priority of no setting ... passed in 0.054s When I assign 42 to style.priority ... passed in 0.008s Then style.priority is 42 ... passed in 0.005s Scenario Outline: Set style display sort order -- @1.2 Style priority values Given a style having priority of 42 ... passed in 0.059s When I assign 24 to style.priority ... passed in 0.006s Then style.priority is 24 ... passed in 0.005s Scenario Outline: Set style display sort order -- @1.3 Style priority values Given a style having priority of 42 ... passed in 0.056s When I assign None to style.priority ... passed in 0.005s Then style.priority is None ... passed in 0.005s Scenario Outline: Get quick-style value -- @1.1 Style quick-style values Given a style having quick-style set on ... passed in 0.068s Then style.quick_style is True ... passed in 0.005s Scenario Outline: Get quick-style value -- @1.2 Style quick-style values Given a style having quick-style set off ... passed in 0.060s Then style.quick_style is False ... passed in 0.006s Scenario Outline: Get quick-style value -- @1.3 Style quick-style values Given a style having quick-style set no setting ... passed in 0.057s Then style.quick_style is False ... passed in 0.004s Scenario Outline: Set quick-style value -- @1.1 Style quick_style values Given a style having quick-style set no setting ... passed in 0.064s When I assign True to style.quick_style ... passed in 0.007s Then style.quick_style is True ... passed in 0.005s Scenario Outline: Set quick-style value -- @1.2 Style quick_style values Given a style having quick-style set on ... passed in 0.069s When I assign False to style.quick_style ... passed in 0.013s Then style.quick_style is False ... passed in 0.005s Scenario: Get style id Given a style having a known style id ... passed in 0.066s Then style.style_id is the known style id ... passed in 0.004s Scenario: Set style id Given a style having a known style id ... passed in 0.067s When I assign a new value to style.style_id ... passed in 0.004s Then style.style_id is the new style id ... passed in 0.004s Scenario: Get style type Given a style having a known type ... passed in 0.064s Then style.type is the known type ... passed in 0.005s 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.069s Then style.unhide_when_used is True ... passed in 0.005s 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.060s Then style.unhide_when_used is False ... passed in 0.005s 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.058s Then style.unhide_when_used is False ... passed in 0.005s 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.060s When I assign True to style.unhide_when_used ... passed in 0.007s Then style.unhide_when_used is True ... passed in 0.005s 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.060s When I assign False to style.unhide_when_used ... passed in 0.005s Then style.unhide_when_used is False ... passed in 0.005s Feature: Access TabStop objects Scenario Outline: TabStops.__len__ -- @1.1 tab_stop counts Given a tab_stops having 0 tab stops ... passed in 0.066s Then len(tab_stops) is 0 ... passed in 0.005s Scenario Outline: TabStops.__len__ -- @1.2 tab_stop counts Given a tab_stops having 3 tab stops ... passed in 0.062s Then len(tab_stops) is 3 ... passed in 0.006s Scenario: Access an existing TabStop object Given a tab_stops having 3 tab stops ... passed in 0.056s Then I can iterate the TabStops object ... passed in 0.006s And I can access a tab stop by index ... passed in 0.006s Scenario Outline: TabStops.add_tab_stop() -- @1.1 tab stop object counts Given a tab_stops having 0 tab stops ... passed in 0.059s When I add a tab stop ... passed in 0.014s Then len(tab_stops) is 1 ... passed in 0.008s And the tab stops are sequenced in position order ... passed in 0.005s Scenario Outline: TabStops.add_tab_stop() -- @1.2 tab stop object counts Given a tab_stops having 3 tab stops ... passed in 0.062s When I add a tab stop ... passed in 0.007s Then len(tab_stops) is 4 ... passed in 0.077s And the tab stops are sequenced in position order ... passed in 0.009s Scenario: TabStops.__delitem__() Given a tab_stops having 3 tab stops ... passed in 0.061s When I remove a tab stop ... passed in 0.006s Then len(tab_stops) is 2 ... passed in 0.006s And the removed tab stop is no longer present in tab_stops ... passed in 0.006s Scenario: TabStops.clear_all() Given a tab_stops having 3 tab stops ... passed in 0.057s When I call tab_stops.clear_all() ... passed in 0.005s Then len(tab_stops) is 0 ... passed in 0.004s 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.059s Then tab_stop.position is 457200 ... passed in 0.005s 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.059s Then tab_stop.position is -457200 ... passed in 0.004s 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.058s When I assign 228600 to tab_stop.position ... passed in 0.008s Then tab_stop.position is 228600 ... passed in 0.004s And the tab stops are sequenced in position order ... passed in 0.006s 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.059s When I assign -914400 to tab_stop.position ... passed in 0.006s Then tab_stop.position is -914400 ... passed in 0.004s And the tab stops are sequenced in position order ... passed in 0.006s Scenario Outline: Get TabStop.alignment -- @1.1 tab stop alignments Given a tab stop having LEFT alignment ... passed in 0.055s Then tab_stop.alignment is LEFT ... passed in 0.004s Scenario Outline: Get TabStop.alignment -- @1.2 tab stop alignments Given a tab stop having RIGHT alignment ... passed in 0.059s Then tab_stop.alignment is RIGHT ... passed in 0.005s Scenario Outline: Set TabStop.alignment -- @1.1 tab stop alignments Given a tab stop having LEFT alignment ... passed in 0.057s When I assign CENTER to tab_stop.alignment ... passed in 0.004s Then tab_stop.alignment is CENTER ... passed in 0.004s Scenario Outline: Set TabStop.alignment -- @1.2 tab stop alignments Given a tab stop having RIGHT alignment ... passed in 0.058s When I assign LEFT to tab_stop.alignment ... passed in 0.004s Then tab_stop.alignment is LEFT ... passed in 0.004s Scenario Outline: Get TabStop.leader -- @1.1 tab stop leaders Given a tab stop having no specified leader ... passed in 0.058s Then tab_stop.leader is SPACES ... passed in 0.005s Scenario Outline: Get TabStop.leader -- @1.2 tab stop leaders Given a tab stop having a dotted leader ... passed in 0.063s Then tab_stop.leader is DOTS ... passed in 0.005s Scenario Outline: Set TabStop.leader -- @1.1 tab stop leaders Given a tab stop having no specified leader ... passed in 0.074s When I assign DOTS to tab_stop.leader ... passed in 0.005s Then tab_stop.leader is DOTS ... passed in 0.005s Scenario Outline: Set TabStop.leader -- @1.2 tab stop leaders Given a tab stop having a dotted leader ... passed in 0.062s When I assign SPACES to tab_stop.leader ... passed in 0.004s Then tab_stop.leader is SPACES ... passed in 0.004s 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.219s When I add a row to the table ... passed in 0.023s Then the table has 3 rows ... passed in 0.006s And the new row has 2 cells ... passed in 0.012s And the width of each cell is 3.0 inches ... passed in 0.017s Scenario: Add a column to a table Given a 2 x 2 table ... passed in 0.199s When I add a 1.0 inch column to the table ... passed in 0.019s Then the table has 3 columns ... passed in 0.005s And the new column has 2 cells ... passed in 0.011s And the new column is 1.0 inches wide ... passed in 0.005s 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.076s Then the row cells text is 1 2 3 4 5 6 7 8 9 ... passed in 0.055s 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.074s Then the row cells text is 1 2 3 4 4 6 7 8 9 ... passed in 0.062s 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.090s Then the row cells text is 1 2 3 4 5 6 7 5 9 ... passed in 0.086s 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.170s Then the row cells text is 1 2 3 4 4 6 4 4 9 ... passed in 0.054s 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.064s Then the column cells text is 1 4 7 2 5 8 3 6 9 ... passed in 0.057s 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.061s Then the column cells text is 1 4 7 2 4 8 3 6 9 ... passed in 0.054s 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.072s Then the column cells text is 1 4 7 2 5 5 3 6 9 ... passed in 0.058s 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.073s Then the column cells text is 1 4 4 2 4 4 3 6 9 ... passed in 0.055s 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.070s Then table.cell(1, 1).text is 5 ... passed in 0.017s 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.084s Then table.cell(1, 1).text is 4 ... passed in 0.017s 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.070s Then table.cell(2, 1).text is 5 ... passed in 0.017s 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.076s Then table.cell(2, 1).text is 4 ... passed in 0.017s Feature: Get and set table cell properties 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.069s Then cell.vertical_alignment is None ... passed in 0.005s 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.072s Then cell.vertical_alignment is WD_ALIGN_VERTICAL.BOTTOM ... passed in 0.006s 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.067s Then cell.vertical_alignment is WD_ALIGN_VERTICAL.CENTER ... passed in 0.006s 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.075s When I assign WD_ALIGN_VERTICAL.BOTTOM to cell.vertical_alignment ... passed in 0.009s Then cell.vertical_alignment is WD_ALIGN_VERTICAL.BOTTOM ... passed in 0.005s 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.092s When I assign WD_ALIGN_VERTICAL.CENTER to cell.vertical_alignment ... passed in 0.007s Then cell.vertical_alignment is WD_ALIGN_VERTICAL.CENTER ... passed in 0.005s 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.068s When I assign None to cell.vertical_alignment ... passed in 0.006s Then cell.vertical_alignment is None ... passed in 0.005s 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.089s When I assign None to cell.vertical_alignment ... passed in 0.007s Then cell.vertical_alignment is None ... passed in 0.006s 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.067s Then the reported width of the cell is None ... passed in 0.005s Scenario Outline: Get cell width -- @1.2 Table cell width settings Given a table cell having a width of 1 inch ... passed in 0.065s Then the reported width of the cell is 1 inch ... passed in 0.005s 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.063s When I set the cell width to 1 inch ... passed in 0.007s Then the reported width of the cell is 1 inch ... passed in 0.005s Scenario Outline: Set cell width -- @1.2 table column width values Given a table cell having a width of 2 inches ... passed in 0.065s When I set the cell width to 1 inch ... passed in 0.006s Then the reported width of the cell is 1 inch ... passed in 0.005s Feature: Get and set table column widths Scenario Outline: Get existing column width -- @1.1 table column width values Given a table column having a width of no explicit setting ... passed in 0.080s Then the reported column width is None ... passed in 0.008s Scenario Outline: Get existing column width -- @1.2 table column width values Given a table column having a width of 1440 ... passed in 0.071s Then the reported column width is 914400 ... passed in 0.005s 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.067s When I set the column width to None ... passed in 0.004s Then the reported column width is None ... passed in 0.004s 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.070s When I set the column width to 914400 ... passed in 0.006s Then the reported column width is 914400 ... passed in 0.007s Scenario Outline: Set column width -- @1.3 table column width values Given a table column having a width of 1440 ... passed in 0.080s When I set the column width to None ... passed in 0.005s Then the reported column width is None ... passed in 0.005s Scenario Outline: Set column width -- @1.4 table column width values Given a table column having a width of 1440 ... passed in 0.081s When I set the column width to 914400 ... passed in 0.006s Then the reported column width is 914400 ... passed in 0.009s Scenario Outline: Set column width -- @1.5 table column width values Given a table column having a width of 1440 ... passed in 0.111s When I set the column width to 424497 ... passed in 0.008s Then the reported column width is 424180 ... passed in 0.008s Feature: Access table rows and columns Scenario: Access table row collection Given a table having two rows ... passed in 0.131s Then I can access the row collection of the table ... passed in 0.007s And the length of the row collection is 2 ... passed in 0.009s Scenario: Access row in row collection Given a row collection having two rows ... passed in 0.108s Then I can iterate over the row collection ... passed in 0.009s And I can access a collection row by index ... passed in 0.010s Scenario: Access table column collection Given a table having two columns ... passed in 0.102s Then I can access the column collection of the table ... passed in 0.005s And the length of the column collection is 2 ... passed in 0.005s Scenario: Access column in column collection Given a column collection having two columns ... passed in 0.072s Then I can iterate over the column collection ... passed in 0.005s And I can access a collection column by index ... passed in 0.006s 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.067s When I merge from cell 1 to cell 2 ... passed in 0.088s Then the row cells text is 1\2 1\2 3 4 5 6 7 8 9 ... passed in 0.053s Scenario Outline: Merge cells -- @1.2 Reported row cell contents Given a 3x3 table having only uniform cells ... passed in 0.076s When I merge from cell 2 to cell 5 ... passed in 0.092s Then the row cells text is 1 2\5 3 4 2\5 6 7 8 9 ... passed in 0.060s Scenario Outline: Merge cells -- @1.3 Reported row cell contents Given a 3x3 table having only uniform cells ... passed in 0.067s When I merge from cell 5 to cell 9 ... passed in 0.111s 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.086s 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.111s When I merge from cell 4 to cell 8 ... passed in 0.110s 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.070s 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.072s When I merge from cell 4 to cell 6 ... passed in 0.087s Then the row cells text is 1 2 3 4\6 4\6 4\6 7 8 9 ... passed in 0.055s 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.062s When I merge from cell 2 to cell 4 ... passed in 0.094s 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.064s 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.065s When I merge from cell 5 to cell 9 ... passed in 0.119s 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.064s 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.063s When I merge from cell 2 to cell 5 ... passed in 0.108s Then the row cells text is 1 2\5 3 4 2\5 6 7 2\5 9 ... passed in 0.055s 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.064s When I merge from cell 7 to cell 5 ... passed in 0.117s 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.062s Scenario Outline: Horizontal span adds cell widths -- @1.1 Reported row cell contents Given a 3x3 table having only uniform cells ... passed in 0.082s When I merge from cell 1 to cell 2 ... passed in 0.081s Then the width of cell 1 is 2.0 inches ... passed in 0.013s Scenario Outline: Horizontal span adds cell widths -- @1.2 Reported row cell contents Given a 3x3 table having only uniform cells ... passed in 0.063s When I merge from cell 1 to cell 5 ... passed in 0.102s Then the width of cell 1 is 2.0 inches ... passed in 0.013s Scenario Outline: Horizontal span adds cell widths -- @1.3 Reported row cell contents Given a 3x3 table having a horizontal span ... passed in 0.070s When I merge from cell 4 to cell 6 ... passed in 0.083s Then the width of cell 4 is 3.0 inches ... passed in 0.013s Scenario Outline: Horizontal span adds cell widths -- @1.4 Reported row cell contents Given a 3x3 table having a vertical span ... passed in 0.073s When I merge from cell 5 to cell 2 ... passed in 0.107s Then the width of cell 2 is 1.0 inches ... passed in 0.016s Scenario Outline: Horizontal span adds cell widths -- @1.5 Reported row cell contents Given a 3x3 table having a vertical span ... passed in 0.064s When I merge from cell 5 to cell 7 ... passed in 0.113s Then the width of cell 5 is 2.0 inches ... passed in 0.013s 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.062s Then table.alignment is None ... passed in 0.005s Scenario Outline: Get table alignment -- @1.2 table alignment settings Given a table having left alignment ... passed in 0.063s Then table.alignment is WD_TABLE_ALIGNMENT.LEFT ... passed in 0.005s Scenario Outline: Get table alignment -- @1.3 table alignment settings Given a table having right alignment ... passed in 0.064s Then table.alignment is WD_TABLE_ALIGNMENT.RIGHT ... passed in 0.005s Scenario Outline: Get table alignment -- @1.4 table alignment settings Given a table having center alignment ... passed in 0.075s Then table.alignment is WD_TABLE_ALIGNMENT.CENTER ... passed in 0.005s Scenario Outline: Set table alignment -- @1.1 results of assignment to table.alignment Given a table having inherited alignment ... passed in 0.062s When I assign WD_TABLE_ALIGNMENT.LEFT to table.alignment ... passed in 0.011s Then table.alignment is WD_TABLE_ALIGNMENT.LEFT ... passed in 0.010s Scenario Outline: Set table alignment -- @1.2 results of assignment to table.alignment Given a table having left alignment ... passed in 0.064s When I assign WD_TABLE_ALIGNMENT.RIGHT to table.alignment ... passed in 0.007s Then table.alignment is WD_TABLE_ALIGNMENT.RIGHT ... passed in 0.005s Scenario Outline: Set table alignment -- @1.3 results of assignment to table.alignment Given a table having right alignment ... passed in 0.064s When I assign WD_TABLE_ALIGNMENT.CENTER to table.alignment ... passed in 0.008s Then table.alignment is WD_TABLE_ALIGNMENT.CENTER ... passed in 0.005s Scenario Outline: Set table alignment -- @1.4 results of assignment to table.alignment Given a table having center alignment ... passed in 0.065s When I assign None to table.alignment ... passed in 0.005s Then table.alignment is None ... passed in 0.005s 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.058s Then the reported autofit setting is autofit ... passed in 0.005s Scenario Outline: Get autofit layout setting -- @1.2 table autofit settings Given a table having an autofit layout of autofit ... passed in 0.060s Then the reported autofit setting is autofit ... passed in 0.005s Scenario Outline: Get autofit layout setting -- @1.3 table autofit settings Given a table having an autofit layout of fixed ... passed in 0.079s Then the reported autofit setting is fixed ... passed in 0.005s 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.062s When I set the table autofit to autofit ... passed in 0.007s Then the reported autofit setting is autofit ... passed in 0.005s 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.062s When I set the table autofit to fixed ... passed in 0.006s Then the reported autofit setting is fixed ... passed in 0.005s Scenario Outline: Set autofit layout setting -- @1.3 table column width values Given a table having an autofit layout of fixed ... passed in 0.059s When I set the table autofit to autofit ... passed in 0.005s Then the reported autofit setting is autofit ... passed in 0.005s Scenario Outline: Set autofit layout setting -- @1.4 table column width values Given a table having an autofit layout of autofit ... passed in 0.066s When I set the table autofit to autofit ... passed in 0.006s Then the reported autofit setting is autofit ... passed in 0.005s Scenario Outline: Set autofit layout setting -- @1.5 table column width values Given a table having an autofit layout of fixed ... passed in 0.066s When I set the table autofit to fixed ... passed in 0.005s Then the reported autofit setting is fixed ... passed in 0.005s Scenario Outline: Set autofit layout setting -- @1.6 table column width values Given a table having an autofit layout of autofit ... passed in 0.071s When I set the table autofit to fixed ... passed in 0.007s Then the reported autofit setting is fixed ... passed in 0.006s Scenario Outline: Get table direction -- @1.1 Table on/off property values Given a table having table direction set to inherit ... passed in 0.070s Then table.table_direction is None ... passed in 0.006s 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.060s Then table.table_direction is RTL ... passed in 0.005s 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.060s Then table.table_direction is LTR ... passed in 0.006s 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.061s When I assign RTL to table.table_direction ... passed in 0.008s Then table.table_direction is RTL ... passed in 0.005s 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.061s When I assign LTR to table.table_direction ... passed in 0.005s Then table.table_direction is LTR ... passed in 0.005s 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.058s When I assign None to table.table_direction ... passed in 0.005s Then table.table_direction is None ... passed in 0.004s Feature: Get and set table row properties 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.073s Then row.height_rule is None ... passed in 0.005s Scenario Outline: Get Row.height_rule -- @1.2 Row.height_rule value cases Given a table row having height rule automatic ... passed in 0.065s Then row.height_rule is AUTO ... passed in 0.006s 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.060s Then row.height_rule is AT_LEAST ... passed in 0.005s 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.064s When I assign AUTO to row.height_rule ... passed in 0.009s Then row.height_rule is AUTO ... passed in 0.006s Scenario Outline: Set Row.height_rule -- @1.2 Row.height_rule assignment cases Given a table row having height rule automatic ... passed in 0.065s When I assign AT_LEAST to row.height_rule ... passed in 0.006s Then row.height_rule is AT_LEAST ... passed in 0.005s 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.065s When I assign None to row.height_rule ... passed in 0.006s Then row.height_rule is None ... passed in 0.005s 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.069s When I assign None to row.height_rule ... passed in 0.006s Then row.height_rule is None ... passed in 0.005s Scenario Outline: Get Row.height -- @1.1 Row.height value cases Given a table row having height of no explicit setting ... passed in 0.091s Then row.height is None ... passed in 0.005s Scenario Outline: Get Row.height -- @1.2 Row.height value cases Given a table row having height of 2 inches ... passed in 0.066s Then row.height is 1828800 ... passed in 0.006s Scenario Outline: Get Row.height -- @1.3 Row.height value cases Given a table row having height of 3 inches ... passed in 0.071s Then row.height is 2743200 ... passed in 0.005s Scenario Outline: Set row height -- @1.1 Row.height assignment cases Given a table row having height of no explicit setting ... passed in 0.064s When I assign 1828800 to row.height ... passed in 0.009s Then row.height is 1828800 ... passed in 0.006s Scenario Outline: Set row height -- @1.2 Row.height assignment cases Given a table row having height of 2 inches ... passed in 0.064s When I assign 2743200 to row.height ... passed in 0.006s Then row.height is 2743200 ... passed in 0.005s Scenario Outline: Set row height -- @1.3 Row.height assignment cases Given a table row having height of 3 inches ... passed in 0.065s When I assign None to row.height ... passed in 0.005s Then row.height is None ... passed in 0.005s Scenario Outline: Set row height -- @1.4 Row.height assignment cases Given a table row having height of no explicit setting ... passed in 0.061s When I assign None to row.height ... passed in 0.005s Then row.height is None ... passed in 0.005s 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.198s Then table.style is styles['Normal Table'] ... passed in 0.010s Scenario Outline: Get the style of a table -- @1.2 Table styles Given a table having Table Grid style ... passed in 0.073s Then table.style is styles['Table Grid'] ... passed in 0.010s Scenario Outline: Get the style of a table -- @1.3 Table styles Given a table having Light Shading - Accent 1 style ... passed in 0.070s Then table.style is styles['Light Shading Accent 1'] ... passed in 0.010s Scenario Outline: Apply a table style -- @1.1 Character style transitions Given a table having no explicit style ... passed in 0.073s When I assign Table Grid to table.style ... passed in 0.014s Then table.style is styles['Table Grid'] ... passed in 0.010s Scenario Outline: Apply a table style -- @1.2 Character style transitions Given a table having no explicit style ... passed in 0.070s When I assign styles['Table Grid'] to table.style ... passed in 0.013s Then table.style is styles['Table Grid'] ... passed in 0.009s Scenario Outline: Apply a table style -- @1.3 Character style transitions Given a table having Table Grid style ... passed in 0.087s When I assign Normal Table to table.style ... passed in 0.012s Then table.style is styles['Normal Table'] ... passed in 0.010s Scenario Outline: Apply a table style -- @1.4 Character style transitions Given a table having Table Grid style ... passed in 0.068s When I assign styles['Normal Table'] to table.style ... passed in 0.010s Then table.style is styles['Normal Table'] ... passed in 0.010s Scenario Outline: Apply a table style -- @1.5 Character style transitions Given a table having Table Grid style ... passed in 0.072s When I assign None to table.style ... passed in 0.007s Then table.style is styles['Normal Table'] ... passed in 0.011s Feature: Add a line, page, or column break Scenario: Add a line break Given a run ... passed in 0.189s When I add a line break ... passed in 0.005s Then the last item in the run is a break ... passed in 0.006s And it is a line break ... passed in 0.008s Scenario: Add a page break Given a run ... passed in 0.210s When I add a page break ... passed in 0.005s Then the last item in the run is a break ... passed in 0.005s And it is a page break ... passed in 0.005s Scenario: Add a column break Given a run ... passed in 0.196s When I add a column break ... passed in 0.006s Then the last item in the run is a break ... passed in 0.006s And it is a column break ... passed in 0.004s 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.068s Then font.color.type is None ... passed in 0.005s Scenario Outline: Get font color type -- @1.2 Color type settings Given a font having auto color ... passed in 0.155s Then font.color.type is AUTO ... passed in 0.006s Scenario Outline: Get font color type -- @1.3 Color type settings Given a font having an RGB color ... passed in 0.064s Then font.color.type is RGB ... passed in 0.006s Scenario Outline: Get font color type -- @1.4 Color type settings Given a font having a theme color ... passed in 0.062s Then font.color.type is THEME ... passed in 0.005s Scenario Outline: Get font RGB color -- @1.1 Color type settings Given a font having no color ... passed in 0.066s Then font.color.rgb is None ... passed in 0.006s Scenario Outline: Get font RGB color -- @1.2 Color type settings Given a font having auto color ... passed in 0.062s Then font.color.rgb is None ... passed in 0.005s Scenario Outline: Get font RGB color -- @1.3 Color type settings Given a font having an RGB color ... passed in 0.066s Then font.color.rgb is 008000 ... passed in 0.005s Scenario Outline: Get font RGB color -- @1.4 Color type settings Given a font having a theme color ... passed in 0.071s Then font.color.rgb is 4f81bd ... passed in 0.006s Scenario Outline: Set font RGB color -- @1.1 Color type settings Given a font having no color ... passed in 0.069s When I assign f00ba5 to font.color.rgb ... passed in 0.014s Then font.color.type is RGB ... passed in 0.006s Then font.color.rgb is f00ba5 ... passed in 0.006s Scenario Outline: Set font RGB color -- @1.2 Color type settings Given a font having auto color ... passed in 0.063s When I assign 2468ac to font.color.rgb ... passed in 0.009s Then font.color.type is RGB ... passed in 0.005s Then font.color.rgb is 2468ac ... passed in 0.005s Scenario Outline: Set font RGB color -- @1.3 Color type settings Given a font having an RGB color ... passed in 0.063s When I assign feeb1e to font.color.rgb ... passed in 0.009s Then font.color.type is RGB ... passed in 0.006s Then font.color.rgb is feeb1e ... passed in 0.006s Scenario Outline: Set font RGB color -- @1.4 Color type settings Given a font having a theme color ... passed in 0.062s When I assign 987bac to font.color.rgb ... passed in 0.008s Then font.color.type is RGB ... passed in 0.005s Then font.color.rgb is 987bac ... passed in 0.008s Scenario Outline: Set font RGB color -- @1.5 Color type settings Given a font having an RGB color ... passed in 0.064s When I assign None to font.color.rgb ... passed in 0.005s Then font.color.type is None ... passed in 0.005s Then font.color.rgb is None ... passed in 0.004s Scenario Outline: Set font RGB color -- @1.6 Color type settings Given a font having a theme color ... passed in 0.060s When I assign None to font.color.rgb ... passed in 0.006s Then font.color.type is None ... passed in 0.005s Then font.color.rgb is None ... passed in 0.005s Scenario Outline: Get font theme color -- @1.1 Color type settings Given a font having no color ... passed in 0.060s Then font.color.theme_color is None ... passed in 0.004s Scenario Outline: Get font theme color -- @1.2 Color type settings Given a font having auto color ... passed in 0.062s Then font.color.theme_color is None ... passed in 0.005s Scenario Outline: Get font theme color -- @1.3 Color type settings Given a font having an RGB color ... passed in 0.063s Then font.color.theme_color is None ... passed in 0.006s Scenario Outline: Get font theme color -- @1.4 Color type settings Given a font having a theme color ... passed in 0.062s Then font.color.theme_color is ACCENT_1 ... passed in 0.005s Scenario Outline: Set font theme color -- @1.1 Color type settings Given a font having no color ... passed in 0.066s When I assign ACCENT_2 to font.color.theme_color ... passed in 0.009s Then font.color.type is THEME ... passed in 0.006s Then font.color.theme_color is ACCENT_2 ... passed in 0.005s Scenario Outline: Set font theme color -- @1.2 Color type settings Given a font having auto color ... passed in 0.075s When I assign DARK_1 to font.color.theme_color ... passed in 0.005s Then font.color.type is THEME ... passed in 0.005s Then font.color.theme_color is DARK_1 ... passed in 0.006s Scenario Outline: Set font theme color -- @1.3 Color type settings Given a font having an RGB color ... passed in 0.064s When I assign TEXT_1 to font.color.theme_color ... passed in 0.005s Then font.color.type is THEME ... passed in 0.005s Then font.color.theme_color is TEXT_1 ... passed in 0.005s Scenario Outline: Set font theme color -- @1.4 Color type settings Given a font having a theme color ... passed in 0.060s When I assign LIGHT_2 to font.color.theme_color ... passed in 0.005s Then font.color.type is THEME ... passed in 0.005s Then font.color.theme_color is LIGHT_2 ... passed in 0.005s Scenario Outline: Set font theme color -- @1.5 Color type settings Given a font having a theme color ... passed in 0.066s When I assign None to font.color.theme_color ... passed in 0.006s Then font.color.type is None ... passed in 0.005s Then font.color.theme_color is None ... passed in 0.005s Scenario Outline: Set font theme color -- @1.6 Color type settings Given a font having an RGB color ... passed in 0.060s When I assign None to font.color.theme_color ... passed in 0.007s Then font.color.type is None ... passed in 0.005s Then font.color.theme_color is None ... passed in 0.005s 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.059s Then font.highlight_color is None ... passed in 0.005s Scenario Outline: Get highlight color -- @1.2 font.highlight_color values Given a font having yellow highlighting ... passed in 0.058s Then font.highlight_color is YELLOW ... passed in 0.005s Scenario Outline: Get highlight color -- @1.3 font.highlight_color values Given a font having bright green highlighting ... passed in 0.063s Then font.highlight_color is BRIGHT_GREEN ... passed in 0.006s Scenario Outline: Set highlight color -- @1.1 font.highlight_color values Given a font having no highlighting ... passed in 0.062s When I assign YELLOW to font.highlight_color ... passed in 0.009s Then font.highlight_color is YELLOW ... passed in 0.006s Scenario Outline: Set highlight color -- @1.2 font.highlight_color values Given a font having yellow highlighting ... passed in 0.066s When I assign None to font.highlight_color ... passed in 0.006s Then font.highlight_color is None ... passed in 0.005s Scenario Outline: Set highlight color -- @1.3 font.highlight_color values Given a font having bright green highlighting ... passed in 0.067s When I assign BRIGHT_GREEN to font.highlight_color ... passed in 0.005s Then font.highlight_color is BRIGHT_GREEN ... passed in 0.005s Scenario Outline: Get typeface name -- @1.1 font.name values Given a font having typeface name not specified ... passed in 0.077s Then font.name is None ... passed in 0.005s Scenario Outline: Get typeface name -- @1.2 font.name values Given a font having typeface name Avenir Black ... passed in 0.076s Then font.name is Avenir Black ... passed in 0.006s Scenario Outline: Set typeface name -- @1.1 font.name values Given a font having typeface name not specified ... passed in 0.075s When I assign Avenir Black to font.name ... passed in 0.019s Then font.name is Avenir Black ... passed in 0.006s Scenario Outline: Set typeface name -- @1.2 font.name values Given a font having typeface name Avenir Black ... passed in 0.080s When I assign Calibri to font.name ... passed in 0.007s Then font.name is Calibri ... passed in 0.006s Scenario Outline: Set typeface name -- @1.3 font.name values Given a font having typeface name Avenir Black ... passed in 0.088s When I assign None to font.name ... passed in 0.006s Then font.name is None ... passed in 0.005s Scenario Outline: Get font size -- @1.1 font.size values Given a font of size unspecified ... passed in 0.110s Then font.size is None ... passed in 0.005s Scenario Outline: Get font size -- @1.2 font.size values Given a font of size 14 pt ... passed in 0.113s Then font.size is 177800 ... passed in 0.008s Scenario Outline: Set font size -- @1.1 font.size post-assignment values Given a font of size unspecified ... passed in 0.111s When I assign 177800 to font.size ... passed in 0.011s Then font.size is 177800 ... passed in 0.007s Scenario Outline: Set font size -- @1.2 font.size post-assignment values Given a font of size 14 pt ... passed in 0.085s When I assign 228600 to font.size ... passed in 0.007s Then font.size is 228600 ... passed in 0.005s Scenario Outline: Set font size -- @1.3 font.size post-assignment values Given a font of size 18 pt ... passed in 0.077s When I assign None to font.size ... passed in 0.006s Then font.size is None ... passed in 0.005s Scenario: Get font color object Given a font ... passed in 0.073s Then font.color is a ColorFormat object ... passed in 0.004s Scenario Outline: Get font underline value -- @1.1 font underline values Given a font having inherited underline ... passed in 0.098s Then font.underline is None ... passed in 0.006s Scenario Outline: Get font underline value -- @1.2 font underline values Given a font having no underline ... passed in 0.078s Then font.underline is False ... passed in 0.005s Scenario Outline: Get font underline value -- @1.3 font underline values Given a font having single underline ... passed in 0.070s Then font.underline is True ... passed in 0.005s Scenario Outline: Get font underline value -- @1.4 font underline values Given a font having double underline ... passed in 0.074s Then font.underline is WD_UNDERLINE.DOUBLE ... passed in 0.007s Scenario Outline: Change font underline -- @1.1 underline property values Given a font having inherited underline ... passed in 0.090s When I assign True to font.underline ... passed in 0.009s Then font.underline is True ... passed in 0.006s Scenario Outline: Change font underline -- @1.2 underline property values Given a font having inherited underline ... passed in 0.085s When I assign False to font.underline ... passed in 0.009s Then font.underline is False ... passed in 0.006s Scenario Outline: Change font underline -- @1.3 underline property values Given a font having inherited underline ... passed in 0.079s When I assign None to font.underline ... passed in 0.007s Then font.underline is None ... passed in 0.005s Scenario Outline: Change font underline -- @1.4 underline property values Given a font having inherited underline ... passed in 0.077s When I assign WD_UNDERLINE.SINGLE to font.underline ... passed in 0.009s Then font.underline is True ... passed in 0.005s Scenario Outline: Change font underline -- @1.5 underline property values Given a font having inherited underline ... passed in 0.075s When I assign WD_UNDERLINE.DOUBLE to font.underline ... passed in 0.009s Then font.underline is WD_UNDERLINE.DOUBLE ... passed in 0.005s Scenario Outline: Change font underline -- @1.6 underline property values Given a font having single underline ... passed in 0.078s When I assign None to font.underline ... passed in 0.006s Then font.underline is None ... passed in 0.005s Scenario Outline: Change font underline -- @1.7 underline property values Given a font having single underline ... passed in 0.081s When I assign True to font.underline ... passed in 0.007s Then font.underline is True ... passed in 0.005s Scenario Outline: Change font underline -- @1.8 underline property values Given a font having single underline ... passed in 0.083s When I assign False to font.underline ... passed in 0.008s Then font.underline is False ... passed in 0.006s Scenario Outline: Change font underline -- @1.9 underline property values Given a font having single underline ... passed in 0.091s When I assign WD_UNDERLINE.SINGLE to font.underline ... passed in 0.008s Then font.underline is True ... passed in 0.006s Scenario Outline: Change font underline -- @1.10 underline property values Given a font having single underline ... passed in 0.110s When I assign WD_UNDERLINE.DOUBLE to font.underline ... passed in 0.009s Then font.underline is WD_UNDERLINE.DOUBLE ... passed in 0.007s Scenario Outline: Get font sub/superscript value -- @1.1 font sub/superscript values Given a font having inherited vertical alignment ... passed in 0.091s Then font.subscript is None ... passed in 0.006s And font.superscript is None ... passed in 0.006s Scenario Outline: Get font sub/superscript value -- @1.2 font sub/superscript values Given a font having subscript vertical alignment ... passed in 0.087s Then font.subscript is True ... passed in 0.007s And font.superscript is False ... passed in 0.007s Scenario Outline: Get font sub/superscript value -- @1.3 font sub/superscript values Given a font having superscript vertical alignment ... passed in 0.091s Then font.subscript is False ... passed in 0.006s And font.superscript is True ... passed in 0.006s Scenario Outline: Change font sub/superscript -- @1.1 value of sub/superscript after assignment Given a font having inherited vertical alignment ... passed in 0.097s When I assign True to font.subscript ... passed in 0.011s Then font.subscript is True ... passed in 0.008s Scenario Outline: Change font sub/superscript -- @1.2 value of sub/superscript after assignment Given a font having inherited vertical alignment ... passed in 0.093s When I assign True to font.subscript ... passed in 0.009s Then font.superscript is False ... passed in 0.006s Scenario Outline: Change font sub/superscript -- @1.3 value of sub/superscript after assignment Given a font having inherited vertical alignment ... passed in 0.094s When I assign False to font.subscript ... passed in 0.008s Then font.subscript is None ... passed in 0.006s Scenario Outline: Change font sub/superscript -- @1.4 value of sub/superscript after assignment Given a font having inherited vertical alignment ... passed in 0.092s When I assign True to font.superscript ... passed in 0.009s Then font.superscript is True ... passed in 0.006s Scenario Outline: Change font sub/superscript -- @1.5 value of sub/superscript after assignment Given a font having inherited vertical alignment ... passed in 0.113s When I assign True to font.superscript ... passed in 0.008s Then font.subscript is False ... passed in 0.006s Scenario Outline: Change font sub/superscript -- @1.6 value of sub/superscript after assignment Given a font having inherited vertical alignment ... passed in 0.150s When I assign False to font.superscript ... passed in 0.010s Then font.superscript is None ... passed in 0.007s Scenario Outline: Change font sub/superscript -- @1.7 value of sub/superscript after assignment Given a font having subscript vertical alignment ... passed in 0.095s When I assign True to font.subscript ... passed in 0.007s Then font.subscript is True ... passed in 0.006s Scenario Outline: Change font sub/superscript -- @1.8 value of sub/superscript after assignment Given a font having subscript vertical alignment ... passed in 0.093s When I assign False to font.subscript ... passed in 0.011s Then font.subscript is None ... passed in 0.009s Scenario Outline: Change font sub/superscript -- @1.9 value of sub/superscript after assignment Given a font having subscript vertical alignment ... passed in 0.113s When I assign None to font.subscript ... passed in 0.009s Then font.subscript is None ... passed in 0.007s Scenario Outline: Change font sub/superscript -- @1.10 value of sub/superscript after assignment Given a font having subscript vertical alignment ... passed in 0.106s When I assign True to font.superscript ... passed in 0.007s Then font.subscript is False ... passed in 0.007s Scenario Outline: Change font sub/superscript -- @1.11 value of sub/superscript after assignment Given a font having subscript vertical alignment ... passed in 0.103s When I assign False to font.superscript ... passed in 0.008s Then font.subscript is True ... passed in 0.007s Scenario Outline: Change font sub/superscript -- @1.12 value of sub/superscript after assignment Given a font having subscript vertical alignment ... passed in 0.087s When I assign None to font.superscript ... passed in 0.007s Then font.subscript is None ... passed in 0.007s Scenario Outline: Change font sub/superscript -- @1.13 value of sub/superscript after assignment Given a font having superscript vertical alignment ... passed in 0.083s When I assign True to font.superscript ... passed in 0.006s Then font.superscript is True ... passed in 0.006s Scenario Outline: Change font sub/superscript -- @1.14 value of sub/superscript after assignment Given a font having superscript vertical alignment ... passed in 0.081s When I assign False to font.superscript ... passed in 0.006s Then font.superscript is None ... passed in 0.005s Scenario Outline: Change font sub/superscript -- @1.15 value of sub/superscript after assignment Given a font having superscript vertical alignment ... passed in 0.109s When I assign None to font.superscript ... passed in 0.005s Then font.superscript is None ... passed in 0.005s Scenario Outline: Change font sub/superscript -- @1.16 value of sub/superscript after assignment Given a font having superscript vertical alignment ... passed in 0.080s When I assign True to font.subscript ... passed in 0.005s Then font.superscript is False ... passed in 0.005s Scenario Outline: Change font sub/superscript -- @1.17 value of sub/superscript after assignment Given a font having superscript vertical alignment ... passed in 0.080s When I assign False to font.subscript ... passed in 0.006s Then font.superscript is True ... passed in 0.006s Scenario Outline: Change font sub/superscript -- @1.18 value of sub/superscript after assignment Given a font having superscript vertical alignment ... passed in 0.081s When I assign None to font.subscript ... passed in 0.006s Then font.superscript is None ... passed in 0.005s Scenario Outline: Apply boolean property to a run -- @1.1 Boolean run properties Given a run ... passed in 0.199s When I assign True to its all_caps property ... passed in 0.004s Then the run appears in all_caps unconditionally ... passed in 0.006s Scenario Outline: Apply boolean property to a run -- @1.2 Boolean run properties Given a run ... passed in 0.194s When I assign True to its bold property ... passed in 0.014s Then the run appears in bold unconditionally ... passed in 0.006s Scenario Outline: Apply boolean property to a run -- @1.3 Boolean run properties Given a run ... passed in 0.198s When I assign True to its complex_script property ... passed in 0.004s Then the run appears in complex_script unconditionally ... passed in 0.004s Scenario Outline: Apply boolean property to a run -- @1.4 Boolean run properties Given a run ... passed in 0.195s When I assign True to its cs_bold property ... passed in 0.005s Then the run appears in cs_bold unconditionally ... passed in 0.005s Scenario Outline: Apply boolean property to a run -- @1.5 Boolean run properties Given a run ... passed in 0.310s When I assign True to its cs_italic property ... passed in 0.005s Then the run appears in cs_italic unconditionally ... passed in 0.004s Scenario Outline: Apply boolean property to a run -- @1.6 Boolean run properties Given a run ... passed in 0.214s When I assign True to its double_strike property ... passed in 0.007s Then the run appears in double_strike unconditionally ... passed in 0.007s Scenario Outline: Apply boolean property to a run -- @1.7 Boolean run properties Given a run ... passed in 0.228s When I assign True to its emboss property ... passed in 0.004s Then the run appears in emboss unconditionally ... passed in 0.004s Scenario Outline: Apply boolean property to a run -- @1.8 Boolean run properties Given a run ... passed in 0.192s When I assign True to its hidden property ... passed in 0.004s Then the run appears in hidden unconditionally ... passed in 0.004s Scenario Outline: Apply boolean property to a run -- @1.9 Boolean run properties Given a run ... passed in 0.208s When I assign True to its italic property ... passed in 0.009s Then the run appears in italic unconditionally ... passed in 0.005s Scenario Outline: Apply boolean property to a run -- @1.10 Boolean run properties Given a run ... passed in 0.343s When I assign True to its imprint property ... passed in 0.005s Then the run appears in imprint unconditionally ... passed in 0.004s Scenario Outline: Apply boolean property to a run -- @1.11 Boolean run properties Given a run ... passed in 0.362s When I assign True to its math property ... passed in 0.004s Then the run appears in math unconditionally ... passed in 0.004s Scenario Outline: Apply boolean property to a run -- @1.12 Boolean run properties Given a run ... passed in 0.555s When I assign True to its no_proof property ... passed in 0.004s Then the run appears in no_proof unconditionally ... passed in 0.004s Scenario Outline: Apply boolean property to a run -- @1.13 Boolean run properties Given a run ... passed in 0.208s When I assign True to its outline property ... passed in 0.004s Then the run appears in outline unconditionally ... passed in 0.004s Scenario Outline: Apply boolean property to a run -- @1.14 Boolean run properties Given a run ... passed in 0.203s When I assign True to its rtl property ... passed in 0.004s Then the run appears in rtl unconditionally ... passed in 0.004s Scenario Outline: Apply boolean property to a run -- @1.15 Boolean run properties Given a run ... passed in 0.203s When I assign True to its shadow property ... passed in 0.004s Then the run appears in shadow unconditionally ... passed in 0.004s Scenario Outline: Apply boolean property to a run -- @1.16 Boolean run properties Given a run ... passed in 0.198s When I assign True to its small_caps property ... passed in 0.004s Then the run appears in small_caps unconditionally ... passed in 0.005s Scenario Outline: Apply boolean property to a run -- @1.17 Boolean run properties Given a run ... passed in 0.229s When I assign True to its snap_to_grid property ... passed in 0.004s Then the run appears in snap_to_grid unconditionally ... passed in 0.004s Scenario Outline: Apply boolean property to a run -- @1.18 Boolean run properties Given a run ... passed in 0.192s When I assign True to its spec_vanish property ... passed in 0.003s Then the run appears in spec_vanish unconditionally ... passed in 0.003s Scenario Outline: Apply boolean property to a run -- @1.19 Boolean run properties Given a run ... passed in 0.181s When I assign True to its strike property ... passed in 0.003s Then the run appears in strike unconditionally ... passed in 0.003s Scenario Outline: Apply boolean property to a run -- @1.20 Boolean run properties Given a run ... passed in 0.383s When I assign True to its web_hidden property ... passed in 0.004s Then the run appears in web_hidden unconditionally ... passed in 0.003s Scenario Outline: Set all_caps off unconditionally -- @1.1 Boolean run properties Given a run ... passed in 0.183s When I assign False to its all_caps property ... passed in 0.004s Then the run appears without all_caps unconditionally ... passed in 0.004s Scenario Outline: Set bold off unconditionally -- @1.2 Boolean run properties Given a run ... passed in 0.179s When I assign False to its bold property ... passed in 0.008s Then the run appears without bold unconditionally ... passed in 0.005s Scenario Outline: Set complex_script off unconditionally -- @1.3 Boolean run properties Given a run ... passed in 0.175s When I assign False to its complex_script property ... passed in 0.003s Then the run appears without complex_script unconditionally ... passed in 0.003s Scenario Outline: Set cs_bold off unconditionally -- @1.4 Boolean run properties Given a run ... passed in 0.184s When I assign False to its cs_bold property ... passed in 0.003s Then the run appears without cs_bold unconditionally ... passed in 0.003s Scenario Outline: Set cs_italic off unconditionally -- @1.5 Boolean run properties Given a run ... passed in 0.182s When I assign False to its cs_italic property ... passed in 0.003s Then the run appears without cs_italic unconditionally ... passed in 0.004s Scenario Outline: Set double_strike off unconditionally -- @1.6 Boolean run properties Given a run ... passed in 0.189s When I assign False to its double_strike property ... passed in 0.004s Then the run appears without double_strike unconditionally ... passed in 0.003s Scenario Outline: Set emboss off unconditionally -- @1.7 Boolean run properties Given a run ... passed in 0.385s When I assign False to its emboss property ... passed in 0.004s Then the run appears without emboss unconditionally ... passed in 0.004s Scenario Outline: Set hidden off unconditionally -- @1.8 Boolean run properties Given a run ... passed in 0.189s When I assign False to its hidden property ... passed in 0.004s Then the run appears without hidden unconditionally ... passed in 0.004s Scenario Outline: Set italic off unconditionally -- @1.9 Boolean run properties Given a run ... passed in 0.187s When I assign False to its italic property ... passed in 0.008s Then the run appears without italic unconditionally ... passed in 0.005s Scenario Outline: Set imprint off unconditionally -- @1.10 Boolean run properties Given a run ... passed in 0.188s When I assign False to its imprint property ... passed in 0.003s Then the run appears without imprint unconditionally ... passed in 0.003s Scenario Outline: Set math off unconditionally -- @1.11 Boolean run properties Given a run ... passed in 0.232s When I assign False to its math property ... passed in 0.003s Then the run appears without math unconditionally ... passed in 0.003s Scenario Outline: Set no_proof off unconditionally -- @1.12 Boolean run properties Given a run ... passed in 0.182s When I assign False to its no_proof property ... passed in 0.004s Then the run appears without no_proof unconditionally ... passed in 0.003s Scenario Outline: Set outline off unconditionally -- @1.13 Boolean run properties Given a run ... passed in 0.185s When I assign False to its outline property ... passed in 0.004s Then the run appears without outline unconditionally ... passed in 0.004s Scenario Outline: Set rtl off unconditionally -- @1.14 Boolean run properties Given a run ... passed in 0.435s When I assign False to its rtl property ... passed in 0.007s Then the run appears without rtl unconditionally ... passed in 0.006s Scenario Outline: Set shadow off unconditionally -- @1.15 Boolean run properties Given a run ... passed in 0.392s When I assign False to its shadow property ... passed in 0.004s Then the run appears without shadow unconditionally ... passed in 0.004s Scenario Outline: Set small_caps off unconditionally -- @1.16 Boolean run properties Given a run ... passed in 0.191s When I assign False to its small_caps property ... passed in 0.004s Then the run appears without small_caps unconditionally ... passed in 0.004s Scenario Outline: Set snap_to_grid off unconditionally -- @1.17 Boolean run properties Given a run ... passed in 0.199s When I assign False to its snap_to_grid property ... passed in 0.005s Then the run appears without snap_to_grid unconditionally ... passed in 0.004s Scenario Outline: Set spec_vanish off unconditionally -- @1.18 Boolean run properties Given a run ... passed in 0.197s When I assign False to its spec_vanish property ... passed in 0.004s Then the run appears without spec_vanish unconditionally ... passed in 0.003s Scenario Outline: Set strike off unconditionally -- @1.19 Boolean run properties Given a run ... passed in 0.192s When I assign False to its strike property ... passed in 0.004s Then the run appears without strike unconditionally ... passed in 0.004s Scenario Outline: Set web_hidden off unconditionally -- @1.20 Boolean run properties Given a run ... passed in 0.188s When I assign False to its web_hidden property ... passed in 0.004s Then the run appears without web_hidden unconditionally ... passed in 0.004s Scenario Outline: Remove boolean property from a run -- @1.1 Boolean run properties Given a run having all_caps set on ... passed in 0.192s When I assign None to its all_caps property ... passed in 0.004s Then the run appears with its inherited all_caps setting ... passed in 0.005s Scenario Outline: Remove boolean property from a run -- @1.2 Boolean run properties Given a run having bold set on ... passed in 0.191s When I assign None to its bold property ... passed in 0.005s Then the run appears with its inherited bold setting ... passed in 0.005s Scenario Outline: Remove boolean property from a run -- @1.3 Boolean run properties Given a run having complex_script set on ... passed in 0.242s When I assign None to its complex_script property ... passed in 0.004s Then the run appears with its inherited complex_script setting ... passed in 0.004s Scenario Outline: Remove boolean property from a run -- @1.4 Boolean run properties Given a run having cs_bold set on ... passed in 0.190s When I assign None to its cs_bold property ... passed in 0.004s Then the run appears with its inherited cs_bold setting ... passed in 0.004s Scenario Outline: Remove boolean property from a run -- @1.5 Boolean run properties Given a run having cs_italic set on ... passed in 0.210s When I assign None to its cs_italic property ... passed in 0.004s Then the run appears with its inherited cs_italic setting ... passed in 0.004s Scenario Outline: Remove boolean property from a run -- @1.6 Boolean run properties Given a run having double_strike set on ... passed in 0.349s When I assign None to its double_strike property ... passed in 0.009s Then the run appears with its inherited double_strike setting ... passed in 0.009s Scenario Outline: Remove boolean property from a run -- @1.7 Boolean run properties Given a run having emboss set on ... passed in 0.416s When I assign None to its emboss property ... passed in 0.006s Then the run appears with its inherited emboss setting ... passed in 0.006s Scenario Outline: Remove boolean property from a run -- @1.8 Boolean run properties Given a run having hidden set on ... passed in 0.374s When I assign None to its hidden property ... passed in 0.010s Then the run appears with its inherited hidden setting ... passed in 0.010s Scenario Outline: Remove boolean property from a run -- @1.9 Boolean run properties Given a run having italic set on ... passed in 0.642s When I assign None to its italic property ... passed in 0.006s Then the run appears with its inherited italic setting ... passed in 0.006s Scenario Outline: Remove boolean property from a run -- @1.10 Boolean run properties Given a run having imprint set on ... passed in 0.607s When I assign None to its imprint property ... passed in 0.005s Then the run appears with its inherited imprint setting ... passed in 0.006s Scenario Outline: Remove boolean property from a run -- @1.11 Boolean run properties Given a run having math set on ... passed in 0.223s When I assign None to its math property ... passed in 0.005s Then the run appears with its inherited math setting ... passed in 0.004s Scenario Outline: Remove boolean property from a run -- @1.12 Boolean run properties Given a run having no_proof set on ... passed in 0.216s When I assign None to its no_proof property ... passed in 0.004s Then the run appears with its inherited no_proof setting ... passed in 0.006s Scenario Outline: Remove boolean property from a run -- @1.13 Boolean run properties Given a run having outline set on ... passed in 0.225s When I assign None to its outline property ... passed in 0.004s Then the run appears with its inherited outline setting ... passed in 0.004s Scenario Outline: Remove boolean property from a run -- @1.14 Boolean run properties Given a run having rtl set on ... passed in 0.203s When I assign None to its rtl property ... passed in 0.004s Then the run appears with its inherited rtl setting ... passed in 0.004s Scenario Outline: Remove boolean property from a run -- @1.15 Boolean run properties Given a run having shadow set on ... passed in 0.198s When I assign None to its shadow property ... passed in 0.004s Then the run appears with its inherited shadow setting ... passed in 0.003s Scenario Outline: Remove boolean property from a run -- @1.16 Boolean run properties Given a run having small_caps set on ... passed in 0.230s When I assign None to its small_caps property ... passed in 0.004s Then the run appears with its inherited small_caps setting ... passed in 0.004s 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.193s When I assign None to its snap_to_grid property ... passed in 0.004s Then the run appears with its inherited snap_to_grid setting ... passed in 0.004s Scenario Outline: Remove boolean property from a run -- @1.18 Boolean run properties Given a run having spec_vanish set on ... passed in 0.470s When I assign None to its spec_vanish property ... passed in 0.004s Then the run appears with its inherited spec_vanish setting ... passed in 0.004s Scenario Outline: Remove boolean property from a run -- @1.19 Boolean run properties Given a run having strike set on ... passed in 0.202s When I assign None to its strike property ... passed in 0.004s Then the run appears with its inherited strike setting ... passed in 0.004s Scenario Outline: Remove boolean property from a run -- @1.20 Boolean run properties Given a run having web_hidden set on ... passed in 0.186s When I assign None to its web_hidden property ... passed in 0.004s Then the run appears with its inherited web_hidden setting ... passed in 0.004s Feature: Get or set paragraph formatting properties Scenario: Get tab stops Given a paragraph format ... passed in 0.063s Then paragraph_format.tab_stops is a TabStops object ... passed in 0.007s Scenario Outline: Get paragraph alignment -- @1.1 paragraph_format.alignment values Given a paragraph format having inherited alignment ... passed in 0.065s Then paragraph_format.alignment is None ... passed in 0.005s Scenario Outline: Get paragraph alignment -- @1.2 paragraph_format.alignment values Given a paragraph format having center alignment ... passed in 0.059s Then paragraph_format.alignment is WD_ALIGN_PARAGRAPH.CENTER ... passed in 0.006s Scenario Outline: Get paragraph alignment -- @1.3 paragraph_format.alignment values Given a paragraph format having right alignment ... passed in 0.062s Then paragraph_format.alignment is WD_ALIGN_PARAGRAPH.RIGHT ... passed in 0.005s Scenario Outline: Set paragraph alignment -- @1.1 paragraph_format.alignment assignment results Given a paragraph format having inherited alignment ... passed in 0.149s When I assign WD_ALIGN_PARAGRAPH.CENTER to paragraph_format.alignment ... passed in 0.010s Then paragraph_format.alignment is WD_ALIGN_PARAGRAPH.CENTER ... passed in 0.005s Scenario Outline: Set paragraph alignment -- @1.2 paragraph_format.alignment assignment results Given a paragraph format having center alignment ... passed in 0.062s When I assign WD_ALIGN_PARAGRAPH.RIGHT to paragraph_format.alignment ... passed in 0.005s Then paragraph_format.alignment is WD_ALIGN_PARAGRAPH.RIGHT ... passed in 0.005s Scenario Outline: Set paragraph alignment -- @1.3 paragraph_format.alignment assignment results Given a paragraph format having right alignment ... passed in 0.060s When I assign None to paragraph_format.alignment ... passed in 0.005s Then paragraph_format.alignment is None ... passed in 0.005s Scenario Outline: Get paragraph spacing -- @1.1 paragraph_format spacing values Given a paragraph format having inherited space before ... passed in 0.059s Then paragraph_format.space_before is None ... passed in 0.004s Scenario Outline: Get paragraph spacing -- @1.2 paragraph_format spacing values Given a paragraph format having 24 pt space before ... passed in 0.056s Then paragraph_format.space_before is 304800 ... passed in 0.005s Scenario Outline: Get paragraph spacing -- @1.3 paragraph_format spacing values Given a paragraph format having inherited space after ... passed in 0.056s Then paragraph_format.space_after is None ... passed in 0.004s Scenario Outline: Get paragraph spacing -- @1.4 paragraph_format spacing values Given a paragraph format having 42 pt space after ... passed in 0.062s Then paragraph_format.space_after is 533400 ... passed in 0.006s Scenario Outline: Set paragraph spacing -- @1.1 paragraph_format spacing assignment results Given a paragraph format having inherited space before ... passed in 0.060s When I assign Pt(12) to paragraph_format.space_before ... passed in 0.009s Then paragraph_format.space_before is 152400 ... passed in 0.005s Scenario Outline: Set paragraph spacing -- @1.2 paragraph_format spacing assignment results Given a paragraph format having 24 pt space before ... passed in 0.059s When I assign Pt(18) to paragraph_format.space_before ... passed in 0.006s Then paragraph_format.space_before is 228600 ... passed in 0.005s Scenario Outline: Set paragraph spacing -- @1.3 paragraph_format spacing assignment results Given a paragraph format having 24 pt space before ... passed in 0.068s When I assign None to paragraph_format.space_before ... passed in 0.011s Then paragraph_format.space_before is None ... passed in 0.009s Scenario Outline: Set paragraph spacing -- @1.4 paragraph_format spacing assignment results Given a paragraph format having inherited space after ... passed in 0.068s When I assign Pt(12) to paragraph_format.space_after ... passed in 0.009s Then paragraph_format.space_after is 152400 ... passed in 0.006s Scenario Outline: Set paragraph spacing -- @1.5 paragraph_format spacing assignment results Given a paragraph format having 42 pt space after ... passed in 0.063s When I assign Pt(18) to paragraph_format.space_after ... passed in 0.007s Then paragraph_format.space_after is 228600 ... passed in 0.006s Scenario Outline: Set paragraph spacing -- @1.6 paragraph_format spacing assignment results Given a paragraph format having 42 pt space after ... passed in 0.061s When I assign None to paragraph_format.space_after ... passed in 0.005s Then paragraph_format.space_after is None ... passed in 0.005s Scenario Outline: Get line spacing -- @1.1 paragraph_format.line_spacing values Given a paragraph format having inherited line spacing ... passed in 0.081s Then paragraph_format.line_spacing is None ... passed in 0.005s Then paragraph_format.line_spacing_rule is None ... passed in 0.004s Scenario Outline: Get line spacing -- @1.2 paragraph_format.line_spacing values Given a paragraph format having 14 pt line spacing ... passed in 0.066s Then paragraph_format.line_spacing is 177800 ... passed in 0.013s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.EXACTLY ... passed in 0.013s Scenario Outline: Get line spacing -- @1.3 paragraph_format.line_spacing values Given a paragraph format having double line spacing ... passed in 0.143s Then paragraph_format.line_spacing is 2.0 ... passed in 0.014s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.DOUBLE ... passed in 0.007s Scenario Outline: Set line spacing -- @1.1 paragraph_format.line_spacing assignment results Given a paragraph format having inherited line spacing ... passed in 0.061s When I assign Pt(14) to paragraph_format.line_spacing ... passed in 0.010s Then paragraph_format.line_spacing is 177800 ... passed in 0.005s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.EXACTLY ... passed in 0.005s 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.060s When I assign 2 to paragraph_format.line_spacing ... passed in 0.006s Then paragraph_format.line_spacing is 2.0 ... passed in 0.005s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.DOUBLE ... passed in 0.005s Scenario Outline: Set line spacing -- @1.3 paragraph_format.line_spacing assignment results Given a paragraph format having double line spacing ... passed in 0.068s When I assign 1.75 to paragraph_format.line_spacing ... passed in 0.007s Then paragraph_format.line_spacing is 1.75 ... passed in 0.006s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.MULTIPLE ... passed in 0.005s Scenario Outline: Set line spacing -- @1.4 paragraph_format.line_spacing assignment results Given a paragraph format having inherited line spacing ... passed in 0.063s When I assign 1.0 to paragraph_format.line_spacing ... passed in 0.010s Then paragraph_format.line_spacing is 1.0 ... passed in 0.006s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.SINGLE ... passed in 0.006s 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.078s When I assign 1.5 to paragraph_format.line_spacing ... passed in 0.007s Then paragraph_format.line_spacing is 1.5 ... passed in 0.006s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.ONE_POINT_FIVE ... passed in 0.006s 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.064s When I assign WD_LINE_SPACING.DOUBLE to paragraph_format.line_spacing_rule ... passed in 0.006s Then paragraph_format.line_spacing is 2.0 ... passed in 0.006s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.DOUBLE ... passed in 0.006s 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.062s When I assign WD_LINE_SPACING.SINGLE to paragraph_format.line_spacing_rule ... passed in 0.006s Then paragraph_format.line_spacing is 1.0 ... passed in 0.005s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.SINGLE ... passed in 0.005s 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.068s When I assign WD_LINE_SPACING.AT_LEAST to paragraph_format.line_spacing_rule ... passed in 0.005s Then paragraph_format.line_spacing is 177800 ... passed in 0.005s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.AT_LEAST ... passed in 0.006s 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.060s When I assign None to paragraph_format.line_spacing_rule ... passed in 0.005s Then paragraph_format.line_spacing is 1.1666 ... passed in 0.006s Then paragraph_format.line_spacing_rule is WD_LINE_SPACING.MULTIPLE ... passed in 0.006s Scenario Outline: Get paragraph indents -- @1.1 paragraph_format indent values Given a paragraph format having first_line indent of inherit ... passed in 0.074s Then paragraph_format.first_line_indent is None ... passed in 0.005s 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.063s Then paragraph_format.first_line_indent is 228600 ... passed in 0.005s 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.062s Then paragraph_format.first_line_indent is -219710 ... passed in 0.005s Scenario Outline: Get paragraph indents -- @1.4 paragraph_format indent values Given a paragraph format having left indent of inherit ... passed in 0.063s Then paragraph_format.left_indent is None ... passed in 0.006s 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.072s Then paragraph_format.left_indent is 585470 ... passed in 0.005s Scenario Outline: Get paragraph indents -- @1.6 paragraph_format indent values Given a paragraph format having right indent of inherit ... passed in 0.063s Then paragraph_format.right_indent is None ... passed in 0.005s 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.065s Then paragraph_format.right_indent is 219710 ... passed in 0.005s 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.069s When I assign 18 pt to paragraph_format.first_line_indent ... passed in 0.009s Then paragraph_format.first_line_indent is 228600 ... passed in 0.006s 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.063s When I assign -18 pt to paragraph_format.first_line_indent ... passed in 0.006s Then paragraph_format.first_line_indent is -228600 ... passed in 0.005s 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.061s When I assign None to paragraph_format.first_line_indent ... passed in 0.006s Then paragraph_format.first_line_indent is None ... passed in 0.005s Scenario Outline: Set paragraph indents -- @1.4 paragraph_format indent assignment results Given a paragraph format having left indent of inherit ... passed in 0.063s When I assign 36 pt to paragraph_format.left_indent ... passed in 0.008s Then paragraph_format.left_indent is 457200 ... passed in 0.005s 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.063s When I assign -12 pt to paragraph_format.left_indent ... passed in 0.006s Then paragraph_format.left_indent is -152400 ... passed in 0.005s 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.062s When I assign None to paragraph_format.left_indent ... passed in 0.005s Then paragraph_format.left_indent is None ... passed in 0.005s Scenario Outline: Set paragraph indents -- @1.7 paragraph_format indent assignment results Given a paragraph format having right indent of inherit ... passed in 0.059s When I assign 24 pt to paragraph_format.right_indent ... passed in 0.008s Then paragraph_format.right_indent is 304800 ... passed in 0.005s 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.057s When I assign -6 pt to paragraph_format.right_indent ... passed in 0.005s Then paragraph_format.right_indent is -76200 ... passed in 0.006s 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.073s When I assign None to paragraph_format.right_indent ... passed in 0.005s Then paragraph_format.right_indent is None ... passed in 0.005s 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.066s Then paragraph_format.keep_together is None ... passed in 0.005s 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.065s Then paragraph_format.keep_together is True ... passed in 0.007s 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.066s Then paragraph_format.keep_together is False ... passed in 0.005s 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.063s Then paragraph_format.keep_with_next is None ... passed in 0.005s 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.074s Then paragraph_format.keep_with_next is True ... passed in 0.005s 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.066s Then paragraph_format.keep_with_next is False ... passed in 0.005s 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.065s Then paragraph_format.page_break_before is None ... passed in 0.005s 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.061s Then paragraph_format.page_break_before is True ... passed in 0.006s 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.060s Then paragraph_format.page_break_before is False ... passed in 0.005s 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.062s Then paragraph_format.widow_control is None ... passed in 0.004s 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.065s Then paragraph_format.widow_control is True ... passed in 0.005s 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.064s Then paragraph_format.widow_control is False ... passed in 0.005s 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.065s When I assign True to paragraph_format.keep_together ... passed in 0.012s Then paragraph_format.keep_together is True ... passed in 0.005s 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.062s When I assign False to paragraph_format.keep_together ... passed in 0.005s Then paragraph_format.keep_together is False ... passed in 0.005s 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.060s When I assign None to paragraph_format.keep_together ... passed in 0.005s Then paragraph_format.keep_together is None ... passed in 0.006s 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.063s When I assign False to paragraph_format.keep_with_next ... passed in 0.010s Then paragraph_format.keep_with_next is False ... passed in 0.006s 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.064s When I assign True to paragraph_format.keep_with_next ... passed in 0.005s Then paragraph_format.keep_with_next is True ... passed in 0.005s 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.057s When I assign None to paragraph_format.keep_with_next ... passed in 0.005s Then paragraph_format.keep_with_next is None ... passed in 0.005s 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.071s When I assign True to paragraph_format.page_break_before ... passed in 0.009s Then paragraph_format.page_break_before is True ... passed in 0.005s 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.061s When I assign False to paragraph_format.page_break_before ... passed in 0.005s Then paragraph_format.page_break_before is False ... passed in 0.005s 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.061s When I assign None to paragraph_format.page_break_before ... passed in 0.005s Then paragraph_format.page_break_before is None ... passed in 0.005s 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.060s When I assign False to paragraph_format.widow_control ... passed in 0.009s Then paragraph_format.widow_control is False ... passed in 0.005s 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.059s When I assign True to paragraph_format.widow_control ... passed in 0.005s Then paragraph_format.widow_control is True ... passed in 0.005s 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.062s When I assign None to paragraph_format.widow_control ... passed in 0.006s Then paragraph_format.widow_control is None ... passed in 0.006s 63 features passed, 0 failed, 0 skipped 621 scenarios passed, 0 failed, 0 skipped 1772 steps passed, 0 failed, 0 skipped, 0 undefined Took 1m12.492s ++ find . -type f -name 'ISO*.pdf' + banned= + '[' -n '' ']' + '[' -e ref ']' + RPM_EC=0 ++ jobs -p + exit 0 Processing files: python3-docx-1.1.0-1.fc40.noarch Provides: python-docx = 1.1.0-1.fc40 python3-docx = 1.1.0-1.fc40 python3.12-docx = 1.1.0-1.fc40 python3.12dist(python-docx) = 1.1 python3dist(python-docx) = 1.1 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.12 python3.12dist(lxml) >= 3.1 python3.12dist(typing-extensions) Processing files: python-docx-doc-1.1.0-1.fc40.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.3SoD4O + umask 022 + cd /builddir/build/BUILD + cd python-docx-1.1.0 + DOCDIR=/builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/share/doc/python-docx-doc + export LC_ALL= + LC_ALL= + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/share/doc/python-docx-doc + cp -pr /builddir/build/BUILD/python-docx-1.1.0/HISTORY.rst /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/share/doc/python-docx-doc + cp -pr /builddir/build/BUILD/python-docx-1.1.0/README.md /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/share/doc/python-docx-doc + cp -pr /builddir/build/BUILD/python-docx-1.1.0/docs/.build/latex/python-docx.pdf /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/share/doc/python-docx-doc + RPM_EC=0 ++ jobs -p + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.VWUxGX + umask 022 + cd /builddir/build/BUILD + cd python-docx-1.1.0 + LICENSEDIR=/builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/share/licenses/python-docx-doc + export LC_ALL= + LC_ALL= + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/share/licenses/python-docx-doc + cp -pr /builddir/build/BUILD/python-docx-1.1.0/LICENSE /builddir/build/BUILDROOT/python-docx-1.1.0-1.fc40.noarch/usr/share/licenses/python-docx-doc + RPM_EC=0 ++ jobs -p + exit 0 Provides: python-docx-doc = 1.1.0-1.fc40 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/BUILDROOT/python-docx-1.1.0-1.fc40.noarch Wrote: /builddir/build/SRPMS/python-docx-1.1.0-1.fc40.src.rpm Wrote: /builddir/build/RPMS/python-docx-doc-1.1.0-1.fc40.noarch.rpm Wrote: /builddir/build/RPMS/python3-docx-1.1.0-1.fc40.noarch.rpm Child return code was: 0