11import pytest
22from fastapi .testclient import TestClient
3- from loguru import logger
43from sqlmodel import Session
54
65from app .core .usecases .analyze_issue import AnalyzeIssue
@@ -14,14 +13,17 @@ def test_analyze_issue_command(client: TestClient, session: Session):
1413 issue_number = 1
1514 test_issue = Issue (issue_number = issue_number , issue_state = IssueState .OPEN )
1615
17- repository = SQLModelIssueRepository (session )
16+ uow = SQLModelIssueRepository (session )
1817
19- repository .add (test_issue )
20- repository .commit ()
21- retrieved_issue = repository .get_by_id (issue_number )
22- assert retrieved_issue .issue_number == issue_number
18+ with uow :
19+ uow .add (test_issue )
2320
24- use_case = AnalyzeIssue (issue_number = issue_number , repo = repository )
21+ with uow :
22+ retrieved_issue = uow .get_by_id (issue_number )
23+ assert retrieved_issue .issue_number == issue_number
24+ assert retrieved_issue .issue_state == IssueState .OPEN
25+
26+ use_case = AnalyzeIssue (issue_number = issue_number , repo = uow )
2527 response = use_case .analyze ()
2628 assert response .issue_number == issue_number
2729
@@ -31,10 +33,10 @@ def test_analyze_issue_client(client: TestClient, session: Session):
3133 issue_number = 1
3234 test_issue = Issue (issue_number = issue_number , issue_state = IssueState .OPEN )
3335
34- repository = SQLModelIssueRepository (session )
36+ uow = SQLModelIssueRepository (session )
3537
36- repository . add ( test_issue )
37- repository . commit ( )
38+ with uow :
39+ uow . add ( test_issue )
3840
3941 response = client .post ("/v1/issues/1/analyze" )
4042 assert response .status_code == 200
@@ -45,11 +47,14 @@ def test_analyze_issue_not_found(client: TestClient, session: Session):
4547 # Test case 1: Successful analysis
4648 issue_number = 1
4749
48- repository = SQLModelIssueRepository (session )
49- retrieved_issue = repository .get_by_id (issue_number )
50- assert retrieved_issue .issue_number == 0
50+ uow = SQLModelIssueRepository (session )
51+
52+ with uow :
53+ retrieved_issue = uow .get_by_id (issue_number )
54+ assert retrieved_issue .issue_number == 0
55+
56+ use_case = AnalyzeIssue (issue_number = issue_number , repo = uow )
5157
52- use_case = AnalyzeIssue (issue_number = issue_number , repo = repository )
5358 with pytest .raises (NotFoundException ) as exc_info :
5459 use_case .analyze ()
5560 assert exc_info .value .message == "Issue not found"
@@ -58,7 +63,7 @@ def test_analyze_issue_not_found(client: TestClient, session: Session):
5863 assert response .status_code == 404
5964
6065
61- def test_analyze_issue_invalid_number (client : TestClient , session : Session ):
66+ def test_analyze_issue_invalid_number (client : TestClient ):
6267 """Test analyzing an issue with an invalid issue number."""
6368
6469 response = client .post ("/v1/issues/abc/analyze" )
@@ -70,8 +75,17 @@ def test_analyze_issue_invalid_number(client: TestClient, session: Session):
7075 assert error_detail [0 ]["loc" ] == ["path" , "issue_number" ]
7176
7277
73- def test_analyze_issue_unauthorized (client : TestClient ):
78+ def test_analyze_issue_unauthorized (client : TestClient , session : Session ):
7479 # Test case 3: Unauthorized access
80+
81+ issue_number = 456
82+ test_issue = Issue (issue_number = issue_number , issue_state = IssueState .OPEN )
83+
84+ uow = SQLModelIssueRepository (session )
85+
86+ with uow :
87+ uow .add (test_issue )
88+
7589 response = client .post ("/v1/issues/456/analyze" )
7690 assert response .status_code == 401
7791 assert response .json () == {"detail" : "Unauthorized" }
0 commit comments