1818from tests .mocks .mock_mcp_client import MockMCPToolClient
1919
2020
21- class TestTaskGitLabIssue (unittest .TestCase ):
22- """Test TaskGitLabIssue functionality with mock data."""
23-
24- # Test constants
25- TEST_PROJECT_ID = 123
26- TEST_ISSUE_IID = 1
27- TEST_TASK_KEY_ISSUE_IID = 123
28- TEST_TASK_KEY_MR_IID = 456
21+ class BaseTestCase (unittest .TestCase ):
22+ """Base test case with common helper methods."""
2923
3024 def _verify_equal (self , actual : object , expected : object , msg : str = "" ) -> None :
3125 """Verify that actual equals expected."""
@@ -52,6 +46,16 @@ def _verify_isinstance(self, obj: object, cls: type, msg: str = "") -> None:
5246 if not isinstance (obj , cls ):
5347 pytest .fail (f"Expected { obj } to be instance of { cls } . { msg } " )
5448
49+
50+ class TestTaskGitLabIssue (BaseTestCase ):
51+ """Test TaskGitLabIssue functionality with mock data."""
52+
53+ # Test constants
54+ TEST_PROJECT_ID = 123
55+ TEST_ISSUE_IID = 1
56+ TEST_TASK_KEY_ISSUE_IID = 123
57+ TEST_TASK_KEY_MR_IID = 456
58+
5559 def setUp (self ) -> None :
5660 """Set up test environment."""
5761 self .config = {
@@ -215,7 +219,7 @@ def test_comment_creation(self) -> None:
215219 task .comment ("This is a test comment" )
216220
217221
218- class TestTaskGetterFromGitLab (unittest . TestCase ):
222+ class TestTaskGetterFromGitLab (BaseTestCase ):
219223 """Test TaskGetterFromGitLab functionality."""
220224
221225 def setUp (self ) -> None :
@@ -316,9 +320,13 @@ def test_get_tasks_filters_by_label(self) -> None:
316320 self ._verify_in ("coding agent" , labels )
317321
318322
319- class TestGitLabTaskKey (unittest . TestCase ):
323+ class TestGitLabTaskKey (BaseTestCase ):
320324 """Test GitLab task key functionality."""
321325
326+ # Test constants
327+ TEST_TASK_KEY_ISSUE_IID = 123
328+ TEST_TASK_KEY_MR_IID = 456
329+
322330 def test_gitlab_issue_task_key_creation (self ) -> None :
323331 """Test GitLab issue task key creation."""
324332 task_key = GitLabIssueTaskKey ("test-group/test-project" , self .TEST_TASK_KEY_ISSUE_IID )
@@ -367,7 +375,7 @@ def test_task_key_equality(self) -> None:
367375 self ._verify_equal (recreated .issue_iid , key1 .issue_iid )
368376
369377
370- class TestGitLabTaskFactory (unittest . TestCase ):
378+ class TestGitLabTaskFactory (BaseTestCase ):
371379 """Test GitLab task factory functionality."""
372380
373381 def setUp (self ) -> None :
@@ -388,7 +396,7 @@ def test_create_gitlab_issue_task(self) -> None:
388396 )
389397
390398 # Similar to GitHub factory, there might be parameter issues
391- with patch ("handlers.task_getter_gitlab .TaskGitLabIssue" ) as mock_task_class :
399+ with patch ("handlers.task_factory .TaskGitLabIssue" ) as mock_task_class :
392400 task_key = GitLabIssueTaskKey (123 , 1 )
393401 factory .create_task (task_key )
394402
@@ -406,7 +414,7 @@ def test_create_task_with_invalid_key_type(self) -> None:
406414 factory .create_task ("invalid_key" )
407415
408416
409- class TestGitLabErrorHandling (unittest . TestCase ):
417+ class TestGitLabErrorHandling (BaseTestCase ):
410418 """Test error handling in GitLab components."""
411419
412420 # Test constants
@@ -526,7 +534,7 @@ def slow_call_tool(tool: str, args: dict[str, Any]) -> object:
526534 self ._verify_isinstance (prompt , str )
527535
528536
529- class TestGitLabLabelManipulation (unittest . TestCase ):
537+ class TestGitLabLabelManipulation (BaseTestCase ):
530538 """Test label manipulation functionality."""
531539
532540 def test_label_manipulation (self ) -> None :
0 commit comments