This is an automated email from the ASF dual-hosted git repository. warren pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/incubator-devlake.git
commit 5e57649665c5463dbddec3facce7e606c5aa7dc1 Author: abeizn <[email protected]> AuthorDate: Wed Jun 22 15:03:02 2022 +0800 e2e on tapd bug_changelog --- plugins/tapd/e2e/bug_changelog_test.go | 113 +++++++++++++++++++++ .../_tool_tapd_bug_changelog_items.csv | 14 +++ .../snapshot_tables/_tool_tapd_bug_changelogs.csv | 14 +++ plugins/tapd/e2e/snapshot_tables/changelogs.csv | 14 +++ plugins/tapd/tasks/bug_changelog_converter.go | 6 +- 5 files changed, 159 insertions(+), 2 deletions(-) diff --git a/plugins/tapd/e2e/bug_changelog_test.go b/plugins/tapd/e2e/bug_changelog_test.go new file mode 100644 index 00000000..04b36285 --- /dev/null +++ b/plugins/tapd/e2e/bug_changelog_test.go @@ -0,0 +1,113 @@ +/* +Licensed to the Apache Software Foundation (ASF) under one or more +contributor license agreements. See the NOTICE file distributed with +this work for additional information regarding copyright ownership. +The ASF licenses this file to You under the Apache License, Version 2.0 +(the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package e2e + +import ( + "fmt" + "github.com/apache/incubator-devlake/models/domainlayer/ticket" + "testing" + + "github.com/apache/incubator-devlake/helpers/e2ehelper" + "github.com/apache/incubator-devlake/plugins/tapd/impl" + "github.com/apache/incubator-devlake/plugins/tapd/models" + "github.com/apache/incubator-devlake/plugins/tapd/tasks" +) + +func TestTapdBugChangelogDataFlow(t *testing.T) { + + var tapd impl.Tapd + dataflowTester := e2ehelper.NewDataFlowTester(t, "tapd", tapd) + + taskData := &tasks.TapdTaskData{ + Options: &tasks.TapdOptions{ + ConnectionId: 1, + CompanyId: 99, + WorkspaceId: 991, + }, + } + // import raw data table + dataflowTester.ImportCsvIntoRawTable("./raw_tables/_raw_tapd_api_bug_changelogs.csv", + "_raw_tapd_api_bug_changelogs") + + // verify extraction + dataflowTester.FlushTabler(&models.TapdBugChangelog{}) + dataflowTester.FlushTabler(&models.TapdBugChangelogItem{}) + dataflowTester.Subtask(tasks.ExtractBugChangelogMeta, taskData) + dataflowTester.VerifyTable( + models.TapdBugChangelog{}, + fmt.Sprintf("./snapshot_tables/%s.csv", models.TapdBugChangelog{}.TableName()), + []string{"connection_id", "id", "field"}, + []string{ + "workspace_id", + "bug_id", + "author", + "old_value", + "new_value", + "memo", + "created", + "_raw_data_params", + "_raw_data_table", + "_raw_data_id", + "_raw_data_remark", + }, + ) + dataflowTester.VerifyTable( + models.TapdBugChangelogItem{}, + fmt.Sprintf("./snapshot_tables/%s.csv", models.TapdBugChangelogItem{}.TableName()), + []string{ + "connection_id", + "changelog_id", + "field", + }, + []string{ + "value_before_parsed", + "value_after_parsed", + "iteration_id_from", + "iteration_id_to", + "_raw_data_params", + "_raw_data_table", + "_raw_data_id", + "_raw_data_remark", + }, + ) + + dataflowTester.FlushTabler(&ticket.Changelog{}) + dataflowTester.Subtask(tasks.ConvertBugChangelogMeta, taskData) + dataflowTester.VerifyTable( + ticket.Changelog{}, + fmt.Sprintf("./snapshot_tables/%s.csv", ticket.Changelog{}.TableName()), + []string{"id"}, + []string{ + "_raw_data_params", + "_raw_data_table", + "_raw_data_id", + "_raw_data_remark", + "issue_id", + "author_id", + "author_name", + "field_id", + "field_name", + "from_value", + "to_value", + "created_date", + "original_from_value", + "original_to_value", + }, + ) + +} diff --git a/plugins/tapd/e2e/snapshot_tables/_tool_tapd_bug_changelog_items.csv b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_bug_changelog_items.csv new file mode 100644 index 00000000..4d086814 --- /dev/null +++ b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_bug_changelog_items.csv @@ -0,0 +1,14 @@ +connection_id,changelog_id,field,value_before_parsed,value_after_parsed,iteration_id_from,iteration_id_to,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark +1,11991001000039,delete_bug,--,--,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,1, +1,11991001000040,delete_bug,--,--,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,2, +1,11991001000090,current_owner,test-11test-11;,test-11test-11test-11;,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,3, +1,11991001000091,delete_bug,--,--,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,4, +1,11991001000093,bugtype,,App,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,5, +1,11991001000094,bugtype,App,H5,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,6, +1,11991001000095,bugtype,H5,test-11test-11,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,7, +1,11991001000096,bugtype,test-11test-11,App,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,8, +1,11991001000097,delete_bug,--,--,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,9, +1,11991001000110,current_owner,test-11test-11test-11;,test-11test-11test-11;,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,10, +1,11991001000112,delete_bug,--,--,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,11, +1,11991001000370,delete_bug,--,--,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,12, +1,11991001000381,delete_bug,--,--,0,0,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,13, diff --git a/plugins/tapd/e2e/snapshot_tables/_tool_tapd_bug_changelogs.csv b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_bug_changelogs.csv new file mode 100644 index 00000000..50ab18cd --- /dev/null +++ b/plugins/tapd/e2e/snapshot_tables/_tool_tapd_bug_changelogs.csv @@ -0,0 +1,14 @@ +connection_id,id,field,workspace_id,bug_id,author,old_value,new_value,memo,created,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark +1,11991001000039,delete_bug,991,11991001000009,test-11test-11,--,--,delete bug,2019-12-13T03:36:06.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,1, +1,11991001000040,delete_bug,991,11991001000008,test-11test-11,--,--,delete bug,2019-12-13T03:36:11.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,2, +1,11991001000090,current_owner,991,11991001000025,test-11test-11test-11,test-11test-11;,test-11test-11test-11;,,2019-12-17T09:35:34.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,3, +1,11991001000091,delete_bug,991,11991001000025,test-11test-11test-11,--,--,delete bug,2019-12-17T09:49:27.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,4, +1,11991001000093,bugtype,991,11991001000026,test-11test-11test-11,,App,,2019-12-17T09:53:19.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,5, +1,11991001000094,bugtype,991,11991001000026,test-11test-11test-11,App,H5,,2019-12-17T09:53:27.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,6, +1,11991001000095,bugtype,991,11991001000026,test-11test-11test-11,H5,test-11test-11,,2019-12-17T09:53:29.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,7, +1,11991001000096,bugtype,991,11991001000026,test-11test-11test-11,test-11test-11,App,,2019-12-17T09:53:32.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,8, +1,11991001000097,delete_bug,991,11991001000026,test-11test-11test-11,--,--,delete bug,2019-12-17T09:53:54.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,9, +1,11991001000110,current_owner,991,11991001000034,test-11test-11test-11,test-11test-11test-11;,test-11test-11test-11;,,2019-12-18T07:39:51.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,10, +1,11991001000112,delete_bug,991,11991001000034,test-11test-11test-11,--,--,delete bug,2019-12-18T07:49:33.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,11, +1,11991001000370,delete_bug,991,11991001000064,test-11test-11,--,--,delete bug,2019-12-20T07:06:39.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,12, +1,11991001000381,delete_bug,991,11991001000075,test-11test-11test-11,--,--,delete bug,2019-12-20T07:37:52.000+00:00,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,13, diff --git a/plugins/tapd/e2e/snapshot_tables/changelogs.csv b/plugins/tapd/e2e/snapshot_tables/changelogs.csv new file mode 100644 index 00000000..25f30421 --- /dev/null +++ b/plugins/tapd/e2e/snapshot_tables/changelogs.csv @@ -0,0 +1,14 @@ +id,_raw_data_params,_raw_data_table,_raw_data_id,_raw_data_remark,issue_id,author_id,author_name,field_id,field_name,from_value,to_value,created_date,original_from_value,original_to_value +tapd:TapdBugChangelog:1:11991001000039:delete_bug,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,1,,tapd:TapdIssue:1:11991001000009,tapd:TapdUser:1:991:test-11test-11,test-11test-11,delete_bug,delete_bug,,,2019-12-13T03:36:06.000+00:00,--,-- +tapd:TapdBugChangelog:1:11991001000040:delete_bug,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,2,,tapd:TapdIssue:1:11991001000008,tapd:TapdUser:1:991:test-11test-11,test-11test-11,delete_bug,delete_bug,,,2019-12-13T03:36:11.000+00:00,--,-- +tapd:TapdBugChangelog:1:11991001000090:current_owner,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,3,,tapd:TapdIssue:1:11991001000025,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,current_owner,current_owner,,,2019-12-17T09:35:34.000+00:00,test-11test-11;,test-11test-11test-11; +tapd:TapdBugChangelog:1:11991001000091:delete_bug,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,4,,tapd:TapdIssue:1:11991001000025,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,delete_bug,delete_bug,,,2019-12-17T09:49:27.000+00:00,--,-- +tapd:TapdBugChangelog:1:11991001000093:bugtype,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,5,,tapd:TapdIssue:1:11991001000026,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,bugtype,bugtype,,,2019-12-17T09:53:19.000+00:00,,App +tapd:TapdBugChangelog:1:11991001000094:bugtype,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,6,,tapd:TapdIssue:1:11991001000026,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,bugtype,bugtype,,,2019-12-17T09:53:27.000+00:00,App,H5 +tapd:TapdBugChangelog:1:11991001000095:bugtype,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,7,,tapd:TapdIssue:1:11991001000026,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,bugtype,bugtype,,,2019-12-17T09:53:29.000+00:00,H5,test-11test-11 +tapd:TapdBugChangelog:1:11991001000096:bugtype,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,8,,tapd:TapdIssue:1:11991001000026,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,bugtype,bugtype,,,2019-12-17T09:53:32.000+00:00,test-11test-11,App +tapd:TapdBugChangelog:1:11991001000097:delete_bug,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,9,,tapd:TapdIssue:1:11991001000026,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,delete_bug,delete_bug,,,2019-12-17T09:53:54.000+00:00,--,-- +tapd:TapdBugChangelog:1:11991001000110:current_owner,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,10,,tapd:TapdIssue:1:11991001000034,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,current_owner,current_owner,,,2019-12-18T07:39:51.000+00:00,test-11test-11test-11;,test-11test-11test-11; +tapd:TapdBugChangelog:1:11991001000112:delete_bug,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,11,,tapd:TapdIssue:1:11991001000034,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,delete_bug,delete_bug,,,2019-12-18T07:49:33.000+00:00,--,-- +tapd:TapdBugChangelog:1:11991001000370:delete_bug,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,12,,tapd:TapdIssue:1:11991001000064,tapd:TapdUser:1:991:test-11test-11,test-11test-11,delete_bug,delete_bug,,,2019-12-20T07:06:39.000+00:00,--,-- +tapd:TapdBugChangelog:1:11991001000381:delete_bug,"{""ConnectionId"":1,""CompanyId"":99,""WorkspaceID"":991}",_raw_tapd_api_bug_changelogs,13,,tapd:TapdIssue:1:11991001000075,tapd:TapdUser:1:991:test-11test-11test-11,test-11test-11test-11,delete_bug,delete_bug,,,2019-12-20T07:37:52.000+00:00,--,-- diff --git a/plugins/tapd/tasks/bug_changelog_converter.go b/plugins/tapd/tasks/bug_changelog_converter.go index 649f5668..3b07480c 100644 --- a/plugins/tapd/tasks/bug_changelog_converter.go +++ b/plugins/tapd/tasks/bug_changelog_converter.go @@ -56,6 +56,8 @@ func ConvertBugChangelog(taskCtx core.SubTaskContext) error { logger := taskCtx.GetLogger() db := taskCtx.GetDal() logger.Info("convert changelog :%d", data.Options.WorkspaceId) + issueIdGen := didgen.NewDomainIdGenerator(&models.TapdIssue{}) + userIdGen := didgen.NewDomainIdGenerator(&models.TapdUser{}) clIdGen := didgen.NewDomainIdGenerator(&models.TapdBugChangelog{}) clauses := []dal.Clause{ dal.Select("tc.created, tc.id, tc.workspace_id, tc.bug_id, tc.author, _tool_tapd_bug_changelog_items.*"), @@ -81,8 +83,8 @@ func ConvertBugChangelog(taskCtx core.SubTaskContext) error { DomainEntity: domainlayer.DomainEntity{ Id: clIdGen.Generate(data.Options.ConnectionId, cl.Id, cl.Field), }, - IssueId: IssueIdGen.Generate(data.Options.ConnectionId, cl.BugId), - AuthorId: UserIdGen.Generate(data.Options.ConnectionId, data.Options.WorkspaceId, cl.Author), + IssueId: issueIdGen.Generate(data.Options.ConnectionId, cl.BugId), + AuthorId: userIdGen.Generate(data.Options.ConnectionId, data.Options.WorkspaceId, cl.Author), AuthorName: cl.Author, FieldId: cl.Field, FieldName: cl.Field,
