From ae54abf5edfd238cb257fe4f82bd95a7f45c14bb Mon Sep 17 00:00:00 2001 From: liyang Date: Tue, 17 Jun 2025 13:59:10 +0800 Subject: [PATCH] * [unittest] fix unitest for gitlab and mr. --- module/gitlab/test/model/apicreateproject.php | 3 ++- module/gitlab/test/model/apideleteproject.php | 9 +++++---- module/gitlab/test/model/apiupdateproject.php | 11 ++++++----- module/gitlab/test/model/createproject.php | 4 ++-- module/gitlab/test/model/editproject.php | 13 +++++++------ module/mr/test/lib/mr.unittest.class.php | 5 +++++ module/mr/test/model/apicreatemr.php | 5 ++++- module/mr/test/model/apideletemr.php | 2 +- 8 files changed, 32 insertions(+), 20 deletions(-) diff --git a/module/gitlab/test/model/apicreateproject.php b/module/gitlab/test/model/apicreateproject.php index 993546541e..9d8542ca13 100755 --- a/module/gitlab/test/model/apicreateproject.php +++ b/module/gitlab/test/model/apicreateproject.php @@ -44,7 +44,8 @@ $project->path = 'unit_test_project17'; $result = $gitlab->apiCreateProject($gitlabID, $project); if(!empty($result->name) and $result->name == $project->name) $result = true; if(!empty($result->message->path[0]) and $result->message->path[0] == '已经被使用') $result = true; +if(!empty($result->message->{"project_namespace.name"}[0]) and $result->message->{"project_namespace.name"}[0] == '已经被使用') $result = true; r($result) && p() && e('1'); //通过gitlabID,projectID,分支对象正确创建GitLab分支 $result = $gitlab->apiCreateProject($gitlabID, $project); -r($result->message) && p('path:0') && e('已经被使用'); //使用重复的分支信息创建分支 \ No newline at end of file +r($result->message) && p('project_namespace.name:0') && e('已经被使用'); //使用重复的分支信息创建分支 diff --git a/module/gitlab/test/model/apideleteproject.php b/module/gitlab/test/model/apideleteproject.php index 6aeb3e8a87..e66f3f6b5c 100755 --- a/module/gitlab/test/model/apideleteproject.php +++ b/module/gitlab/test/model/apideleteproject.php @@ -19,11 +19,12 @@ zenData('pipeline')->gen(5); $gitlab = $tester->loadModel('gitlab'); $gitlabID = 1; +$projectName = 'unitTestProject' . time(); /* Create project. */ $project = new stdclass(); -$project->name = 'unitTestProject17'; -$project->path = 'unit_test_project17'; +$project->name = $projectName; +$project->path = $projectName; $project->description = 'unit_test_project desc'; $project->visibility = 'public'; $project->namespace_id = '1'; @@ -33,7 +34,7 @@ $gitlab->apiCreateProject($gitlabID, $project); $gitlabProjects = $gitlab->apiGetProjects($gitlabID); foreach($gitlabProjects as $gitlabProject) { - if($gitlabProject->name == 'unitTestProject17') + if($gitlabProject->name == $projectName) { $projectID = $gitlabProject->id; break; @@ -46,4 +47,4 @@ $project->description = 'apiUpdatedProject'; r($gitlab->apiDeleteProject($gitlabID, 0)) && p() && e('0'); //使用空的projectID删除项目 r($gitlab->apiDeleteProject(0, $projectID)) && p() && e('0'); //使用错误gitlabID删除项目 -r($gitlab->apiDeleteProject($gitlabID, $projectID)) && p('message') && e('202 Accepted'); //通过gitlabID,项目id正确删除项目 \ No newline at end of file +r($gitlab->apiDeleteProject($gitlabID, $projectID)) && p('message') && e('202 Accepted'); //通过gitlabID,项目id正确删除项目 diff --git a/module/gitlab/test/model/apiupdateproject.php b/module/gitlab/test/model/apiupdateproject.php index a1a8aab056..07f72440f0 100755 --- a/module/gitlab/test/model/apiupdateproject.php +++ b/module/gitlab/test/model/apiupdateproject.php @@ -18,12 +18,13 @@ zenData('pipeline')->gen(5); $gitlab = $tester->loadModel('gitlab'); -$gitlabID = 1; +$gitlabID = 1; +$projectName = 'unitTestUpdateProject' . time(); /* Create project. */ $project = new stdclass(); -$project->name = 'unitTestProject17'; -$project->path = 'unit_test_project17'; +$project->name = $projectName; +$project->path = $projectName; $project->description = 'unit_test_project desc'; $project->visibility = 'public'; $project->namespace_id = '1'; @@ -33,7 +34,7 @@ $gitlab->apiCreateProject($gitlabID, $project); $gitlabProjects = $gitlab->apiGetProjects($gitlabID); foreach($gitlabProjects as $gitlabProject) { - if($gitlabProject->name == 'unitTestProject17') + if($gitlabProject->name == $projectName) { $projectID = $gitlabProject->id; break; @@ -47,4 +48,4 @@ r($gitlab->apiUpdateProject($gitlabID, $project)) && p() && e('0'); //使用空 r($gitlab->apiUpdateProject(0, $project)) && p() && e('0'); //使用错误gitlabID创建群组 $project->id = $projectID; -r($gitlab->apiUpdateProject($gitlabID, $project)) && p('description') && e('apiUpdatedProject'); //通过gitlabID,用户对象正确更新项目描述 \ No newline at end of file +r($gitlab->apiUpdateProject($gitlabID, $project)) && p('description') && e('apiUpdatedProject'); //通过gitlabID,用户对象正确更新项目描述 diff --git a/module/gitlab/test/model/createproject.php b/module/gitlab/test/model/createproject.php index 1ed4dfb0be..5b4ed4719d 100755 --- a/module/gitlab/test/model/createproject.php +++ b/module/gitlab/test/model/createproject.php @@ -36,5 +36,5 @@ r($gitlab->createProjectTest($gitlabID, $project)) && p('path:0') && e('项目 $project->path = 'unit_test_project17'; $result = $gitlab->createProjectTest($gitlabID, $project); -if(!empty($result['name'][0]) and $result['name'][0] == '已经被使用') $result = true; -r($result) && p() && e('1'); //通过gitlabID,projectID,分支对象正确创建GitLab项目 \ No newline at end of file +if(!empty($result['project_namespace.name'][0]) and $result['project_namespace.name'][0] == '已经被使用') $result = true; +r($result) && p() && e('1'); //通过gitlabID,projectID,分支对象正确创建GitLab项目 diff --git a/module/gitlab/test/model/editproject.php b/module/gitlab/test/model/editproject.php index 0a36a68250..3bb2fe777c 100755 --- a/module/gitlab/test/model/editproject.php +++ b/module/gitlab/test/model/editproject.php @@ -19,12 +19,13 @@ zenData('pipeline')->gen(5); $gitlab = $tester->loadModel('gitlab'); -$gitlabID = 1; +$gitlabID = 1; +$projectName = 'unitest' . time(); /* Create project. */ $project = new stdclass(); -$project->name = 'unitTestProject17'; -$project->path = 'unit_test_project17'; +$project->name = $projectName; +$project->path = $projectName; $project->description = 'unit_test_project editproject unit test'; $project->visibility = 'public'; $project->namespace_id = '1'; @@ -34,7 +35,7 @@ $gitlab->apiCreateProject($gitlabID, $project); $gitlabProjects = $gitlab->apiGetProjects($gitlabID); foreach($gitlabProjects as $gitlabProject) { - if($gitlabProject->name == 'unitTestProject17') + if($gitlabProject->name == $projectName) { $projectID = $gitlabProject->id; break; @@ -47,6 +48,6 @@ $project->description = 'editProject'; $gitlabTest = new gitlabTest(); r($gitlabTest->editProjectTest($gitlabID, $project)) && p('name:0') && e('项目名称不能为空'); //使用空的projectID创建gitlab群组 -$project->name = 'unitTestProject17'; +$project->name = $projectName; $project->id = $projectID; -r($gitlabTest->editProjectTest($gitlabID, $project)) && p() && e('1'); //通过gitlabID,用户对象正确更新项目描述 \ No newline at end of file +r($gitlabTest->editProjectTest($gitlabID, $project)) && p() && e('1'); //通过gitlabID,用户对象正确更新项目描述 diff --git a/module/mr/test/lib/mr.unittest.class.php b/module/mr/test/lib/mr.unittest.class.php index ac0524e04b..bba3f63da5 100755 --- a/module/mr/test/lib/mr.unittest.class.php +++ b/module/mr/test/lib/mr.unittest.class.php @@ -179,6 +179,11 @@ class mrTest $params->repoID = $hostID; $params->sourceProject = $project; $result = $this->objectModel->apiCreateMR($hostID, $params); + if(!empty($result->message) && preg_match('/ID(\d+)/', $result->message, $matches)) + { + $this->objectModel->apiDeleteMR($hostID, $project, (int)$matches[1]); + $result = $this->objectModel->apiCreateMR($hostID, $params); + } if(empty($result->iid) && empty($result->id)) return $result; $this->objectModel->apiDeleteMR($hostID, $project, empty($result->iid) ? $result->id : $result->iid); diff --git a/module/mr/test/model/apicreatemr.php b/module/mr/test/model/apicreatemr.php index 80ad11f17a..2cab405fcd 100755 --- a/module/mr/test/model/apicreatemr.php +++ b/module/mr/test/model/apicreatemr.php @@ -10,6 +10,9 @@ cid=0 - 正确的数据创建Gitlab合并请求 - 属性title @test - 属性state @opened + - 属性description @This is a test merge request + - 属性sourceBranch @main + - 属性targetBranch @master */ @@ -39,4 +42,4 @@ $params->assignee = ''; $params->removeSourceBranch = 0; $params->squash = 0; -r($mrModel->apiCreateMrTester($gitlabID, $projectID, $params)) && p('title,state') && e('test,opened'); // 正确的数据创建Gitlab合并请求 +r($mrModel->apiCreateMrTester($gitlabID, $projectID, $params)) && p('title,state,description,source_branch,target_branch') && e('test,opened,This is a test merge request,main,master'); // 正确的数据创建Gitlab合并请求 diff --git a/module/mr/test/model/apideletemr.php b/module/mr/test/model/apideletemr.php index a5a88d1b85..2022e17ff0 100755 --- a/module/mr/test/model/apideletemr.php +++ b/module/mr/test/model/apideletemr.php @@ -34,4 +34,4 @@ $params->assignee = ''; $params->removeSourceBranch = 0; $params->squash = 0; -r($mrModel->apiDeleteMrTester($gitlabID, $gitlabProjectID, $params)) && p('message') && e('0'); // 正确的数据创建并删除Gitlab合并请求 \ No newline at end of file +r($mrModel->apiDeleteMrTester($gitlabID, $gitlabProjectID, $params)) && p('message') && e('0'); // 正确的数据创建并删除Gitlab合并请求