Skip to content

Commit 7f7d43d

Browse files
authored
Merge pull request #108 from Pantheon-temple/dev
Refactor test cases to simplify async context management and improve readability
2 parents 0000a48 + e9249aa commit 7f7d43d

8 files changed

Lines changed: 265 additions & 278 deletions

File tree

pytest.ini

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,5 @@ testpaths = tests
33
markers =
44
slow: slow tests
55
git: tests that require git
6-
addopts = --ignore=prometheus/script/
6+
addopts = --ignore=prometheus/script/
7+
asyncio_mode = auto

tests/app/services/test_issue_service.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,6 @@ def issue_service(mock_neo4j_service, mock_llm_service, mock_repository_service)
4444
)
4545

4646

47-
@pytest.mark.asyncio
4847
async def test_answer_issue_with_general_container(issue_service, monkeypatch):
4948
# Setup
5049
mock_issue_graph = Mock()
@@ -106,7 +105,6 @@ async def test_answer_issue_with_general_container(issue_service, monkeypatch):
106105
assert result == ("test_patch", True, True, True, "test_response", IssueType.BUG)
107106

108107

109-
@pytest.mark.asyncio
110108
async def test_answer_issue_with_user_defined_container(issue_service, monkeypatch):
111109
# Setup
112110
mock_issue_graph = Mock()

tests/app/services/test_knowledge_graph_service.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,6 @@ def knowledge_graph_service(mock_neo4j_service, mock_kg_handler):
4141
return knowledge_graph_service
4242

4343

44-
@pytest.mark.asyncio
4544
async def test_build_and_save_knowledge_graph(knowledge_graph_service, mock_kg_handler):
4645
"""Test the build_and_save_knowledge_graph method."""
4746
# Given

tests/app/services/test_neo4j_service.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66

77
@pytest.mark.slow
88
async def test_neo4j_service(neo4j_container_with_kg_fixture): # noqa: F811
9-
async for neo4j_container, kg in neo4j_container_with_kg_fixture:
10-
neo4j_service = Neo4jService(
11-
neo4j_container.get_connection_url(), neo4j_container.username, neo4j_container.password
12-
)
13-
assert neo4j_service.neo4j_driver is not None
14-
try:
15-
neo4j_service.neo4j_driver.verify_connectivity()
16-
except Exception as e:
17-
pytest.fail(f"Connection verification failed: {e}")
9+
neo4j_container, kg = neo4j_container_with_kg_fixture
10+
neo4j_service = Neo4jService(
11+
neo4j_container.get_connection_url(), neo4j_container.username, neo4j_container.password
12+
)
13+
assert neo4j_service.neo4j_driver is not None
14+
try:
15+
neo4j_service.neo4j_driver.verify_connectivity()
16+
except Exception as e:
17+
pytest.fail(f"Connection verification failed: {e}")

tests/graph/test_knowledge_graph.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,9 +74,9 @@ async def test_get_file_tree_depth_two_max_seven_lines():
7474

7575
@pytest.mark.slow
7676
async def test_from_neo4j(neo4j_container_with_kg_fixture): # noqa: F811
77-
async for neo4j_container, kg in neo4j_container_with_kg_fixture:
78-
driver = neo4j_container.get_driver()
79-
handler = KnowledgeGraphHandler(driver, 100)
80-
read_kg = handler.read_knowledge_graph(0, 1000, 100, 10)
77+
neo4j_container, kg = neo4j_container_with_kg_fixture
78+
driver = neo4j_container.get_driver()
79+
handler = KnowledgeGraphHandler(driver, 100)
80+
read_kg = handler.read_knowledge_graph(0, 1000, 100, 10)
8181

82-
assert read_kg == kg
82+
assert read_kg == kg

tests/lang_graph/nodes/test_context_provider_node.py

Lines changed: 21 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,29 +9,27 @@
99
@pytest.mark.slow
1010
async def test_context_provider_node_basic_query(neo4j_container_with_kg_fixture): # noqa: F811
1111
"""Test basic query handling with the ContextProviderNode."""
12-
async for neo4j_container, kg in neo4j_container_with_kg_fixture:
13-
fake_response = "Fake response"
14-
fake_llm = FakeListChatWithToolsModel(responses=[fake_response])
15-
node = ContextProviderNode(
16-
model=fake_llm,
17-
kg=kg,
18-
neo4j_driver=neo4j_container.get_driver(),
19-
max_token_per_result=1000,
20-
)
12+
neo4j_container, kg = neo4j_container_with_kg_fixture
13+
fake_response = "Fake response"
14+
fake_llm = FakeListChatWithToolsModel(responses=[fake_response])
15+
node = ContextProviderNode(
16+
model=fake_llm,
17+
kg=kg,
18+
neo4j_driver=neo4j_container.get_driver(),
19+
max_token_per_result=1000,
20+
)
2121

22-
test_messages = [
23-
AIMessage(content="This code handles file processing"),
24-
ToolMessage(
25-
content="Found implementation in utils.py", tool_call_id="test_tool_call_1"
26-
),
27-
]
28-
test_state = {
29-
"original_query": "How does the error handling work?",
30-
"context_provider_messages": test_messages,
31-
}
22+
test_messages = [
23+
AIMessage(content="This code handles file processing"),
24+
ToolMessage(content="Found implementation in utils.py", tool_call_id="test_tool_call_1"),
25+
]
26+
test_state = {
27+
"original_query": "How does the error handling work?",
28+
"context_provider_messages": test_messages,
29+
}
3230

33-
result = node(test_state)
31+
result = node(test_state)
3432

35-
assert "context_provider_messages" in result
36-
assert len(result["context_provider_messages"]) == 1
37-
assert result["context_provider_messages"][0].content == fake_response
33+
assert "context_provider_messages" in result
34+
assert len(result["context_provider_messages"]) == 1
35+
assert result["context_provider_messages"][0].content == fake_response

tests/neo4j/test_knowledge_graph_handler.py

Lines changed: 55 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -11,109 +11,102 @@
1111

1212
@pytest.mark.slow
1313
async def test_num_ast_nodes(neo4j_container_with_kg_fixture): # noqa: F811
14-
async for neo4j_container, kg in neo4j_container_with_kg_fixture:
15-
handler = KnowledgeGraphHandler(neo4j_container.get_driver(), 100)
14+
neo4j_container, kg = neo4j_container_with_kg_fixture
15+
handler = KnowledgeGraphHandler(neo4j_container.get_driver(), 100)
1616

17-
with neo4j_container.get_driver() as driver:
18-
with driver.session() as session:
19-
read_ast_nodes = session.execute_read(handler._read_ast_nodes, root_node_id=0)
20-
assert len(read_ast_nodes) == 84
17+
with neo4j_container.get_driver() as driver:
18+
with driver.session() as session:
19+
read_ast_nodes = session.execute_read(handler._read_ast_nodes, root_node_id=0)
20+
assert len(read_ast_nodes) == 84
2121

2222

2323
@pytest.mark.slow
2424
async def test_num_file_nodes(neo4j_container_with_kg_fixture): # noqa: F811
25-
async for neo4j_container, kg in neo4j_container_with_kg_fixture:
26-
handler = KnowledgeGraphHandler(neo4j_container.get_driver(), 100)
25+
neo4j_container, kg = neo4j_container_with_kg_fixture
26+
handler = KnowledgeGraphHandler(neo4j_container.get_driver(), 100)
2727

28-
with neo4j_container.get_driver() as driver:
29-
with driver.session() as session:
30-
read_file_nodes = session.execute_read(handler._read_file_nodes, root_node_id=0)
31-
assert len(read_file_nodes) == 9
28+
with neo4j_container.get_driver() as driver:
29+
with driver.session() as session:
30+
read_file_nodes = session.execute_read(handler._read_file_nodes, root_node_id=0)
31+
assert len(read_file_nodes) == 9
3232

3333

3434
@pytest.mark.slow
3535
async def test_num_text_nodes(neo4j_container_with_kg_fixture): # noqa: F811
36-
async for neo4j_container, kg in neo4j_container_with_kg_fixture:
37-
handler = KnowledgeGraphHandler(neo4j_container.get_driver(), 100)
36+
neo4j_container, kg = neo4j_container_with_kg_fixture
37+
handler = KnowledgeGraphHandler(neo4j_container.get_driver(), 100)
3838

39-
with neo4j_container.get_driver() as driver:
40-
with driver.session() as session:
41-
read_text_nodes = session.execute_read(handler._read_text_nodes, root_node_id=0)
42-
assert len(read_text_nodes) == 2
39+
with neo4j_container.get_driver() as driver:
40+
with driver.session() as session:
41+
read_text_nodes = session.execute_read(handler._read_text_nodes, root_node_id=0)
42+
assert len(read_text_nodes) == 2
4343

4444

4545
@pytest.mark.slow
4646
async def test_num_parent_of_edges(neo4j_container_with_kg_fixture): # noqa: F811
47-
async for neo4j_container, kg in neo4j_container_with_kg_fixture:
48-
handler = KnowledgeGraphHandler(neo4j_container.get_driver(), 100)
47+
neo4j_container, kg = neo4j_container_with_kg_fixture
48+
handler = KnowledgeGraphHandler(neo4j_container.get_driver(), 100)
4949

50-
with neo4j_container.get_driver() as driver:
51-
with driver.session() as session:
52-
read_parent_of_edges = session.execute_read(
53-
handler._read_parent_of_edges, root_node_id=0
54-
)
55-
assert len(read_parent_of_edges) == 81
50+
with neo4j_container.get_driver() as driver:
51+
with driver.session() as session:
52+
read_parent_of_edges = session.execute_read(
53+
handler._read_parent_of_edges, root_node_id=0
54+
)
55+
assert len(read_parent_of_edges) == 81
5656

5757

5858
@pytest.mark.slow
5959
async def test_num_has_file_edges(neo4j_container_with_kg_fixture): # noqa: F811
60-
async for neo4j_container, kg in neo4j_container_with_kg_fixture:
61-
handler = KnowledgeGraphHandler(neo4j_container.get_driver(), 100)
60+
neo4j_container, kg = neo4j_container_with_kg_fixture
61+
handler = KnowledgeGraphHandler(neo4j_container.get_driver(), 100)
6262

63-
with neo4j_container.get_driver() as driver:
64-
with driver.session() as session:
65-
read_has_file_edges = session.execute_read(
66-
handler._read_has_file_edges, root_node_id=0
67-
)
68-
print(read_has_file_edges)
69-
assert len(read_has_file_edges) == 8
63+
with neo4j_container.get_driver() as driver:
64+
with driver.session() as session:
65+
read_has_file_edges = session.execute_read(handler._read_has_file_edges, root_node_id=0)
66+
assert len(read_has_file_edges) == 8
7067

7168

7269
@pytest.mark.slow
7370
async def test_num_has_ast_edges(neo4j_container_with_kg_fixture): # noqa: F811
74-
async for neo4j_container, kg in neo4j_container_with_kg_fixture:
75-
handler = KnowledgeGraphHandler(neo4j_container.get_driver(), 100)
71+
neo4j_container, kg = neo4j_container_with_kg_fixture
72+
handler = KnowledgeGraphHandler(neo4j_container.get_driver(), 100)
7673

77-
with neo4j_container.get_driver() as driver:
78-
with driver.session() as session:
79-
read_has_ast_edges = session.execute_read(
80-
handler._read_has_ast_edges, root_node_id=0
81-
)
82-
assert len(read_has_ast_edges) == 3
74+
with neo4j_container.get_driver() as driver:
75+
with driver.session() as session:
76+
read_has_ast_edges = session.execute_read(handler._read_has_ast_edges, root_node_id=0)
77+
assert len(read_has_ast_edges) == 3
8378

8479

8580
@pytest.mark.slow
8681
async def test_num_has_text_edges(neo4j_container_with_kg_fixture): # noqa: F811
87-
async for neo4j_container, kg in neo4j_container_with_kg_fixture:
88-
handler = KnowledgeGraphHandler(neo4j_container.get_driver(), 100)
82+
neo4j_container, kg = neo4j_container_with_kg_fixture
83+
handler = KnowledgeGraphHandler(neo4j_container.get_driver(), 100)
8984

90-
with neo4j_container.get_driver() as driver:
91-
with driver.session() as session:
92-
read_has_text_edges = session.execute_read(
93-
handler._read_has_text_edges, root_node_id=0
94-
)
95-
assert len(read_has_text_edges) == 2
85+
with neo4j_container.get_driver() as driver:
86+
with driver.session() as session:
87+
read_has_text_edges = session.execute_read(handler._read_has_text_edges, root_node_id=0)
88+
assert len(read_has_text_edges) == 2
9689

9790

9891
@pytest.mark.slow
9992
async def test_num_next_chunk_edges(neo4j_container_with_kg_fixture): # noqa: F811
100-
async for neo4j_container, kg in neo4j_container_with_kg_fixture:
101-
handler = KnowledgeGraphHandler(neo4j_container.get_driver(), 100)
93+
neo4j_container, kg = neo4j_container_with_kg_fixture
94+
handler = KnowledgeGraphHandler(neo4j_container.get_driver(), 100)
10295

103-
with neo4j_container.get_driver() as driver:
104-
with driver.session() as session:
105-
read_next_chunk_edges = session.execute_read(
106-
handler._read_next_chunk_edges, root_node_id=0
107-
)
108-
assert len(read_next_chunk_edges) == 1
96+
with neo4j_container.get_driver() as driver:
97+
with driver.session() as session:
98+
read_next_chunk_edges = session.execute_read(
99+
handler._read_next_chunk_edges, root_node_id=0
100+
)
101+
assert len(read_next_chunk_edges) == 1
109102

110103

111104
@pytest.mark.slow
112105
async def test_knowledge_graph_exists(neo4j_container_with_kg_fixture): # noqa: F811
113-
async for neo4j_container, kg in neo4j_container_with_kg_fixture:
114-
handler = KnowledgeGraphHandler(neo4j_container.get_driver(), 100)
106+
neo4j_container, kg = neo4j_container_with_kg_fixture
107+
handler = KnowledgeGraphHandler(neo4j_container.get_driver(), 100)
115108

116-
assert handler.knowledge_graph_exists(0)
109+
assert handler.knowledge_graph_exists(0)
117110

118111

119112
@pytest.mark.slow

0 commit comments

Comments
 (0)