Skip to content

Commit b9f4d5e

Browse files
committed
test: introduce timeout/wait_for for langserver tests
1 parent 79605b1 commit b9f4d5e

File tree

7 files changed

+66
-37
lines changed

7 files changed

+66
-37
lines changed

tests/robotcode/language_server/robotframework/parts/test_discovering.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import asyncio
12
import dataclasses
23
from pathlib import Path
34

@@ -37,8 +38,11 @@ def split(item: TestItem) -> TestItem:
3738
else item.children,
3839
)
3940

40-
result = await run_coroutine_in_thread(
41-
protocol.robot_discovering.get_tests_from_workspace, Path(Path(__file__).parent, "data").as_uri()
41+
result = await asyncio.wait_for(
42+
run_coroutine_in_thread(
43+
protocol.robot_discovering.get_tests_from_workspace, Path(Path(__file__).parent, "data").as_uri()
44+
),
45+
120,
4246
)
4347
regtest.write(
4448
yaml.dump(

tests/robotcode/language_server/robotframework/parts/test_document_highlight.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import asyncio
12
from pathlib import Path
23

34
import pytest
@@ -33,11 +34,14 @@ async def test(
3334
test_document: TextDocument,
3435
data: GeneratedTestData,
3536
) -> None:
36-
result = result = await run_coroutine_in_thread(
37-
protocol.robot_document_highlight.collect,
38-
protocol.robot_document_highlight,
39-
test_document,
40-
Position(line=data.line, character=data.character),
37+
result = await asyncio.wait_for(
38+
run_coroutine_in_thread(
39+
protocol.robot_document_highlight.collect,
40+
protocol.robot_document_highlight,
41+
test_document,
42+
Position(line=data.line, character=data.character),
43+
),
44+
60,
4145
)
4246
regtest.write(
4347
yaml.dump(

tests/robotcode/language_server/robotframework/parts/test_foldingrange.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import asyncio
12
from pathlib import Path
23
from typing import Any, Iterable, Iterator, Tuple, Union
34

@@ -70,8 +71,8 @@ async def test(
7071
test_document: TextDocument,
7172
data: GeneratedTestData,
7273
) -> None:
73-
result = await run_coroutine_in_thread(
74-
protocol.robot_folding_ranges.collect, protocol.robot_folding_ranges, test_document
74+
result = await asyncio.wait_for(
75+
run_coroutine_in_thread(protocol.robot_folding_ranges.collect, protocol.robot_folding_ranges, test_document), 60
7576
)
7677

7778
regtest.write(yaml.dump({"data": data, "result": result}))

tests/robotcode/language_server/robotframework/parts/test_goto_definition.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import asyncio
12
from pathlib import Path
23

34
import pytest
@@ -34,11 +35,14 @@ async def test_definition(
3435
test_document: TextDocument,
3536
data: GeneratedTestData,
3637
) -> None:
37-
result = await run_coroutine_in_thread(
38-
protocol.robot_goto.collect_definition,
39-
protocol.robot_goto,
40-
test_document,
41-
Position(line=data.line, character=data.character),
38+
result = await asyncio.wait_for(
39+
run_coroutine_in_thread(
40+
protocol.robot_goto.collect_definition,
41+
protocol.robot_goto,
42+
test_document,
43+
Position(line=data.line, character=data.character),
44+
),
45+
60,
4246
)
4347

4448
regtest.write(yaml.dump({"data": data, "result": split(result)}))

tests/robotcode/language_server/robotframework/parts/test_goto_implementation.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import asyncio
12
from pathlib import Path
23
from typing import List, Union, cast
34

@@ -58,11 +59,14 @@ async def test_implementation(
5859
test_document: TextDocument,
5960
data: GeneratedTestData,
6061
) -> None:
61-
result = await run_coroutine_in_thread(
62-
protocol.robot_goto.collect_implementation,
63-
protocol.robot_goto,
64-
test_document,
65-
Position(line=data.line, character=data.character),
62+
result = await asyncio.wait_for(
63+
run_coroutine_in_thread(
64+
protocol.robot_goto.collect_implementation,
65+
protocol.robot_goto,
66+
test_document,
67+
Position(line=data.line, character=data.character),
68+
),
69+
60,
6670
)
6771

6872
regtest.write(yaml.dump({"data": data, "result": split(result)}))

tests/robotcode/language_server/robotframework/parts/test_hover.py

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import asyncio
12
from pathlib import Path
23
from typing import Optional
34

@@ -19,6 +20,17 @@
1920
)
2021

2122

23+
def split(hover: Optional[Hover]) -> Optional[Hover]:
24+
if hover is None:
25+
return None
26+
if isinstance(hover.contents, MarkupContent):
27+
return Hover(
28+
MarkupContent(hover.contents.kind, hover.contents.value.splitlines()[0].split("=")[0].strip()),
29+
hover.range,
30+
)
31+
return hover
32+
33+
2234
@pytest.mark.parametrize(
2335
("test_document", "data"),
2436
generate_tests_from_source_document(Path(Path(__file__).parent, "data/tests/hover.robot")),
@@ -34,18 +46,14 @@ async def test(
3446
test_document: TextDocument,
3547
data: GeneratedTestData,
3648
) -> None:
37-
result = await run_coroutine_in_thread(
38-
protocol.robot_hover.collect, protocol.hover, test_document, Position(line=data.line, character=data.character)
49+
result = await asyncio.wait_for(
50+
run_coroutine_in_thread(
51+
protocol.robot_hover.collect,
52+
protocol.hover,
53+
test_document,
54+
Position(line=data.line, character=data.character),
55+
),
56+
60,
3957
)
4058

41-
def split(hover: Optional[Hover]) -> Optional[Hover]:
42-
if hover is None:
43-
return None
44-
if isinstance(hover.contents, MarkupContent):
45-
return Hover(
46-
MarkupContent(hover.contents.kind, hover.contents.value.splitlines()[0].split("=")[0].strip()),
47-
hover.range,
48-
)
49-
return hover
50-
5159
regtest.write(yaml.dump({"data": data, "result": split(result)}))

tests/robotcode/language_server/robotframework/parts/test_references.py

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import asyncio
12
from pathlib import Path
23

34
import pytest
@@ -40,12 +41,15 @@ async def test(
4041
def split(location: Location) -> Location:
4142
return Location("/".join(location.uri.split("/")[-2:]), location.range)
4243

43-
result = await run_coroutine_in_thread(
44-
protocol.robot_references.collect,
45-
protocol.robot_references,
46-
test_document,
47-
Position(line=data.line, character=data.character),
48-
ReferenceContext(include_declaration=True),
44+
result = await asyncio.wait_for(
45+
run_coroutine_in_thread(
46+
protocol.robot_references.collect,
47+
protocol.robot_references,
48+
test_document,
49+
Position(line=data.line, character=data.character),
50+
ReferenceContext(include_declaration=True),
51+
),
52+
60,
4953
)
5054
regtest.write(
5155
yaml.dump(

0 commit comments

Comments
 (0)