Skip to content

Commit e2d1e56

Browse files
bhirszmnojek
andauthored
Do not align not templated tests in suite with Test Template (#501)
* Do not align not templated tests in suite with Test Template Co-authored-by: Mateusz Nojek <matnojek@gmail.com>
1 parent 9c7d791 commit e2d1e56

File tree

5 files changed

+73
-0
lines changed

5 files changed

+73
-0
lines changed

docs/releasenotes/4.0.0.rst

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -307,3 +307,14 @@ Bugs
307307
# robotidy: off
308308
# robotidy: on
309309
*** Settings ***
310+
311+
- Test cases with no template will no longer be aligned together with other tests in a templated test case file (#444)::
312+
313+
*** Test Cases *** UNLINTED FILE LINTED FILE
314+
Garbage Commit Message garbage.txt garbage_linted.txt
315+
Valid Commit Message unchanged.txt unchanged_linted.txt
316+
Header Validation
317+
[Template] NONE
318+
${valid header} = Validate Header ${header}
319+
Should Be True ${valid header}
320+
${err invalid header} = Validate Header ${EMPTY}

robotidy/transformers/AlignTemplatedTestCases.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
ForHeader,
88
IfHeader,
99
ModelVisitor,
10+
Template,
1011
Token,
1112
)
1213

@@ -82,6 +83,12 @@ def visit_TestCaseSection(self, node): # noqa
8283
self.widths = counter.widths
8384
return self.generic_visit(node)
8485

86+
def visit_TestCase(self, node): # noqa
87+
for statement in node.body:
88+
if isinstance(statement, Template) and statement.value is None:
89+
return node
90+
return self.generic_visit(node)
91+
8592
@skip_if_disabled
8693
def visit_Statement(self, statement): # noqa
8794
if statement.type == Token.TESTCASE_NAME:
@@ -161,6 +168,12 @@ def visit_TestCaseSection(self, node): # noqa
161168
self.widths[0] = 0
162169
self.widths = [round_to_four(length) for length in self.widths]
163170

171+
def visit_TestCase(self, node): # noqa
172+
for statement in node.body:
173+
if isinstance(statement, Template) and statement.value is None:
174+
return
175+
self.generic_visit(node)
176+
164177
@skip_if_disabled
165178
def visit_Statement(self, statement): # noqa
166179
if statement.type == Token.COMMENT:
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
*** Settings ***
2+
Test Template Test Commit Message
3+
4+
5+
*** Test Cases *** UNLINTED FILE LINTED FILE
6+
Misplaced Git Trailer misplaced_trailer.txt misplaced_trailer_linted.txt
7+
Mixed Unordered List Symbols mixed_unordered.txt mixed_unordered_linted.txt
8+
Incorrectly Ordered List ordered.txt ordered_linted.txt
9+
Unaligned List Item Indention unaligned.txt unaligned_linted.txt
10+
Garbage Commit Message garbage.txt garbage_linted.txt
11+
Valid Commit Message unchanged.txt unchanged_linted.txt ${type trailer} ${type trailer}\n${trailer block}
12+
Header Validation
13+
[Template] NONE
14+
${valid header} = Validate Header ${header}
15+
Should Be True ${valid header}
16+
${err invalid header} = Validate Header ${EMPTY}
17+
Should Not Be True ${err invalid header}
18+
Trailer Validation
19+
[Template]
20+
${valid type trailer} = Validate Type Trailer ${type trailer}
21+
Should Be True ${valid type trailer}
22+
${err invalid trailer} = Validate Type Trailer ${EMPTY}
23+
Should Not Be True ${err invalid trailer}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
*** Settings ***
2+
Test Template Test Commit Message
3+
4+
5+
*** Test Cases *** UNLINTED FILE LINTED FILE
6+
Misplaced Git Trailer misplaced_trailer.txt misplaced_trailer_linted.txt
7+
Mixed Unordered List Symbols mixed_unordered.txt mixed_unordered_linted.txt
8+
Incorrectly Ordered List ordered.txt ordered_linted.txt
9+
Unaligned List Item Indention unaligned.txt unaligned_linted.txt
10+
Garbage Commit Message garbage.txt garbage_linted.txt
11+
Valid Commit Message unchanged.txt unchanged_linted.txt ${type trailer} ${type trailer}\n${trailer block}
12+
Header Validation
13+
[Template] NONE
14+
${valid header} = Validate Header ${header}
15+
Should Be True ${valid header}
16+
${err invalid header} = Validate Header ${EMPTY}
17+
Should Not Be True ${err invalid header}
18+
Trailer Validation
19+
[Template]
20+
${valid type trailer} = Validate Type Trailer ${type trailer}
21+
Should Be True ${valid type trailer}
22+
${err invalid trailer} = Validate Type Trailer ${EMPTY}
23+
Should Not Be True ${err invalid trailer}

tests/atest/transformers/AlignTemplatedTestCases/test_transformer.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,6 @@ def test_disablers(self):
4646

4747
def test_tags(self):
4848
self.compare(source="tags_settings.robot", config=f"-c {self.TRANSFORMER_NAME}:enabled=True", run_all=True)
49+
50+
def test_partly_templated(self):
51+
self.compare(source="partly_templated.robot")

0 commit comments

Comments
 (0)