bug.go 3.0 KB
Newer Older
1 2 3 4
package zentaoService

import (
	"fmt"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
5
	"github.com/bitly/go-simplejson"
6
	"github.com/easysoft/zentaoatf/src/model"
7 8
	"github.com/easysoft/zentaoatf/src/service/client"
	testingService "github.com/easysoft/zentaoatf/src/service/testing"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
9
	i118Utils "github.com/easysoft/zentaoatf/src/utils/i118"
10
	"github.com/easysoft/zentaoatf/src/utils/log"
11
	"github.com/easysoft/zentaoatf/src/utils/vari"
aaronchen2k2k's avatar
aaronchen2k2k 已提交
12
	uuid "github.com/satori/go.uuid"
13
	"strconv"
14
	"strings"
15 16
)

aaronchen2k2k's avatar
aaronchen2k2k 已提交
17
func GenBug(resultDir string) (model.Bug, string) {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
18 19 20
	//conf := configUtils.ReadCurrConfig()
	productId := 0 // conf.ProductId
	projectId := 0 // conf.ProjectId
21

aaronchen2k2k's avatar
aaronchen2k2k 已提交
22
	report := testingService.GetTestTestReportForSubmit(resultDir)
aaronchen2k2k's avatar
aaronchen2k2k 已提交
23
	for _, cs := range report.Cases {
24 25 26 27
		if cs.Id != vari.CurrCaseId {
			continue
		}

aaronchen2k2k's avatar
aaronchen2k2k 已提交
28
		title := cs.Title
29 30
		module := GetFirstNoEmptyVal(vari.ZentaoBugFileds.Modules)
		typ := GetFirstNoEmptyVal(vari.ZentaoBugFileds.Categories)
aaronchen2k2k's avatar
aaronchen2k2k 已提交
31
		openedBuild := map[string]string{"0": "trunk"}
32 33
		severity := GetFirstNoEmptyVal(vari.ZentaoBugFileds.Severities)
		priority := GetFirstNoEmptyVal(vari.ZentaoBugFileds.Priorities)
34 35 36 37

		product := productId
		project := projectId
		caseId := cs.Id
aaronchen2k2k's avatar
help  
aaronchen2k2k 已提交
38
		//Result := cs.ZentaoResultId
39
		taskId := cs.TaskId
40

41
		uid := uuid.NewV4().String()
aaronchen2k2k's avatar
aaronchen2k2k 已提交
42
		caseVersion := "0"
43
		oldTaskID := "0"
44

45 46
		stepIds := ""
		steps := make([]string, 0)
47
		for _, step := range cs.Steps {
48
			if !step.Status {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
49
				stepIds += strconv.Itoa(step.Id) + "_"
50 51
			}

52
			stepsContent := testingService.GetStepContent(step)
53
			steps = append(steps, stepsContent)
54 55
		}

56 57 58
		bug := model.Bug{Title: title,
			Module: module, Type: typ, OpenedBuild: openedBuild, Severity: severity, Pri: priority,
			Product: strconv.Itoa(product), Project: strconv.Itoa(project), Case: strconv.Itoa(caseId),
aaronchen2k2k's avatar
help  
aaronchen2k2k 已提交
59 60
			//Result: strconv.Itoa(Result),
			Testtask: strconv.Itoa(taskId), Steps: strings.Join(steps, "<br/>"),
61
			Uid: uid, CaseVersion: caseVersion, OldTaskID: oldTaskID,
62
		}
aaronchen2k2k's avatar
aaronchen2k2k 已提交
63
		return bug, stepIds
64

65
	}
66

aaronchen2k2k's avatar
aaronchen2k2k 已提交
67
	return model.Bug{}, ""
68
}
69

aaronchen2k2k's avatar
aaronchen2k2k 已提交
70
func SubmitBug(bug model.Bug, idInTask string, stepIds string) bool {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
71 72
	//conf := configUtils.ReadCurrConfig()
	Login("conf.Url", "conf.Account", "conf.Password")
73 74 75 76 77 78 79 80 81

	productId := bug.Product
	projectId := bug.Project

	// bug-create-1-0-caseID=1,version=3,resultID=93,runID=0,stepIdList=9_12_
	// bug-create-1-0-caseID=1,version=3,resultID=84,runID=6,stepIdList=9_12_,testtask=2,projectID=1,buildID=1
	params := fmt.Sprintf("caseID=%s,version=0,resultID=%s,runID=%s,stepIdList=%s",
		bug.Case, bug.Result, idInTask, stepIds)

aaronchen2k2k's avatar
aaronchen2k2k 已提交
82
	bug.Steps = strings.Replace(bug.Steps, " ", "&nbsp;", -1)
83 84 85
	if bug.Testtask != "" {
		temp := fmt.Sprintf("testtask=%s,projectID=%s,buildID=1", bug.Testtask, projectId)
		params += temp
86
	}
87

88 89
	uri := fmt.Sprintf("bug-create-%s-0-%s.json", productId, params)

aaronchen2k2k's avatar
aaronchen2k2k 已提交
90
	url := uri
aaronchen2k2k's avatar
aaronchen2k2k 已提交
91 92 93 94 95
	body, ok := client.PostObject(url, bug)

	json, _ := simplejson.NewJson([]byte(body))
	msg, _ := json.Get("message").String()
	if ok && msg == "" {
aaronchen2k2k's avatar
aaronchen2k2k 已提交
96
		logUtils.PrintToCmd(i118Utils.I118Prt.Sprintf("success_to_report_bug", bug.Case, idInTask) + "\n")
aaronchen2k2k's avatar
aaronchen2k2k 已提交
97 98 99 100

		return true
	} else {
		return false
101
	}
102
}