Skip to content

Commit 61f82ce

Browse files
committed
test: Add tests for workspace discovery
1 parent c8abfae commit 61f82ce

File tree

3 files changed

+2049
-2
lines changed

3 files changed

+2049
-2
lines changed

robotcode/language_server/robotframework/parts/discovering.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,8 @@ async def get_config(self, workspace_uri: str) -> Optional[RobotConfig]:
116116
async def get_tests_from_workspace(
117117
self,
118118
workspace_folder: str,
119-
paths: Optional[List[str]],
120-
suites: Optional[List[str]],
119+
paths: Optional[List[str]] = None,
120+
suites: Optional[List[str]] = None,
121121
*args: Any,
122122
**kwargs: Any,
123123
) -> List[TestItem]:
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
import dataclasses
2+
from pathlib import Path
3+
4+
import pytest
5+
from pytest_regressions.data_regression import DataRegressionFixture
6+
7+
from robotcode.language_server.robotframework.protocol import (
8+
RobotLanguageServerProtocol,
9+
)
10+
11+
12+
@pytest.mark.usefixtures("protocol")
13+
@pytest.mark.asyncio
14+
async def test_workspace_discovery(
15+
data_regression: DataRegressionFixture,
16+
protocol: RobotLanguageServerProtocol,
17+
) -> None:
18+
from robotcode.language_server.robotframework.parts.discovering import TestItem
19+
20+
def split(item: TestItem) -> TestItem:
21+
return dataclasses.replace(
22+
item,
23+
id=item.id.split(";", 1)[1] if ";" in item.id else item.id,
24+
uri="/".join(item.uri.split("/")[-2:]) if item.uri else item.uri,
25+
children=sorted(
26+
[split(v) for v in item.children],
27+
key=lambda v: (
28+
v.uri,
29+
v.range.start if v.range is not None else None,
30+
v.range.end if v.range is not None else None,
31+
),
32+
)
33+
if item.children
34+
else item.children,
35+
)
36+
37+
result = await protocol.robot_discovering.get_tests_from_workspace(Path(Path(__file__).parent, "data").as_uri())
38+
data_regression.check(
39+
{
40+
"result": sorted((split(v) for v in result), key=lambda v: (v.uri, v.range.start, v.range.end))
41+
if result
42+
else result,
43+
}
44+
)

0 commit comments

Comments
 (0)