Skip to content

Pygments 2.10 tets failures #134

@hroncok

Description

@hroncok

Describe the problem

Hello,
in Fedora, we want to update Pygments to 2.10, but we see some test failures in sphinx-tabs.

Link to your repository or website

No response

Steps to reproduce

First, I've edited tox.ini to add py39.

$ tox -e py39-sphinx4
GLOB sdist-make: .../sphinx-tabs/setup.py
py39-sphinx4 inst-nodeps: .../sphinx-tabs/.tox/.tmp/package/1/sphinx-tabs-3.2.0.zip
py39-sphinx4 installed: alabaster==0.7.12,appdirs==1.4.4,atomicwrites==1.4.0,attrs==21.2.0,Babel==2.9.1,beautifulsoup4==4.9.3,bs4==0.0.1,certifi==2021.5.30,charset-normalizer==2.0.4,commonmark==0.9.1,coverage==5.5,docutils==0.16,idna==3.2,imagesize==1.2.0,Jinja2==3.0.1,MarkupSafe==2.0.1,more-itertools==8.8.0,packaging==21.0,pluggy==0.13.1,py==1.10.0,Pygments==2.10.0,pyparsing==2.4.7,pytest==3.10.1,pytest-cov==2.9.0,pytest-datadir==1.3.1,pytest-regressions==2.2.0,pytz==2021.1,PyYAML==5.4.1,recommonmark==0.7.1,requests==2.26.0,rinoh-typeface-dejavuserif==0.1.3,rinoh-typeface-texgyrecursor==0.1.1,rinoh-typeface-texgyreheros==0.1.1,rinoh-typeface-texgyrepagella==0.1.1,rinohtype==0.5.3,six==1.16.0,snowballstemmer==2.1.0,soupsieve==2.2.1,Sphinx==4.1.2,sphinx-tabs @ file://.../sphinx-tabs/.tox/.tmp/package/1/sphinx-tabs-3.2.0.zip,sphinx-testing==1.0.1,sphinxcontrib-applehelp==1.0.2,sphinxcontrib-devhelp==1.0.2,sphinxcontrib-htmlhelp==2.0.0,sphinxcontrib-jsmath==1.0.1,sphinxcontrib-qthelp==1.0.3,sphinxcontrib-serializinghtml==1.1.5,urllib3==1.26.6
py39-sphinx4 run-test-pre: PYTHONHASHSEED='3917563027'
py39-sphinx4 run-test: commands[0] | pytest
============================= test session starts ==============================
platform linux -- Python 3.9.6, pytest-3.10.1, py-1.10.0, pluggy-0.13.1
rootdir: .../sphinx-tabs, inifile:
plugins: datadir-1.3.1, cov-2.9.0, regressions-2.2.0
collected 15 items

tests/test_build.py ..EEE.FFsE.....                                      [100%]

==================================== ERRORS ====================================
_______________ ERROR at setup of test_conditional_assets[index] _______________

app = <SphinxTestApp buildername='html'>
status = <_io.StringIO object at 0x7f8ebb916430>
warning = <_io.StringIO object at 0x7f8ebb916f70>
check_build_success = <function check_build_success.<locals>.check at 0x7f8ebb8b34c0>
get_sphinx_app_doctree = <function get_sphinx_app_doctree.<locals>.read at 0x7f8ebb8b31f0>
regress_sphinx_app_output = <function regress_sphinx_app_output.<locals>.read at 0x7f8ebb8b3040>
request = <SubRequest 'auto_build_and_check' for <Function 'test_conditional_assets[index]'>>

    @pytest.fixture(autouse=True)
    def auto_build_and_check(
        app,
        status,
        warning,
        check_build_success,
        get_sphinx_app_doctree,
        regress_sphinx_app_output,
        request,
    ):
        """
        Build and check build success and output regressions.
        Currently all tests start with this.
        Disable using a `noautobuild` mark.
        """
        if "noautobuild" in request.keywords:
            return
        app.build()
        check_build_success(status, warning)
        get_sphinx_app_doctree(app, regress=True)
>       regress_sphinx_app_output(app)

tests/conftest.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

app = <SphinxTestApp buildername='html'>, buildername = 'html'
filename = 'index.html', encoding = 'utf-8', replace = None

    def read(
        app, buildername="html", filename="index.html", encoding="utf-8", replace=None
    ):
        content = get_sphinx_app_output(app, buildername, filename, encoding)
    
        if buildername == "html":
            soup = BeautifulSoup(content, "html.parser")
            doc_div = soup.findAll("div", {"class": "documentwrapper"})[0]
            doc = doc_div.prettify()
            for find, rep in (replace or {}).items():
                doc = text.replace(find, rep)
        else:
            doc = content
>       file_regression.check(
            doc, extension="." + filename.split(".")[-1], encoding="utf8"
        )
E       AssertionError: FILES DIFFER:
E       /tmp/pytest-of-churchyard/pytest-12/test_conditional_assets_index_0/test_build/test_conditional_assets_index_.html
E       /tmp/pytest-of-churchyard/pytest-12/test_conditional_assets_index_0/test_build/test_conditional_assets_index_.obtained.html
E       HTML DIFF: /tmp/pytest-of-churchyard/pytest-12/test_conditional_assets_index_0/test_build/test_conditional_assets_index_.obtained.diff.html
E       --- 
E       +++ 
E       @@ -110,7 +110,7 @@
E             <div aria-labelledby="tab-2-Qw==" class="sphinx-tabs-panel code-tab group-tab" id="panel-2-Qw==" name="Qw==" role="tabpanel" tabindex="0">
E              <div class="highlight-c notranslate">
E               <div class="highlight">
E       -        <pre><span></span><span class="n">C</span> <span class="n">Main</span> <span class="n">Function</span>
E       +        <pre><span></span><span class="n">C</span><span class="w"> </span><span class="n">Main</span><span class="w"> </span><span class="n">Function</span><span class="w"></span>
E        </pre>
E               </div>
E              </div>
E       @@ -118,7 +118,7 @@
E             <div aria-labelledby="tab-2-Qysr" class="sphinx-tabs-panel code-tab group-tab" hidden="true" id="panel-2-Qysr" name="Qysr" role="tabpanel" tabindex="0">
E              <div class="highlight-c++ notranslate">
E               <div class="highlight">
E       -        <pre><span></span><span class="n">C</span><span class="o">++</span> <span class="n">Main</span> <span class="n">Function</span>
E       +        <pre><span></span><span class="n">C</span><span class="o">++</span><span class="w"> </span><span class="n">Main</span><span class="w"> </span><span class="n">Function</span><span class="w"></span>
E        </pre>
E               </div>
E              </div>
E       @@ -180,9 +180,9 @@
E             <div aria-labelledby="tab-3-Qw==" class="sphinx-tabs-panel code-tab group-tab" id="panel-3-Qw==" name="Qw==" role="tabpanel" tabindex="0">
E              <div class="highlight-c notranslate">
E               <div class="highlight">
E       -        <pre><span></span><span class="kt">int</span> <span class="nf">main</span><span class="p">(</span><span class="k">const</span> <span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">**</span><span class="n">argv</span><span class="p">)</span> <span class="p">{</span>
E       -  <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
E       -<span class="p">}</span>
E       +        <pre><span></span><span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">**</span><span class="n">argv</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
E       +<span class="w">  </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"></span>
E       +<span class="p">}</span><span class="w"></span>
E        </pre>
E               </div>
E              </div>
E       @@ -190,9 +190,9 @@
E             <div aria-labelledby="tab-3-Qysr" class="sphinx-tabs-panel code-tab group-tab" hidden="true" id="panel-3-Qysr" name="Qysr" role="tabpanel" tabindex="0">
E              <div class="highlight-c++ notranslate">
E               <div class="highlight">
E       -        <pre><span></span><span class="kt">int</span> <span class="nf">main</span><span class="p">(</span><span class="k">const</span> <span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">**</span><span class="n">argv</span><span class="p">)</span> <span class="p">{</span>
E       -  <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
E       -<span class="p">}</span>
E       +        <pre><span></span><span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">**</span><span class="n">argv</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
E       +<span class="w">  </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"></span>
E       +<span class="p">}</span><span class="w"></span>
E        </pre>
E               </div>
E              </div>

tests/conftest.py:91: AssertionError
_____________ ERROR at setup of test_conditional_assets[no_tabs1] ______________

app = <SphinxTestApp buildername='html'>
status = <_io.StringIO object at 0x7f8ebb8fc160>
warning = <_io.StringIO object at 0x7f8ebb8fc4c0>
check_build_success = <function check_build_success.<locals>.check at 0x7f8ebb9d5820>
get_sphinx_app_doctree = <function get_sphinx_app_doctree.<locals>.read at 0x7f8ebb9d5700>
regress_sphinx_app_output = <function regress_sphinx_app_output.<locals>.read at 0x7f8ebb9d55e0>
request = <SubRequest 'auto_build_and_check' for <Function 'test_conditional_assets[no_tabs1]'>>

    @pytest.fixture(autouse=True)
    def auto_build_and_check(
        app,
        status,
        warning,
        check_build_success,
        get_sphinx_app_doctree,
        regress_sphinx_app_output,
        request,
    ):
        """
        Build and check build success and output regressions.
        Currently all tests start with this.
        Disable using a `noautobuild` mark.
        """
        if "noautobuild" in request.keywords:
            return
        app.build()
        check_build_success(status, warning)
        get_sphinx_app_doctree(app, regress=True)
>       regress_sphinx_app_output(app)

tests/conftest.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

app = <SphinxTestApp buildername='html'>, buildername = 'html'
filename = 'index.html', encoding = 'utf-8', replace = None

    def read(
        app, buildername="html", filename="index.html", encoding="utf-8", replace=None
    ):
        content = get_sphinx_app_output(app, buildername, filename, encoding)
    
        if buildername == "html":
            soup = BeautifulSoup(content, "html.parser")
            doc_div = soup.findAll("div", {"class": "documentwrapper"})[0]
            doc = doc_div.prettify()
            for find, rep in (replace or {}).items():
                doc = text.replace(find, rep)
        else:
            doc = content
>       file_regression.check(
            doc, extension="." + filename.split(".")[-1], encoding="utf8"
        )
E       AssertionError: FILES DIFFER:
E       /tmp/pytest-of-churchyard/pytest-12/test_conditional_assets_no_tab0/test_build/test_conditional_assets_no_tabs1_.html
E       /tmp/pytest-of-churchyard/pytest-12/test_conditional_assets_no_tab0/test_build/test_conditional_assets_no_tabs1_.obtained.html
E       HTML DIFF: /tmp/pytest-of-churchyard/pytest-12/test_conditional_assets_no_tab0/test_build/test_conditional_assets_no_tabs1_.obtained.diff.html
E       --- 
E       +++ 
E       @@ -110,7 +110,7 @@
E             <div aria-labelledby="tab-2-Qw==" class="sphinx-tabs-panel code-tab group-tab" id="panel-2-Qw==" name="Qw==" role="tabpanel" tabindex="0">
E              <div class="highlight-c notranslate">
E               <div class="highlight">
E       -        <pre><span></span><span class="n">C</span> <span class="n">Main</span> <span class="n">Function</span>
E       +        <pre><span></span><span class="n">C</span><span class="w"> </span><span class="n">Main</span><span class="w"> </span><span class="n">Function</span><span class="w"></span>
E        </pre>
E               </div>
E              </div>
E       @@ -118,7 +118,7 @@
E             <div aria-labelledby="tab-2-Qysr" class="sphinx-tabs-panel code-tab group-tab" hidden="true" id="panel-2-Qysr" name="Qysr" role="tabpanel" tabindex="0">
E              <div class="highlight-c++ notranslate">
E               <div class="highlight">
E       -        <pre><span></span><span class="n">C</span><span class="o">++</span> <span class="n">Main</span> <span class="n">Function</span>
E       +        <pre><span></span><span class="n">C</span><span class="o">++</span><span class="w"> </span><span class="n">Main</span><span class="w"> </span><span class="n">Function</span><span class="w"></span>
E        </pre>
E               </div>
E              </div>
E       @@ -180,9 +180,9 @@
E             <div aria-labelledby="tab-3-Qw==" class="sphinx-tabs-panel code-tab group-tab" id="panel-3-Qw==" name="Qw==" role="tabpanel" tabindex="0">
E              <div class="highlight-c notranslate">
E               <div class="highlight">
E       -        <pre><span></span><span class="kt">int</span> <span class="nf">main</span><span class="p">(</span><span class="k">const</span> <span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">**</span><span class="n">argv</span><span class="p">)</span> <span class="p">{</span>
E       -  <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
E       -<span class="p">}</span>
E       +        <pre><span></span><span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">**</span><span class="n">argv</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
E       +<span class="w">  </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"></span>
E       +<span class="p">}</span><span class="w"></span>
E        </pre>
E               </div>
E              </div>
E       @@ -190,9 +190,9 @@
E             <div aria-labelledby="tab-3-Qysr" class="sphinx-tabs-panel code-tab group-tab" hidden="true" id="panel-3-Qysr" name="Qysr" role="tabpanel" tabindex="0">
E              <div class="highlight-c++ notranslate">
E               <div class="highlight">
E       -        <pre><span></span><span class="kt">int</span> <span class="nf">main</span><span class="p">(</span><span class="k">const</span> <span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">**</span><span class="n">argv</span><span class="p">)</span> <span class="p">{</span>
E       -  <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
E       -<span class="p">}</span>
E       +        <pre><span></span><span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">**</span><span class="n">argv</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
E       +<span class="w">  </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"></span>
E       +<span class="p">}</span><span class="w"></span>
E        </pre>
E               </div>
E              </div>

tests/conftest.py:91: AssertionError
_____________ ERROR at setup of test_conditional_assets[no_tabs2] ______________

app = <SphinxTestApp buildername='html'>
status = <_io.StringIO object at 0x7f8ebc01c160>
warning = <_io.StringIO object at 0x7f8ebc090550>
check_build_success = <function check_build_success.<locals>.check at 0x7f8ebba39ca0>
get_sphinx_app_doctree = <function get_sphinx_app_doctree.<locals>.read at 0x7f8ebba39f70>
regress_sphinx_app_output = <function regress_sphinx_app_output.<locals>.read at 0x7f8ebba398b0>
request = <SubRequest 'auto_build_and_check' for <Function 'test_conditional_assets[no_tabs2]'>>

    @pytest.fixture(autouse=True)
    def auto_build_and_check(
        app,
        status,
        warning,
        check_build_success,
        get_sphinx_app_doctree,
        regress_sphinx_app_output,
        request,
    ):
        """
        Build and check build success and output regressions.
        Currently all tests start with this.
        Disable using a `noautobuild` mark.
        """
        if "noautobuild" in request.keywords:
            return
        app.build()
        check_build_success(status, warning)
        get_sphinx_app_doctree(app, regress=True)
>       regress_sphinx_app_output(app)

tests/conftest.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

app = <SphinxTestApp buildername='html'>, buildername = 'html'
filename = 'index.html', encoding = 'utf-8', replace = None

    def read(
        app, buildername="html", filename="index.html", encoding="utf-8", replace=None
    ):
        content = get_sphinx_app_output(app, buildername, filename, encoding)
    
        if buildername == "html":
            soup = BeautifulSoup(content, "html.parser")
            doc_div = soup.findAll("div", {"class": "documentwrapper"})[0]
            doc = doc_div.prettify()
            for find, rep in (replace or {}).items():
                doc = text.replace(find, rep)
        else:
            doc = content
>       file_regression.check(
            doc, extension="." + filename.split(".")[-1], encoding="utf8"
        )
E       AssertionError: FILES DIFFER:
E       /tmp/pytest-of-churchyard/pytest-12/test_conditional_assets_no_tab1/test_build/test_conditional_assets_no_tabs2_.html
E       /tmp/pytest-of-churchyard/pytest-12/test_conditional_assets_no_tab1/test_build/test_conditional_assets_no_tabs2_.obtained.html
E       HTML DIFF: /tmp/pytest-of-churchyard/pytest-12/test_conditional_assets_no_tab1/test_build/test_conditional_assets_no_tabs2_.obtained.diff.html
E       --- 
E       +++ 
E       @@ -110,7 +110,7 @@
E             <div aria-labelledby="tab-2-Qw==" class="sphinx-tabs-panel code-tab group-tab" id="panel-2-Qw==" name="Qw==" role="tabpanel" tabindex="0">
E              <div class="highlight-c notranslate">
E               <div class="highlight">
E       -        <pre><span></span><span class="n">C</span> <span class="n">Main</span> <span class="n">Function</span>
E       +        <pre><span></span><span class="n">C</span><span class="w"> </span><span class="n">Main</span><span class="w"> </span><span class="n">Function</span><span class="w"></span>
E        </pre>
E               </div>
E              </div>
E       @@ -118,7 +118,7 @@
E             <div aria-labelledby="tab-2-Qysr" class="sphinx-tabs-panel code-tab group-tab" hidden="true" id="panel-2-Qysr" name="Qysr" role="tabpanel" tabindex="0">
E              <div class="highlight-c++ notranslate">
E               <div class="highlight">
E       -        <pre><span></span><span class="n">C</span><span class="o">++</span> <span class="n">Main</span> <span class="n">Function</span>
E       +        <pre><span></span><span class="n">C</span><span class="o">++</span><span class="w"> </span><span class="n">Main</span><span class="w"> </span><span class="n">Function</span><span class="w"></span>
E        </pre>
E               </div>
E              </div>
E       @@ -180,9 +180,9 @@
E             <div aria-labelledby="tab-3-Qw==" class="sphinx-tabs-panel code-tab group-tab" id="panel-3-Qw==" name="Qw==" role="tabpanel" tabindex="0">
E              <div class="highlight-c notranslate">
E               <div class="highlight">
E       -        <pre><span></span><span class="kt">int</span> <span class="nf">main</span><span class="p">(</span><span class="k">const</span> <span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">**</span><span class="n">argv</span><span class="p">)</span> <span class="p">{</span>
E       -  <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
E       -<span class="p">}</span>
E       +        <pre><span></span><span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">**</span><span class="n">argv</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
E       +<span class="w">  </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"></span>
E       +<span class="p">}</span><span class="w"></span>
E        </pre>
E               </div>
E              </div>
E       @@ -190,9 +190,9 @@
E             <div aria-labelledby="tab-3-Qysr" class="sphinx-tabs-panel code-tab group-tab" hidden="true" id="panel-3-Qysr" name="Qysr" role="tabpanel" tabindex="0">
E              <div class="highlight-c++ notranslate">
E               <div class="highlight">
E       -        <pre><span></span><span class="kt">int</span> <span class="nf">main</span><span class="p">(</span><span class="k">const</span> <span class="kt">int</span> <span class="n">argc</span><span class="p">,</span> <span class="k">const</span> <span class="kt">char</span> <span class="o">**</span><span class="n">argv</span><span class="p">)</span> <span class="p">{</span>
E       -  <span class="k">return</span> <span class="mi">0</span><span class="p">;</span>
E       -<span class="p">}</span>
E       +        <pre><span></span><span class="kt">int</span><span class="w"> </span><span class="nf">main</span><span class="p">(</span><span class="k">const</span><span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">argc</span><span class="p">,</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="w"> </span><span class="o">**</span><span class="n">argv</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
E       +<span class="w">  </span><span class="k">return</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"></span>
E       +<span class="p">}</span><span class="w"></span>
E        </pre>
E               </div>
E              </div>

tests/conftest.py:91: AssertionError
______________ ERROR at setup of test_other_with_assets_new_style ______________

app = <SphinxTestApp buildername='html'>
status = <_io.StringIO object at 0x7f8ebb548040>
warning = <_io.StringIO object at 0x7f8ebb5480d0>
check_build_success = <function check_build_success.<locals>.check at 0x7f8ebb548dc0>
get_sphinx_app_doctree = <function get_sphinx_app_doctree.<locals>.read at 0x7f8ebb548ee0>
regress_sphinx_app_output = <function regress_sphinx_app_output.<locals>.read at 0x7f8ebb575040>
request = <SubRequest 'auto_build_and_check' for <Function 'test_other_with_assets_new_style'>>

    @pytest.fixture(autouse=True)
    def auto_build_and_check(
        app,
        status,
        warning,
        check_build_success,
        get_sphinx_app_doctree,
        regress_sphinx_app_output,
        request,
    ):
        """
        Build and check build success and output regressions.
        Currently all tests start with this.
        Disable using a `noautobuild` mark.
        """
        if "noautobuild" in request.keywords:
            return
        app.build()
        check_build_success(status, warning)
        get_sphinx_app_doctree(app, regress=True)
>       regress_sphinx_app_output(app)

tests/conftest.py:38: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

app = <SphinxTestApp buildername='html'>, buildername = 'html'
filename = 'index.html', encoding = 'utf-8', replace = None

    def read(
        app, buildername="html", filename="index.html", encoding="utf-8", replace=None
    ):
        content = get_sphinx_app_output(app, buildername, filename, encoding)
    
        if buildername == "html":
            soup = BeautifulSoup(content, "html.parser")
            doc_div = soup.findAll("div", {"class": "documentwrapper"})[0]
            doc = doc_div.prettify()
            for find, rep in (replace or {}).items():
                doc = text.replace(find, rep)
        else:
            doc = content
>       file_regression.check(
            doc, extension="." + filename.split(".")[-1], encoding="utf8"
        )
E       AssertionError: FILES DIFFER:
E       /tmp/pytest-of-churchyard/pytest-12/test_other_with_assets_new_sty0/test_build/test_other_with_assets_new_style.html
E       /tmp/pytest-of-churchyard/pytest-12/test_other_with_assets_new_sty0/test_build/test_other_with_assets_new_style.obtained.html
E       HTML DIFF: /tmp/pytest-of-churchyard/pytest-12/test_other_with_assets_new_sty0/test_build/test_other_with_assets_new_style.obtained.diff.html
E       --- 
E       +++ 
E       @@ -13,7 +13,7 @@
E            <div aria-labelledby="tab-0-Qysr" class="sphinx-tabs-panel code-tab group-tab" id="panel-0-Qysr" name="Qysr" role="tabpanel" tabindex="0">
E             <div class="highlight-c++ notranslate">
E              <div class="highlight">
E       -       <pre><span></span><span class="linenos">1</span><span class="n">std</span><span class="o">::</span><span class="n">cout</span> <span class="o">&lt;&lt;</span> <span class="s">"hello world"</span> <span class="o">&lt;&lt;</span> <span class="n">std</span><span class="o">::</span><span class="n">endl</span><span class="p">;</span>
E       +       <pre><span></span><span class="linenos">1</span><span class="n">std</span><span class="o">::</span><span class="n">cout</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="s">"hello world"</span><span class="w"> </span><span class="o">&lt;&lt;</span><span class="w"> </span><span class="n">std</span><span class="o">::</span><span class="n">endl</span><span class="p">;</span><span class="w"></span>
E        </pre>
E              </div>
E             </div>

tests/conftest.py:91: AssertionError
=================================== FAILURES ===================================
_____________ test_conditional_assets_html_assets_policy[no_tabs1] _____________

app = <SphinxTestApp buildername='html'>, docname = 'no_tabs1'
status = <_io.StringIO object at 0x7f8ebb75adc0>
warning = <_io.StringIO object at 0x7f8ebbcaf160>
check_build_success = <function check_build_success.<locals>.check at 0x7f8ebb51f1f0>
get_sphinx_app_doctree = <function get_sphinx_app_doctree.<locals>.read at 0x7f8ebb75ae50>
regress_sphinx_app_output = <function regress_sphinx_app_output.<locals>.read at 0x7f8ebb75aca0>
check_asset_links = <function check_asset_links.<locals>.check at 0x7f8ebb75aaf0>

    @pytest.mark.noautobuild
    @pytest.mark.parametrize("docname", ["index", "no_tabs1", "no_tabs2"])
    @pytest.mark.sphinx(testroot="conditionalassets")
    @pytest.mark.skipif(
        sphinx.version_info[:2] < (4, 1), reason="Test uses Sphinx 4.1 config"
    )
    def test_conditional_assets_html_assets_policy(
        app,
        docname,
        status,
        warning,
        check_build_success,
        get_sphinx_app_doctree,
        regress_sphinx_app_output,
        check_asset_links,
    ):
        app.set_html_assets_policy("always")
    
        # Following lines are copied from ``auto_build_and_check`` since we need to
        # set a config in the build object before auto build. Because of this, we
        # need to use ``noautobuild``.
        app.build()
        check_build_success(status, warning)
        get_sphinx_app_doctree(app, regress=True)
        regress_sphinx_app_output(app)
    
>       check_asset_links(app, filename=docname + ".html")

tests/test_build.py:54: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

app = <SphinxTestApp buildername='html'>, buildername = 'html'
filename = 'no_tabs1.html', encoding = 'utf-8', cssPresent = True
jsPresent = True

    def check(
        app,
        buildername="html",
        filename="index.html",
        encoding="utf-8",
        cssPresent=True,
        jsPresent=True,
    ):
        content = get_sphinx_app_output(app, buildername, filename, encoding)
    
        css_assets = [f for f in FILES if f.endswith(".css")]
        js_assets = [f for f in FILES if f.endswith(".js")]
    
        soup = BeautifulSoup(content, "html.parser")
        stylesheets = soup.find_all("link", {"rel": "stylesheet"}, href=True)
        css_refs = [s["href"] for s in stylesheets]
    
        scripts = soup.find_all("script", src=True)
        js_refs = [s["src"] for s in scripts]
    
        all_refs = css_refs + js_refs
    
        if cssPresent:
            css_present = all(any(a in ref for ref in all_refs) for a in css_assets)
            assert css_present
        else:
            assert not "sphinx_tabs" in css_refs
        if jsPresent:
            js_present = all(any(a in ref for ref in js_refs) for a in js_assets)
>           assert js_present
E           assert False

tests/conftest.py:161: AssertionError
--------------------------- Captured stdout teardown ---------------------------
# testroot: root
# builder: html
# srcdir: /tmp/pytest-of-churchyard/pytest-12/conditionalassets
# outdir: /tmp/pytest-of-churchyard/pytest-12/conditionalassets/_build/html
# status: 
Running Sphinx v4.1.2
loading pickled environment... done
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 0 source files that are out of date
updating environment: 0 added, 0 changed, 0 removed
looking for now-outdated files... none found
no targets are out of date.
build succeeded.

The HTML pages are in ../../../../../tmp/pytest-of-churchyard/pytest-12/conditionalassets/_build/html.

# warning: 

_____________ test_conditional_assets_html_assets_policy[no_tabs2] _____________

app = <SphinxTestApp buildername='html'>, docname = 'no_tabs2'
status = <_io.StringIO object at 0x7f8ebb9740d0>
warning = <_io.StringIO object at 0x7f8ebb9741f0>
check_build_success = <function check_build_success.<locals>.check at 0x7f8ebb51f940>
get_sphinx_app_doctree = <function get_sphinx_app_doctree.<locals>.read at 0x7f8ebb51fa60>
regress_sphinx_app_output = <function regress_sphinx_app_output.<locals>.read at 0x7f8ebb51fb80>
check_asset_links = <function check_asset_links.<locals>.check at 0x7f8ebb51fc10>

    @pytest.mark.noautobuild
    @pytest.mark.parametrize("docname", ["index", "no_tabs1", "no_tabs2"])
    @pytest.mark.sphinx(testroot="conditionalassets")
    @pytest.mark.skipif(
        sphinx.version_info[:2] < (4, 1), reason="Test uses Sphinx 4.1 config"
    )
    def test_conditional_assets_html_assets_policy(
        app,
        docname,
        status,
        warning,
        check_build_success,
        get_sphinx_app_doctree,
        regress_sphinx_app_output,
        check_asset_links,
    ):
        app.set_html_assets_policy("always")
    
        # Following lines are copied from ``auto_build_and_check`` since we need to
        # set a config in the build object before auto build. Because of this, we
        # need to use ``noautobuild``.
        app.build()
        check_build_success(status, warning)
        get_sphinx_app_doctree(app, regress=True)
        regress_sphinx_app_output(app)
    
>       check_asset_links(app, filename=docname + ".html")

tests/test_build.py:54: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

app = <SphinxTestApp buildername='html'>, buildername = 'html'
filename = 'no_tabs2.html', encoding = 'utf-8', cssPresent = True
jsPresent = True

    def check(
        app,
        buildername="html",
        filename="index.html",
        encoding="utf-8",
        cssPresent=True,
        jsPresent=True,
    ):
        content = get_sphinx_app_output(app, buildername, filename, encoding)
    
        css_assets = [f for f in FILES if f.endswith(".css")]
        js_assets = [f for f in FILES if f.endswith(".js")]
    
        soup = BeautifulSoup(content, "html.parser")
        stylesheets = soup.find_all("link", {"rel": "stylesheet"}, href=True)
        css_refs = [s["href"] for s in stylesheets]
    
        scripts = soup.find_all("script", src=True)
        js_refs = [s["src"] for s in scripts]
    
        all_refs = css_refs + js_refs
    
        if cssPresent:
            css_present = all(any(a in ref for ref in all_refs) for a in css_assets)
            assert css_present
        else:
            assert not "sphinx_tabs" in css_refs
        if jsPresent:
            js_present = all(any(a in ref for ref in js_refs) for a in js_assets)
>           assert js_present
E           assert False

tests/conftest.py:161: AssertionError
--------------------------- Captured stdout teardown ---------------------------
# testroot: root
# builder: html
# srcdir: /tmp/pytest-of-churchyard/pytest-12/conditionalassets
# outdir: /tmp/pytest-of-churchyard/pytest-12/conditionalassets/_build/html
# status: 
Running Sphinx v4.1.2
loading pickled environment... done
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 0 source files that are out of date
updating environment: 0 added, 0 changed, 0 removed
looking for now-outdated files... none found
no targets are out of date.
build succeeded.

The HTML pages are in ../../../../../tmp/pytest-of-churchyard/pytest-12/conditionalassets/_build/html.

# warning: 

============ 2 failed, 8 passed, 1 skipped, 4 error in 4.75 seconds ============
ERROR: InvocationError for command .../sphinx-tabs/.tox/py39-sphinx4/bin/pytest (exited with code 1)
___________________________________ summary ____________________________________
ERROR:   py39-sphinx4: commands failed

The version of Python you're using

3.9.6, 3.10.0rc1

Your operating system

Fedora Linux 33-36

Versions of your packages

Package                       Version
----------------------------- ---------
alabaster                     0.7.12
appdirs                       1.4.4
atomicwrites                  1.4.0
attrs                         21.2.0
Babel                         2.9.1
beautifulsoup4                4.9.3
bs4                           0.0.1
certifi                       2021.5.30
charset-normalizer            2.0.4
commonmark                    0.9.1
coverage                      5.5
docutils                      0.16
idna                          3.2
imagesize                     1.2.0
Jinja2                        3.0.1
MarkupSafe                    2.0.1
more-itertools                8.8.0
packaging                     21.0
pip                           21.1.1
pluggy                        0.13.1
py                            1.10.0
Pygments                      2.10.0
pyparsing                     2.4.7
pytest                        3.10.1
pytest-cov                    2.9.0
pytest-datadir                1.3.1
pytest-regressions            2.2.0
pytz                          2021.1
PyYAML                        5.4.1
recommonmark                  0.7.1
requests                      2.26.0
rinoh-typeface-dejavuserif    0.1.3
rinoh-typeface-texgyrecursor  0.1.1
rinoh-typeface-texgyreheros   0.1.1
rinoh-typeface-texgyrepagella 0.1.1
rinohtype                     0.5.3
setuptools                    56.1.0
six                           1.16.0
snowballstemmer               2.1.0
soupsieve                     2.2.1
Sphinx                        4.1.2
sphinx-tabs                   3.2.0
sphinx-testing                1.0.1
sphinxcontrib-applehelp       1.0.2
sphinxcontrib-devhelp         1.0.2
sphinxcontrib-htmlhelp        2.0.0
sphinxcontrib-jsmath          1.0.1
sphinxcontrib-qthelp          1.0.3
sphinxcontrib-serializinghtml 1.1.5
urllib3                       1.26.6
wheel                         0.36.2

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions