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

Skip to content

Commit 7f76a12

Browse files
DKWoodsSteve Canny
authored andcommitted
tabs: add TabStop.alignment setter
1 parent edf8d03 commit 7f76a12

File tree

3 files changed

+20
-1
lines changed

3 files changed

+20
-1
lines changed

docx/text/tabstops.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,10 @@ def alignment(self):
7272
"""
7373
return self._tab.val
7474

75+
@alignment.setter
76+
def alignment(self, value):
77+
self._tab.val = value
78+
7579
@property
7680
def leader(self):
7781
"""

features/tab-tabstop-props.feature

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@ Feature: Tab stop properties
3636
| RIGHT |
3737

3838

39-
@wip
4039
Scenario Outline: Set TabStop.alignment
4140
Given a tab stop having <alignment> alignment
4241
When I assign <member> to tab_stop.alignment

tests/text/test_tabstops.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,11 @@ def it_knows_its_alignment(self, alignment_get_fixture):
3535
tab_stop, expected_value = alignment_get_fixture
3636
assert tab_stop.alignment == expected_value
3737

38+
def it_can_change_its_alignment(self, alignment_set_fixture):
39+
tab_stop, value, expected_xml = alignment_set_fixture
40+
tab_stop.alignment = value
41+
assert tab_stop._element.xml == expected_xml
42+
3843
def it_knows_its_leader(self, leader_get_fixture):
3944
tab_stop, expected_value = leader_get_fixture
4045
assert tab_stop.leader == expected_value
@@ -51,6 +56,17 @@ def alignment_get_fixture(self, request):
5156
expected_value = getattr(WD_TAB_ALIGNMENT, member)
5257
return tab_stop, expected_value
5358

59+
@pytest.fixture(params=[
60+
('w:tab{w:val=left}', 'RIGHT', 'w:tab{w:val=right}'),
61+
('w:tab{w:val=right}', 'LEFT', 'w:tab{w:val=left}'),
62+
])
63+
def alignment_set_fixture(self, request):
64+
tab_stop_cxml, member, expected_cxml = request.param
65+
tab_stop = TabStop(element(tab_stop_cxml))
66+
expected_xml = xml(expected_cxml)
67+
value = getattr(WD_TAB_ALIGNMENT, member)
68+
return tab_stop, value, expected_xml
69+
5470
@pytest.fixture(params=[
5571
('w:tab', 'SPACES'),
5672
('w:tab{w:leader=none}', 'SPACES'),

0 commit comments

Comments
 (0)