summaryrefslogtreecommitdiffstats
path: root/share/extensions/tests/test_plotter.py
blob: 9afb2cc2b1e75fc89c58c41194efe6dec4352a3d (plain)
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
"""Test Plotter extension"""
import pytest
import sys
from plotter import Plot
from inkex.tester import ComparisonMixin, TestCase
from inkex.tester.filters import CompareReplacement


@pytest.mark.skipif(sys.platform == "win32", reason="termios not available on Windows")
class TestPlotter(ComparisonMixin, TestCase):
    """Test the plotter extension"""

    stderr_output = True
    effect_class = Plot
    compare_filter_save = True
    # Testing shapes.svg directly leads to a hang, as the pseudo-terminal
    # has issues with very long writes
    # (https://gitlab.com/inkscape/extensions/-/merge_requests/497#note_1103456028)
    compare_file = "svg/shapes_no_text.svg"
    compare_filters = [CompareReplacement((";", "\n"))]
    old_defaults = (
        "--serialFlowControl=0",
        "--force=24",
        "--speed=20",
        "--orientation=90",
    )
    comparisons = [
        ("--serialPort=[test]",) + old_defaults,  # HPGL
        ("--serialPort=[test]", "--commandLanguage=DMPL") + old_defaults,
        ("--serialPort=[test]", "--commandLanguage=KNK") + old_defaults,
    ]


@pytest.mark.skipif(sys.platform == "win32", reason="termios not available on Windows")
class TestPlotterText(ComparisonMixin, TestCase):
    """Test that text is converted automatically"""

    stderr_output = True
    effect_class = Plot
    compare_filter_save = True
    compare_file = "svg/text_on_arc_small.svg"
    compare_filters = [CompareReplacement((";", "\n"))]
    comparisons = [("--serialPort=[test]",)]