File: test_parallel.py

package info (click to toggle)
sphinxcontrib-bibtex 2.6.5-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,140 kB
  • sloc: python: 4,668; makefile: 245
file content (36 lines) | stat: -rw-r--r-- 1,155 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
"""Test for parallel build."""

import os

import pytest
from sphinx.util.parallel import parallel_available


@pytest.mark.skipif(
    not parallel_available, reason="sphinx parallel builds not available"
)
@pytest.mark.sphinx("html", testroot="parallel")
def test_parallel(make_app, app_params) -> None:
    args, kwargs = app_params
    app0 = make_app(*args, **kwargs)
    app0.parallel = 4
    app0.build()
    assert not app0._warning.getvalue()
    # update files to trigger merge of citations domain data
    docnames = {
        "{0}/doc{1:02d}".format(folder, i)
        for i in (1, 3, 5, 7, 11, 15, 19)
        for folder in ("regular", "foot")
    }
    for docname in docnames:
        rstname = app0.env.doc2path(docname)
        htmlname = app0.builder.get_outfilename(docname)
        mtime = (app0.builder.outdir / htmlname).stat().st_mtime
        os.utime(app0.srcdir / rstname, (mtime + 5, mtime + 5))
    updated = set(app0.builder.get_outdated_docs())
    assert updated == docnames
    app1 = make_app(*args, **kwargs)
    app1._warning.seek(0)
    app1._warning.truncate()
    app1.build()
    assert not app1._warning.getvalue()