mirror of
https://github.com/jeertmans/manim-slides.git
synced 2025-05-22 13:06:45 +08:00
chore(tests): add tests for converter methods (#283)
* chore(tests): add tests for converter methods * chore(tests): update ppt converter test --------- Co-authored-by: Jérome Eertmans <jeertmans@icloud.com>
This commit is contained in:
@ -528,7 +528,7 @@ class PowerPoint(Converter):
|
|||||||
mime_type=mime_type,
|
mime_type=mime_type,
|
||||||
)
|
)
|
||||||
if self.auto_play_media:
|
if self.auto_play_media:
|
||||||
auto_play_media(movie, loop=slide_config.is_loop())
|
auto_play_media(movie, loop=slide_config.loop)
|
||||||
|
|
||||||
dest.parent.mkdir(parents=True, exist_ok=True)
|
dest.parent.mkdir(parents=True, exist_ok=True)
|
||||||
prs.save(dest)
|
prs.save(dest)
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
from enum import EnumMeta
|
from enum import EnumMeta
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
import pytest
|
import pytest
|
||||||
|
from pydantic import ValidationError
|
||||||
|
|
||||||
|
from manim_slides.config import PresentationConfig
|
||||||
from manim_slides.convert import (
|
from manim_slides.convert import (
|
||||||
PDF,
|
PDF,
|
||||||
AutoAnimateEasing,
|
AutoAnimateEasing,
|
||||||
@ -129,3 +132,31 @@ class TestConverter:
|
|||||||
)
|
)
|
||||||
def test_from_string(self, name: str, converter: type) -> None:
|
def test_from_string(self, name: str, converter: type) -> None:
|
||||||
assert Converter.from_string(name) == converter
|
assert Converter.from_string(name) == converter
|
||||||
|
|
||||||
|
def test_revealjs_converter(
|
||||||
|
self, tmp_path: Path, presentation_config: PresentationConfig
|
||||||
|
) -> None:
|
||||||
|
out_file = tmp_path / "slides.html"
|
||||||
|
RevealJS(presentation_configs=[presentation_config]).convert_to(out_file)
|
||||||
|
assert out_file.exists()
|
||||||
|
assert Path(tmp_path / "slides_assets").is_dir()
|
||||||
|
file_contents = Path(out_file).read_text()
|
||||||
|
assert "manim" in file_contents.casefold()
|
||||||
|
|
||||||
|
def test_pdf_converter(
|
||||||
|
self, tmp_path: Path, presentation_config: PresentationConfig
|
||||||
|
) -> None:
|
||||||
|
out_file = tmp_path / "slides.pdf"
|
||||||
|
PDF(presentation_configs=[presentation_config]).convert_to(out_file)
|
||||||
|
assert out_file.exists()
|
||||||
|
|
||||||
|
def test_converter_no_presentation_config(self) -> None:
|
||||||
|
with pytest.raises(ValidationError):
|
||||||
|
Converter(presentation_configs=[])
|
||||||
|
|
||||||
|
def test_pptx_converter(
|
||||||
|
self, tmp_path: Path, presentation_config: PresentationConfig
|
||||||
|
) -> None:
|
||||||
|
out_file = tmp_path / "slides.pptx"
|
||||||
|
PowerPoint(presentation_configs=[presentation_config]).convert_to(out_file)
|
||||||
|
assert out_file.exists()
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
|
import pytest
|
||||||
from click.testing import CliRunner
|
from click.testing import CliRunner
|
||||||
|
|
||||||
from manim_slides.__main__ import cli
|
from manim_slides.__main__ import cli
|
||||||
@ -38,7 +39,8 @@ def test_present(slides_folder: Path) -> None:
|
|||||||
assert results.exit_code == 0
|
assert results.exit_code == 0
|
||||||
|
|
||||||
|
|
||||||
def test_convert(slides_folder: Path) -> None:
|
@pytest.mark.parametrize(("extension",), [("html",), ("pdf",), ("pptx",)])
|
||||||
|
def test_convert(slides_folder: Path, extension: str) -> None:
|
||||||
runner = CliRunner()
|
runner = CliRunner()
|
||||||
|
|
||||||
with runner.isolated_filesystem():
|
with runner.isolated_filesystem():
|
||||||
@ -47,9 +49,11 @@ def test_convert(slides_folder: Path) -> None:
|
|||||||
[
|
[
|
||||||
"convert",
|
"convert",
|
||||||
"BasicSlide",
|
"BasicSlide",
|
||||||
"basic_example.html",
|
f"basic_example.{extension}",
|
||||||
"--folder",
|
"--folder",
|
||||||
str(slides_folder),
|
str(slides_folder),
|
||||||
|
"--to",
|
||||||
|
extension,
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user