Fix tests that wrote something into the source directory

This commit is contained in:
Oleh Prypin
2022-10-03 01:19:34 +02:00
parent 418d23a4da
commit f2c648b35f
2 changed files with 16 additions and 11 deletions

View File

@@ -227,8 +227,11 @@ class BuildTests(PathAssertionMixin, unittest.TestCase):
@mock.patch('mkdocs.utils.write_file')
@mock.patch('mkdocs.commands.build._build_template', return_value='some content')
@mock.patch('gzip.GzipFile')
def test_build_sitemap_template(self, mock_gzip_gzipfile, mock_build_template, mock_write_file):
cfg = load_config()
@tempdir()
def test_build_sitemap_template(
self, site_dir, mock_gzip_gzipfile, mock_build_template, mock_write_file
):
cfg = load_config(site_dir=site_dir)
env = cfg['theme'].get_env()
build._build_theme_template('sitemap.xml', env, mock.Mock(), cfg, mock.Mock())
mock_write_file.assert_called_once()
@@ -265,9 +268,10 @@ class BuildTests(PathAssertionMixin, unittest.TestCase):
# Test build._build_extra_template
@tempdir()
@mock.patch('mkdocs.commands.build.open', mock.mock_open(read_data='template content'))
def test_build_extra_template(self):
cfg = load_config()
def test_build_extra_template(self, site_dir):
cfg = load_config(site_dir=site_dir)
fs = [
File('foo.html', cfg['docs_dir'], cfg['site_dir'], cfg['use_directory_urls']),
]

View File

@@ -11,7 +11,7 @@ from mkdocs.config import base
from mkdocs.config import config_options as c
from mkdocs.config.base import ValidationError
from mkdocs.exceptions import Abort, BuildError, PluginError
from mkdocs.tests.base import load_config
from mkdocs.tests.base import load_config, tempdir
class _DummyPluginConfig(base.Config):
@@ -222,7 +222,8 @@ class TestPluginCollection(unittest.TestCase):
with self.assertRaises(KeyError):
collection.run_event('unknown', 'page content')
def test_run_build_error_event(self):
@tempdir()
def test_run_build_error_event(self, site_dir):
build_errors = []
class PluginRaisingError(plugins.BasePlugin):
@@ -251,27 +252,27 @@ class TestPluginCollection(unittest.TestCase):
def on_build_error(self, error, **kwargs):
build_errors.append(error)
cfg = load_config()
cfg = load_config(site_dir=site_dir)
cfg['plugins']['errorplugin'] = PluginRaisingError(error_on='pre_page')
with self.assertLogs('mkdocs', level='ERROR'):
self.assertRaises(Abort, build.build, cfg)
cfg = load_config()
cfg = load_config(site_dir=site_dir)
cfg['plugins']['errorplugin'] = PluginRaisingError(error_on='page_markdown')
with self.assertLogs('mkdocs', level='ERROR'):
self.assertRaises(Abort, build.build, cfg)
cfg = load_config()
cfg = load_config(site_dir=site_dir)
cfg['plugins']['errorplugin'] = PluginRaisingError(error_on='page_content')
with self.assertLogs('mkdocs', level='ERROR'):
self.assertRaises(Abort, build.build, cfg)
cfg = load_config()
cfg = load_config(site_dir=site_dir)
cfg['plugins']['errorplugin'] = PluginRaisingError(error_on='post_page')
with self.assertLogs('mkdocs', level='ERROR'):
self.assertRaises(ValueError, build.build, cfg)
cfg = load_config()
cfg = load_config(site_dir=site_dir)
cfg['plugins']['errorplugin'] = PluginRaisingError(error_on='')
build.build(cfg)