Mercurial > piecrust2
view tests/mockutil.py @ 1188:a7c43131d871
bake: Fix file write flushing problem with Python 3.8+
Writing the cache files fails in Python 3.8 because it looks like flushing
behaviour has changed. We need to explicitly flush. And even then, in very
rare occurrences, it looks like it can still run into racing conditions,
so we do a very hacky and ugly "retry" loop when fetching cached data :(
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Tue, 15 Jun 2021 22:36:23 -0700 |
parents | 8adc27285d93 |
children |
line wrap: on
line source
import mock from piecrust.app import PieCrust from piecrust.appconfig import PieCrustConfiguration def get_mock_app(config=None): app = mock.MagicMock(spec=PieCrust) app.config = PieCrustConfiguration(values={}) return app def get_simple_content_item(app, slug): src = app.getSource('pages') assert src is not None item = src.findContentFromRoute({'slug': slug}) assert item is not None return item def get_simple_page(app, slug): src = app.getSource('pages') item = get_simple_content_item(app, slug) return app.getPage(src, item) from .tmpfs import ( # NOQA TempDirFileSystem as mock_fs, TempDirScope as mock_fs_scope)