File tree Expand file tree Collapse file tree 3 files changed +29
-1
lines changed
Expand file tree Collapse file tree 3 files changed +29
-1
lines changed Original file line number Diff line number Diff line change @@ -23,6 +23,9 @@ def add_r(self):
2323 """
2424 Return a newly added CT_R (<w:r>) element.
2525 """
26+ r = CT_R .new ()
27+ self .append (r )
28+ return r
2629
2730 @staticmethod
2831 def new ():
Original file line number Diff line number Diff line change @@ -21,6 +21,14 @@ def it_can_construct_a_new_p_element(self):
2121 expected_xml = a_p ().with_nsdecls ().xml
2222 assert p .xml == expected_xml
2323
24+ def it_can_add_an_r_to_itself (self ):
25+ p = a_p ().with_nsdecls ().element
26+ # exercise -----------------
27+ r = p .add_r ()
28+ # verify -------------------
29+ assert p .xml == a_p ().with_nsdecls ().with_r ().xml
30+ assert isinstance (r , CT_R )
31+
2432
2533class DescribeCT_R (object ):
2634
Original file line number Diff line number Diff line change @@ -92,12 +92,29 @@ class CT_PBuilder(BaseBuilder):
9292 def __init__ (self ):
9393 """Establish instance variables with default values"""
9494 super (CT_PBuilder , self ).__init__ ()
95+ self ._r = []
96+
97+ @property
98+ def is_empty (self ):
99+ return len (self ._r ) == 0
100+
101+ def with_r (self , count = 1 ):
102+ """Add *count* empty run elements"""
103+ for i in range (count ):
104+ self ._r .append (an_r ())
105+ return self
95106
96107 @property
97108 def xml (self ):
98109 """Return element XML based on attribute settings"""
99110 indent = ' ' * self ._indent
100- xml = '%s<w:p%s/>\n ' % (indent , self ._nsdecls )
111+ if self .is_empty :
112+ xml = '%s<w:p%s/>\n ' % (indent , self ._nsdecls )
113+ else :
114+ xml = '%s<w:p%s>\n ' % (indent , self ._nsdecls )
115+ for r in self ._r :
116+ xml += r .with_indent (self ._indent + 2 ).xml
117+ xml += '%s</w:p>\n ' % indent
101118 return xml
102119
103120
You can’t perform that action at this time.
0 commit comments