diff options
Diffstat (limited to '')
-rw-r--r-- | share/extensions/tests/test_hershey.py | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/share/extensions/tests/test_hershey.py b/share/extensions/tests/test_hershey.py new file mode 100644 index 0000000..f698982 --- /dev/null +++ b/share/extensions/tests/test_hershey.py @@ -0,0 +1,77 @@ +# coding=utf-8 +# tests for the hershey-text extension (hershey.py and hershey.inx) +from lxml import etree + +from inkex.tester import ComparisonMixin, InkscapeExtensionTestMixin, TestCase +from inkex.tester.filters import CompareNumericFuzzy, CompareOrderIndependentStyle + +from hershey import Hershey + + +class HersheyComparisonMixin(ComparisonMixin): + comparisons_cmpfile_dict = {} # pairs of args and expected outputs + + def setUp(self): + self.effect_class = Hershey + self.compare_filters = [CompareNumericFuzzy(), CompareOrderIndependentStyle()] + + self.comparisons = self.comparisons_cmpfile_dict.keys() + + def get_compare_cmpfile(self, args, addout=None): + """get the correct cmpfile to compare from comparisons_dict;""" + return self.data_file("refs", self.comparisons_cmpfile_dict[args]) + + +class TestHersheyBasic(InkscapeExtensionTestMixin, HersheyComparisonMixin, TestCase): + compare_file = "svg/hershey_input.svg" # a huge number of inputs + comparisons_cmpfile_dict = { + # default parameters: + (): "hershey.out", + # same as above, but explicit parameters. same output: + ( + '--tab="render"', + '--fontface="HersheySans1"', + '--preserve="False"', + ): "hershey.out", + } + + +class TestHersheyTrivialInput( + InkscapeExtensionTestMixin, HersheyComparisonMixin, TestCase +): + compare_file = "svg/hershey_trivial_input.svg" + comparisons_cmpfile_dict = { + # loading a different font: + ('--fontface="EMSAllure"',): "hershey_loadfont.out", + # using the "other font" option. same output as above: + ('--fontface="other"', '--otherfont="EMSAllure"'): "hershey_loadfont.out", + # tests preserve text option + ('--fontface="EMSOsmotron"', "--preserve=true"): "hershey_preservetext.out", + # tests when just part of the input file is selected + ("--id=A",): "hershey_partialselection.out", + } + + +class TestHersheyTables(InkscapeExtensionTestMixin, HersheyComparisonMixin, TestCase): + compare_file = "svg/default-inkscape-SVG.svg" + comparisons_cmpfile_dict = { + # generates a simple font table: + ( + '--tab="utilities"', + '--action="sample"', + '--text="I am a quick brown fox"', + ): "hershey_fonttable.out", + # generates a simple font table, while testing UTF-8 input + ( + '--tab="utilities"', + '--action="sample"', + '--text="Î âm å qù¡çk brõwñ fø×"', + ): "hershey_encoding.out", + # generates a glyph table in the font "EMSOsmotron" + ( + '--tab="utilities"', + '--action="table"', + '--fontface="other"', + '--otherfont="EMSOsmotron"', + ): "hershey_glyphtable.out", + } |