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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
# -*- coding: utf-8 -*-
from os.path import dirname, join
from tempfile import TemporaryDirectory
from pelican import Pelican
from pelican.generators import ArticlesGenerator
from pelican.settings import configure_settings
from pelican.tests.support import get_settings, unittest
from pelican.writers import Writer
from .math import pelican_init, process_rst_and_summaries
CUR_DIR = dirname(__file__)
class RenderMathTest(unittest.TestCase):
def test_ok_on_shared_test_data(self):
settings = get_settings(filenames={})
settings["PATH"] = join(CUR_DIR, "..", "test_data")
pelican_init(PelicanMock(settings))
with TemporaryDirectory() as tmpdirname:
generator = _build_article_generator(settings, tmpdirname)
process_rst_and_summaries([generator])
def test_ok_on_custom_data(self):
settings = get_settings(filenames={})
settings["PATH"] = join(CUR_DIR, "test_data")
settings["PLUGINS"] = ["pelican-ipynb.markup"] # to also parse .ipynb files
configure_settings(settings)
pelican_mock = PelicanMock(settings)
pelican_init(pelican_mock)
Pelican.init_plugins(pelican_mock)
with TemporaryDirectory() as tmpdirname:
generator = _build_article_generator(settings, tmpdirname)
process_rst_and_summaries([generator])
for article in generator.articles:
if article.source_path.endswith(".rst"):
self.assertIn("mathjaxscript_pelican", article.content)
generator.generate_output(Writer(tmpdirname, settings=settings))
def _build_article_generator(settings, output_path):
context = settings.copy()
context["generated_content"] = dict()
context["static_links"] = set()
article_generator = ArticlesGenerator(
context=context,
settings=settings,
path=settings["PATH"],
theme=settings["THEME"],
output_path=output_path,
)
article_generator.generate_context()
return article_generator
class PelicanMock:
"A dummy class exposing the only attributes needed"
def __init__(self, settings):
self.plugins = []
self.settings = settings
|