import time import pytest @pytest.fixture( params=[ 1293840000, # 2011-01-01 00:00:00 1293839999, # 2010-12-31 23:59:59 ] ) def source_date_year(request, monkeypatch): source_date_epoch = request.param with monkeypatch.context() as m: m.setenv('SOURCE_DATE_EPOCH', str(source_date_epoch)) yield time.gmtime(source_date_epoch).tm_year @pytest.mark.sphinx('html', testroot='copyright-multiline') def test_html_multi_line_copyright(app): app.build(force_all=True) content = (app.outdir / 'index.html').read_text(encoding='utf-8') # check the copyright footer line by line (empty lines ignored) assert ' © Copyright 2006.
\n' in content assert ' © Copyright 2006-2009, Alice.
\n' in content assert ' © Copyright 2010-2013, Bob.
\n' in content assert ' © Copyright 2014-2017, Charlie.
\n' in content assert ' © Copyright 2018-2021, David.
\n' in content assert ' © Copyright 2022-2025, Eve.' in content # check the raw copyright footer block (empty lines included) assert ( ' © Copyright 2006.
\n' ' \n' ' © Copyright 2006-2009, Alice.
\n' ' \n' ' © Copyright 2010-2013, Bob.
\n' ' \n' ' © Copyright 2014-2017, Charlie.
\n' ' \n' ' © Copyright 2018-2021, David.
\n' ' \n' ' © Copyright 2022-2025, Eve.' ) in content @pytest.mark.sphinx('html', testroot='copyright-multiline') def test_html_multi_line_copyright_sde(source_date_year, app): app.build(force_all=True) content = (app.outdir / 'index.html').read_text(encoding='utf-8') # check the copyright footer line by line (empty lines ignored) assert f' © Copyright {source_date_year}.
\n' in content assert f' © Copyright 2006-{source_date_year}, Alice.
\n' in content assert f' © Copyright 2010-{source_date_year}, Bob.
\n' in content assert f' © Copyright 2014-{source_date_year}, Charlie.
\n' in content assert f' © Copyright 2018-{source_date_year}, David.
\n' in content assert f' © Copyright 2022-{source_date_year}, Eve.' in content # check the raw copyright footer block (empty lines included) assert ( f' © Copyright {source_date_year}.
\n' f' \n' f' © Copyright 2006-{source_date_year}, Alice.
\n' f' \n' f' © Copyright 2010-{source_date_year}, Bob.
\n' f' \n' f' © Copyright 2014-{source_date_year}, Charlie.
\n' f' \n' f' © Copyright 2018-{source_date_year}, David.
\n' f' \n' f' © Copyright 2022-{source_date_year}, Eve.' ) in content