Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 78ecbd6

Browse files
DKWoodsSteve Canny
authored andcommitted
tabs: add TabStop.leader setter
1 parent 7f76a12 commit 78ecbd6

File tree

3 files changed

+26
-1
lines changed

3 files changed

+26
-1
lines changed

docx/text/tabstops.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,10 @@ def leader(self):
8585
"""
8686
return self._tab.leader
8787

88+
@leader.setter
89+
def leader(self, value):
90+
self._tab.leader = value
91+
8892
@property
8993
def position(self):
9094
"""

features/tab-tabstop-props.feature

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ Feature: Tab stop properties
5757
| a dotted | DOTS |
5858

5959

60-
@wip
6160
Scenario Outline: Set TabStop.leader
6261
Given a tab stop having <leader> leader
6362
When I assign <member> to tab_stop.leader

tests/text/test_tabstops.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ def it_knows_its_leader(self, leader_get_fixture):
4444
tab_stop, expected_value = leader_get_fixture
4545
assert tab_stop.leader == expected_value
4646

47+
def it_can_change_its_leader(self, leader_set_fixture):
48+
tab_stop, value, expected_xml = leader_set_fixture
49+
tab_stop.leader = value
50+
assert tab_stop._element.xml == expected_xml
51+
4752
# fixture --------------------------------------------------------
4853

4954
@pytest.fixture(params=[
@@ -78,6 +83,23 @@ def leader_get_fixture(self, request):
7883
expected_value = getattr(WD_TAB_LEADER, member)
7984
return tab_stop, expected_value
8085

86+
@pytest.fixture(params=[
87+
('w:tab', 'DOTS', 'w:tab{w:leader=dot}'),
88+
('w:tab{w:leader=dot}', 'DASHES', 'w:tab{w:leader=hyphen}'),
89+
('w:tab{w:leader=hyphen}', 'SPACES', 'w:tab'),
90+
('w:tab{w:leader=hyphen}', None, 'w:tab'),
91+
('w:tab', 'SPACES', 'w:tab'),
92+
('w:tab', None, 'w:tab'),
93+
])
94+
def leader_set_fixture(self, request):
95+
tab_stop_cxml, new_value, expected_cxml = request.param
96+
tab_stop = TabStop(element(tab_stop_cxml))
97+
value = (
98+
None if new_value is None else getattr(WD_TAB_LEADER, new_value)
99+
)
100+
expected_xml = xml(expected_cxml)
101+
return tab_stop, value, expected_xml
102+
81103
@pytest.fixture
82104
def position_get_fixture(self, request):
83105
tab_stop = TabStop(element('w:tab{w:pos=720}'))

0 commit comments

Comments
 (0)