@@ -139,18 +139,51 @@ def test_stroke(widget):
139
139
140
140
141
141
@pytest .mark .parametrize (
142
- "font, expected" ,
142
+ "font, line_height, expected" ,
143
143
[
144
- (None , (132 , 12 )),
145
- (Font (family = SYSTEM , size = SYSTEM_DEFAULT_FONT_SIZE ), (132 , 12 )),
146
- (Font (family = SYSTEM , size = 20 ), (220 , 20 )),
147
- (Font (family = "Cutive" , size = SYSTEM_DEFAULT_FONT_SIZE ), (198 , 18 )),
148
- (Font (family = "Cutive" , size = 20 ), (330 , 30 )),
144
+ (None , None , (132 , 12 )),
145
+ (Font (family = SYSTEM , size = SYSTEM_DEFAULT_FONT_SIZE ), None , (132 , 12 )),
146
+ (Font (family = SYSTEM , size = SYSTEM_DEFAULT_FONT_SIZE ), 1 , (132 , 12 )),
147
+ (Font (family = SYSTEM , size = 20 ), None , (220 , 20 )),
148
+ (Font (family = SYSTEM , size = 20 ), 1 , (220 , 20 )),
149
+ (Font (family = SYSTEM , size = 20 ), 1.5 , (220 , 30 )),
150
+ (Font (family = "Cutive" , size = SYSTEM_DEFAULT_FONT_SIZE ), None , (198 , 18 )),
151
+ (Font (family = "Cutive" , size = SYSTEM_DEFAULT_FONT_SIZE ), 1 , (198 , 18 )),
152
+ (Font (family = "Cutive" , size = 20 ), None , (330 , 30 )),
153
+ (Font (family = "Cutive" , size = 20 ), 1 , (330 , 30 )),
154
+ (Font (family = "Cutive" , size = 20 ), 1.5 , (330 , 45 )),
149
155
],
150
156
)
151
- def test_measure_text (widget , font , expected ):
157
+ def test_measure_text (widget , font , line_height , expected ):
152
158
"""Canvas can measure rendered text size."""
153
- assert widget .measure_text ("Hello world" , font = font ) == expected
159
+ assert (
160
+ widget .measure_text ("Hello world" , font = font , line_height = line_height )
161
+ == expected
162
+ )
163
+
164
+
165
+ @pytest .mark .parametrize (
166
+ "font, line_height, expected" ,
167
+ [
168
+ (None , None , (132 , 24 )),
169
+ (Font (family = SYSTEM , size = SYSTEM_DEFAULT_FONT_SIZE ), None , (132 , 24 )),
170
+ (Font (family = SYSTEM , size = SYSTEM_DEFAULT_FONT_SIZE ), 1 , (132 , 24 )),
171
+ (Font (family = SYSTEM , size = 20 ), None , (220 , 40 )),
172
+ (Font (family = SYSTEM , size = 20 ), 1 , (220 , 40 )),
173
+ (Font (family = SYSTEM , size = 20 ), 1.5 , (220 , 60 )),
174
+ (Font (family = "Cutive" , size = SYSTEM_DEFAULT_FONT_SIZE ), None , (198 , 36 )),
175
+ (Font (family = "Cutive" , size = SYSTEM_DEFAULT_FONT_SIZE ), 1 , (198 , 36 )),
176
+ (Font (family = "Cutive" , size = 20 ), None , (330 , 60 )),
177
+ (Font (family = "Cutive" , size = 20 ), 1 , (330 , 60 )),
178
+ (Font (family = "Cutive" , size = 20 ), 1.5 , (330 , 90 )),
179
+ ],
180
+ )
181
+ def test_measure_text_multiline (widget , font , line_height , expected ):
182
+ """Canvas can measure rendered text size of a multiline string."""
183
+ assert (
184
+ widget .measure_text ("Hello\n world" , font = font , line_height = line_height )
185
+ == expected
186
+ )
154
187
155
188
156
189
def test_as_image (widget ):
0 commit comments