bug.go 3.1 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
)

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

22
	report := testingService.GetTestTestReportForSubmit(vari.CurrScriptFile, vari.CurrResultDate)
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
		idInTask := strconv.Itoa(cs.IdInTask)
aaronchen2k2k's avatar
aaronchen2k2k 已提交
46

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

54
			stepsContent := testingService.GetStepContent(step)
55
			steps = append(steps, stepsContent)
56 57
		}

58 59 60
		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 已提交
61 62
			//Result: strconv.Itoa(Result),
			Testtask: strconv.Itoa(taskId), Steps: strings.Join(steps, "<br/>"),
63
			Uid: uid, CaseVersion: caseVersion, OldTaskID: oldTaskID,
64
		}
65
		return bug, idInTask, stepIds
66

67
	}
68

69 70
	return model.Bug{}, "", ""
}
71

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

	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 已提交
84
	bug.Steps = strings.Replace(bug.Steps, " ", "&nbsp;", -1)
85 86 87
	if bug.Testtask != "" {
		temp := fmt.Sprintf("testtask=%s,projectID=%s,buildID=1", bug.Testtask, projectId)
		params += temp
88
	}
89

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

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

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

		return true
	} else {
		return false
103
	}
104
}