Skip to content

Commit d77054a

Browse files
author
Steve Canny
committed
txt: base Run on Parented
Remove stray print() call left in during testing.
1 parent f01a873 commit d77054a

4 files changed

Lines changed: 22 additions & 21 deletions

File tree

docx/table.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@ def style(self):
7171

7272
@style.setter
7373
def style(self, value):
74-
print('style value is %s' % value)
7574
self._tblPr.style = value
7675

7776
@property

docx/text.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ def add_run(self, text=None, style=None):
7373
break.
7474
"""
7575
r = self._p.add_r()
76-
run = Run(r)
76+
run = Run(r, self)
7777
if text:
7878
run.text = text
7979
if style:
@@ -124,7 +124,7 @@ def runs(self):
124124
Sequence of |Run| instances corresponding to the <w:r> elements in
125125
this paragraph.
126126
"""
127-
return [Run(r) for r in self._p.r_lst]
127+
return [Run(r, self) for r in self._p.r_lst]
128128

129129
@property
130130
def style(self):
@@ -163,16 +163,16 @@ def text(self, text):
163163
self.add_run(text)
164164

165165

166-
class Run(object):
166+
class Run(Parented):
167167
"""
168168
Proxy object wrapping ``<w:r>`` element. Several of the properties on Run
169169
take a tri-state value, |True|, |False|, or |None|. |True| and |False|
170170
correspond to on and off respectively. |None| indicates the property is
171171
not specified directly on the run and its effective value is taken from
172172
the style hierarchy.
173173
"""
174-
def __init__(self, r):
175-
super(Run, self).__init__()
174+
def __init__(self, r, parent):
175+
super(Run, self).__init__(parent)
176176
self._r = r
177177

178178
def add_break(self, break_type=WD_BREAK.LINE):

features/steps/text.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def given_a_run_having_mixed_text_content(context):
5757
<w:t>jkl</w:t>
5858
</w:r>""" % nsdecls('w')
5959
r = parse_xml(r_xml)
60-
context.run = Run(r)
60+
context.run = Run(r, None)
6161

6262

6363
@given('a run having {underline_type} underline')

tests/test_text.py

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@ class DescribeParagraph(object):
2424
def it_provides_access_to_the_runs_it_contains(self, runs_fixture):
2525
paragraph, Run_, r_, r_2_, run_, run_2_ = runs_fixture
2626
runs = paragraph.runs
27-
assert Run_.mock_calls == [call(r_), call(r_2_)]
27+
assert Run_.mock_calls == [
28+
call(r_, paragraph), call(r_2_, paragraph)
29+
]
2830
assert runs == [run_, run_2_]
2931

3032
def it_can_add_a_run_to_itself(self, add_run_fixture):
@@ -308,7 +310,7 @@ def it_can_replace_the_text_it_contains(self, text_set_fixture):
308310
])
309311
def add_break_fixture(self, request):
310312
break_type, expected_cxml = request.param
311-
run = Run(element('w:r'))
313+
run = Run(element('w:r'), None)
312314
expected_xml = xml(expected_cxml)
313315
return run, break_type, expected_xml
314316

@@ -317,7 +319,7 @@ def add_break_fixture(self, request):
317319
])
318320
def add_tab_fixture(self, request):
319321
r_cxml, expected_cxml = request.param
320-
run = Run(element(r_cxml))
322+
run = Run(element(r_cxml), None)
321323
expected_xml = xml(expected_cxml)
322324
return run, expected_xml
323325

@@ -329,7 +331,7 @@ def add_tab_fixture(self, request):
329331
])
330332
def add_text_fixture(self, request, Text_):
331333
r_cxml, text, expected_cxml = request.param
332-
run = Run(element(r_cxml))
334+
run = Run(element(r_cxml), None)
333335
expected_xml = xml(expected_cxml)
334336
return run, text, expected_xml, Text_
335337

@@ -361,7 +363,7 @@ def add_text_fixture(self, request, Text_):
361363
])
362364
def bool_prop_get_fixture(self, request):
363365
r_cxml, bool_prop_name, expected_value = request.param
364-
run = Run(element(r_cxml))
366+
run = Run(element(r_cxml), None)
365367
return run, bool_prop_name, expected_value
366368

367369
@pytest.fixture(params=[
@@ -415,7 +417,7 @@ def bool_prop_get_fixture(self, request):
415417
])
416418
def bool_prop_set_fixture(self, request):
417419
initial_r_cxml, bool_prop_name, value, expected_cxml = request.param
418-
run = Run(element(initial_r_cxml))
420+
run = Run(element(initial_r_cxml), None)
419421
expected_xml = xml(expected_cxml)
420422
return run, bool_prop_name, value, expected_xml
421423

@@ -430,7 +432,7 @@ def bool_prop_set_fixture(self, request):
430432
])
431433
def clear_fixture(self, request):
432434
initial_r_cxml, expected_cxml = request.param
433-
run = Run(element(initial_r_cxml))
435+
run = Run(element(initial_r_cxml), None)
434436
expected_xml = xml(expected_cxml)
435437
return run, expected_xml
436438

@@ -440,7 +442,7 @@ def clear_fixture(self, request):
440442
])
441443
def style_get_fixture(self, request):
442444
r_cxml, expected_style = request.param
443-
run = Run(element(r_cxml))
445+
run = Run(element(r_cxml), None)
444446
return run, expected_style
445447

446448
@pytest.fixture(params=[
@@ -455,7 +457,7 @@ def style_get_fixture(self, request):
455457
])
456458
def style_set_fixture(self, request):
457459
initial_r_cxml, new_style, expected_cxml = request.param
458-
run = Run(element(initial_r_cxml))
460+
run = Run(element(initial_r_cxml), None)
459461
expected_xml = xml(expected_cxml)
460462
return run, new_style, expected_xml
461463

@@ -467,7 +469,7 @@ def style_set_fixture(self, request):
467469
])
468470
def text_get_fixture(self, request):
469471
r_cxml, expected_text = request.param
470-
run = Run(element(r_cxml))
472+
run = Run(element(r_cxml), None)
471473
return run, expected_text
472474

473475
@pytest.fixture(params=[
@@ -479,7 +481,7 @@ def text_get_fixture(self, request):
479481
def text_set_fixture(self, request):
480482
new_text, expected_cxml = request.param
481483
initial_r_cxml = 'w:r/w:t"should get deleted"'
482-
run = Run(element(initial_r_cxml))
484+
run = Run(element(initial_r_cxml), None)
483485
expected_xml = xml(expected_cxml)
484486
return run, new_text, expected_xml
485487

@@ -493,7 +495,7 @@ def text_set_fixture(self, request):
493495
])
494496
def underline_get_fixture(self, request):
495497
r_cxml, expected_underline = request.param
496-
run = Run(element(r_cxml))
498+
run = Run(element(r_cxml), None)
497499
return run, expected_underline
498500

499501
@pytest.fixture(params=[
@@ -515,14 +517,14 @@ def underline_get_fixture(self, request):
515517
])
516518
def underline_set_fixture(self, request):
517519
initial_r_cxml, new_underline, expected_cxml = request.param
518-
run = Run(element(initial_r_cxml))
520+
run = Run(element(initial_r_cxml), None)
519521
expected_xml = xml(expected_cxml)
520522
return run, new_underline, expected_xml
521523

522524
@pytest.fixture(params=['foobar', 42, 'single'])
523525
def underline_raise_fixture(self, request):
524526
invalid_underline_setting = request.param
525-
run = Run(element('w:r/w:rPr'))
527+
run = Run(element('w:r/w:rPr'), None)
526528
return run, invalid_underline_setting
527529

528530
# fixture components ---------------------------------------------

0 commit comments

Comments
 (0)