You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@devlake.apache.org by wa...@apache.org on 2022/06/15 07:56:34 UTC

[incubator-devlake] 07/12: change a name

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 fe6d26ab8f0df252e395a81fda6091a475fb77ca
Author: linyh <ya...@meri.co>
AuthorDate: Wed Jun 15 12:27:55 2022 +0800

    change a name
---
 helpers/e2ehelper/data_flow_tester.go | 20 +++++++++-----------
 plugins/gitlab/e2e/project_test.go    |  4 ++--
 2 files changed, 11 insertions(+), 13 deletions(-)

diff --git a/helpers/e2ehelper/data_flow_tester.go b/helpers/e2ehelper/data_flow_tester.go
index d8fc8585..1c49bbcb 100644
--- a/helpers/e2ehelper/data_flow_tester.go
+++ b/helpers/e2ehelper/data_flow_tester.go
@@ -147,16 +147,8 @@ func (t *DataFlowTester) Subtask(subtaskMeta core.SubTaskMeta, taskData interfac
 	}
 }
 
-// VerifyTable reads rows from csv file and compare with records from database one by one. You must specified the
-// Primary Key Fields with `pkfields` so DataFlowTester could select the exact record from database, as well as which
-// fields to compare with by specifying `targetfields` parameter.
-func (t *DataFlowTester) CreateSnapshotOrVerify(dst schema.Tabler, csvRelPath string, pkfields []string, targetfields []string) {
-	_, err := os.Stat(csvRelPath)
-	if err == nil {
-		t.VerifyTable(dst, csvRelPath, pkfields, targetfields)
-		return
-	}
-
+// CreateSnapshot reads rows from database and write them into .csv file.
+func (t *DataFlowTester) CreateSnapshot(dst schema.Tabler, csvRelPath string, pkfields []string, targetfields []string) {
 	location, _ := time.LoadLocation(`UTC`)
 	allFields := []string{}
 	allFields = append(pkfields, targetfields...)
@@ -222,6 +214,12 @@ func (t *DataFlowTester) CreateSnapshotOrVerify(dst schema.Tabler, csvRelPath st
 // Primary Key Fields with `pkfields` so DataFlowTester could select the exact record from database, as well as which
 // fields to compare with by specifying `targetfields` parameter.
 func (t *DataFlowTester) VerifyTable(dst schema.Tabler, csvRelPath string, pkfields []string, targetfields []string) {
+	_, err := os.Stat(csvRelPath)
+	if os.IsNotExist(err) {
+		t.CreateSnapshot(dst, csvRelPath, pkfields, targetfields)
+		return
+	}
+
 	csvIter := pluginhelper.NewCsvFileIterator(csvRelPath)
 	location, _ := time.LoadLocation(`UTC`)
 	defer csvIter.Close()
@@ -266,7 +264,7 @@ func (t *DataFlowTester) VerifyTable(dst schema.Tabler, csvRelPath string, pkfie
 	}
 
 	var actualTotal int64
-	err := t.Db.Table(dst.TableName()).Count(&actualTotal).Error
+	err = t.Db.Table(dst.TableName()).Count(&actualTotal).Error
 	if err != nil {
 		panic(err)
 	}
diff --git a/plugins/gitlab/e2e/project_test.go b/plugins/gitlab/e2e/project_test.go
index e25461be..c7342ef1 100644
--- a/plugins/gitlab/e2e/project_test.go
+++ b/plugins/gitlab/e2e/project_test.go
@@ -45,7 +45,7 @@ func TestGitlabDataFlow(t *testing.T) {
 	// verify extraction
 	dataflowTester.FlushTabler(&models.GitlabProject{})
 	dataflowTester.Subtask(tasks.ExtractProjectMeta, taskData)
-	dataflowTester.CreateSnapshotOrVerify(
+	dataflowTester.VerifyTable(
 		models.GitlabProject{},
 		"tables/_tool_gitlab_projects.csv",
 		[]string{"connection_id", "gitlab_id"},
@@ -73,7 +73,7 @@ func TestGitlabDataFlow(t *testing.T) {
 	// verify conversion
 	dataflowTester.FlushTabler(&code.Repo{})
 	dataflowTester.Subtask(tasks.ConvertProjectMeta, taskData)
-	dataflowTester.CreateSnapshotOrVerify(
+	dataflowTester.VerifyTable(
 		code.Repo{},
 		"tables/repos.csv",
 		[]string{"id"},