File tree Expand file tree Collapse file tree 3 files changed +21
-1
lines changed
Expand file tree Collapse file tree 3 files changed +21
-1
lines changed Original file line number Diff line number Diff line change @@ -39,6 +39,10 @@ class WD_UNDERLINE(XmlEnumeration):
3939 __url__ = 'http://msdn.microsoft.com/en-us/library/office/ff822388.aspx'
4040
4141 __members__ = (
42+ XmlMappedEnumMember (
43+ None , None , None , 'Inherit underline setting from containing par'
44+ 'agraph.'
45+ ),
4246 XmlMappedEnumMember (
4347 'NONE' , 0 , 'none' , 'No underline. This setting overrides any inh'
4448 'erited underline value, so can be used to remove underline from'
Original file line number Diff line number Diff line change 66
77from __future__ import absolute_import , print_function , unicode_literals
88
9- from docx .enum .text import WD_BREAK
9+ from docx .enum .text import WD_BREAK , WD_UNDERLINE
1010
1111
1212def boolproperty (f ):
@@ -346,6 +346,9 @@ def underline(self):
346346
347347 @underline .setter
348348 def underline (self , value ):
349+ if not WD_UNDERLINE .is_valid_setting (value ):
350+ tmpl = "'%s' is not a valid setting for Run.underline"
351+ raise ValueError (tmpl % value )
349352 self ._r .underline = value
350353
351354 @boolproperty
Original file line number Diff line number Diff line change @@ -161,6 +161,12 @@ def it_can_change_its_underline_type(self, underline_set_fixture):
161161 run .underline = underline
162162 assert run ._r .xml == expected_xml
163163
164+ def it_raises_on_assign_invalid_underline_type (
165+ self , underline_raise_fixture ):
166+ run , underline = underline_raise_fixture
167+ with pytest .raises (ValueError ):
168+ run .underline = underline
169+
164170 def it_can_add_text (self , add_text_fixture ):
165171 run , text_str , expected_xml , Text_ = add_text_fixture
166172 _text = run .add_text (text_str )
@@ -375,6 +381,13 @@ def underline_get_fixture(self, request):
375381 run = Run (r )
376382 return run , expected_prop_value
377383
384+ @pytest .fixture (params = ['foobar' , 42 , 'single' ])
385+ def underline_raise_fixture (self , request ):
386+ underline = request .param
387+ r = self .r_bldr_with_underline (None ).element
388+ run = Run (r )
389+ return run , underline
390+
378391 @pytest .fixture (params = [
379392 (None , True , 'single' ),
380393 (None , False , 'none' ),
You can’t perform that action at this time.
0 commit comments