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
|
# 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 inkex.tester.svg import svg, svg_file, uu_svg
from hershey import Hershey
class HersheyComparisonMixin(ComparisonMixin):
comparisons_outfile_dict = {} # pairs of args and expected outputs
def setUp(self):
self.effect_class = Hershey
self.compare_filters = [CompareNumericFuzzy(), CompareOrderIndependentStyle()]
self.comparisons = self.comparisons_outfile_dict.keys()
def get_compare_outfile(self, args, addout=None):
''' get the correct outfile to compare from comparisons_dict; '''
return self.data_file('refs', self.comparisons_outfile_dict[args])
class TestHersheyBasic(InkscapeExtensionTestMixin, HersheyComparisonMixin, TestCase):
compare_file = 'svg/hershey_input.svg' # a huge number of inputs
comparisons_outfile_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_outfile_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_outfile_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',
}
|