Files
go-common/app/interface/main/app-show/dao/recommend/recommend_test.go
2019-04-22 18:49:16 +08:00

463 lines
9.9 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package recommend
import (
"context"
"flag"
"fmt"
"os"
"strings"
"testing"
"time"
"go-common/app/interface/main/app-show/conf"
. "github.com/smartystreets/goconvey/convey"
gock "gopkg.in/h2non/gock.v1"
)
var (
d *Dao
)
func ctx() context.Context {
return context.Background()
}
func init() {
if os.Getenv("DEPLOY_ENV") != "" {
flag.Set("app_id", "main.app-svr.app-show")
flag.Set("conf_token", "Pae4IDOeht4cHXCdOkay7sKeQwHxKOLA")
flag.Set("tree_id", "2687")
flag.Set("conf_version", "docker-1")
flag.Set("deploy_env", "uat")
flag.Set("conf_host", "config.bilibili.co")
flag.Set("conf_path", "/tmp")
flag.Set("region", "sh")
flag.Set("zone", "sh001")
}
flag.Parse()
if err := conf.Init(); err != nil {
panic(err)
}
d = New(conf.Conf)
time.Sleep(time.Second)
}
func httpMock(method, url string) *gock.Request {
r := gock.New(url)
r.Method = strings.ToUpper(method)
return r
}
func TestHots(t *testing.T) {
Convey("Hots", t, func() {
d.clientAsyn.SetTransport(gock.DefaultTransport)
httpMock("GET", d.hotUrl).Reply(200).JSON(`{
"note": false,
"source_date": "2019-01-07",
"code": 0,
"num": 500,
"list": [{
"aid": 39185037,
"score": 176
}, {
"aid": 39658458,
"score": 174
}, {
"aid": 39532823,
"score": 168
}, {
"aid": 39477161,
"score": 168
}, {
"aid": 39852951,
"score": 168
}, {
"aid": 39672060,
"score": 168
}, {
"aid": 39832577,
"score": 168
}, {
"aid": 39987017,
"score": 168
}, {
"aid": 39700424,
"score": 163
}]
}`)
res, err := d.Hots(ctx())
So(res, ShouldNotBeEmpty)
So(err, ShouldBeNil)
})
}
func TestRegion(t *testing.T) {
Convey("Region", t, func() {
d.clientAsyn.SetTransport(gock.DefaultTransport)
api := fmt.Sprintf(d.regionUrl, "33")
httpMock("GET", api).Reply(200).JSON(`{
"code": 0,
"list": [{
"aid": "39911001",
"score": 523
}, {
"aid": "39852951",
"score": 6732
}, {
"aid": "39845334",
"score": 31
}]
}`)
res, err := d.Region(ctx(), "33")
So(res, ShouldNotBeEmpty)
So(err, ShouldBeNil)
})
}
func TestRegionHots(t *testing.T) {
Convey("RegionHots", t, func() {
d.clientAsyn.SetTransport(gock.DefaultTransport)
api := fmt.Sprintf(d.rankRegionAppUrl, 1)
httpMock("GET", api).Reply(200).JSON(`{
"note": "统计3日内新投稿的数据综合得分每二十分钟更新一次。",
"source_date": "2019-01-07",
"code": 0,
"num": 100,
"list": [{
"aid": 39894949,
"mid": 808171,
"score": 546760
}, {
"aid": 39877679,
"mid": 7487399,
"score": 516724
}]
}`)
res, err := d.RegionHots(ctx(), 1)
So(res, ShouldNotBeEmpty)
So(err, ShouldBeNil)
})
}
func TestRegionList(t *testing.T) {
Convey("RegionList", t, func() {
d.client.SetTransport(gock.DefaultTransport)
httpMock("GET", d.regionListUrl).Reply(200).JSON(`{
"code": 0,
"list": [{
"aid": 39903065
}]
}`)
res, err := d.RegionList(ctx(), 1, 1, 1, 1, 1, "")
So(res, ShouldNotBeEmpty)
So(err, ShouldBeNil)
})
}
func TestRegionChildHots(t *testing.T) {
Convey("RegionChildHots", t, func() {
d.clientAsyn.SetTransport(gock.DefaultTransport)
api := fmt.Sprintf(d.regionChildHotUrl, 1)
httpMock("GET", api).Reply(200).JSON(`{
"code": 0,
"list": [{
"aid": 39903065
}]
}`)
res, err := d.RegionChildHots(ctx(), 1)
So(res, ShouldNotBeEmpty)
So(err, ShouldBeNil)
})
}
func TestRegionArcList(t *testing.T) {
Convey("RegionArcList", t, func() {
d.client.SetTransport(gock.DefaultTransport)
httpMock("GET", d.regionArcListUrl).Reply(200).JSON(`{
"code": 0,
"data": {
"archives": [{
"aid": 39903065
}]
}
}`)
res, err := d.RegionArcList(ctx(), 1, 1, 1, time.Now())
So(res, ShouldNotBeEmpty)
So(err, ShouldBeNil)
})
}
func TestRankRegion(t *testing.T) {
Convey("RankRegion", t, func() {
d.clientAsyn.SetTransport(gock.DefaultTransport)
httpMock("GET", fmt.Sprintf(d.rankRegionUrl, "all", 1)).Reply(200).JSON(`{
"rank": {
"code": 0,
"list": [{
"aid": 39903065
}]
}
}`)
res, err := d.RankRegion(ctx(), 1, "all")
So(res, ShouldNotBeEmpty)
So(err, ShouldBeNil)
})
}
func TestRankAll(t *testing.T) {
Convey("RankAll", t, func() {
d.clientAsyn.SetTransport(gock.DefaultTransport)
httpMock("GET", fmt.Sprintf(d.rankOriginalUrl, "all")).Reply(200).JSON(`{
"rank": {
"code": 0,
"list": [{
"aid": 39903065
}]
}
}`)
res, err := d.RankAll(ctx(), "all")
So(res, ShouldNotBeEmpty)
So(err, ShouldBeNil)
})
}
func TestRankBangumi(t *testing.T) {
Convey("RankBangumi", t, func() {
d.clientAsyn.SetTransport(gock.DefaultTransport)
httpMock("GET", d.rankBangumilUrl).Reply(200).JSON(`{
"rank": {
"code": 0,
"list": [{
"aid": 39903065
}]
}
}`)
res, err := d.RankBangumi(ctx())
So(res, ShouldNotBeEmpty)
So(err, ShouldBeNil)
})
}
func TestFeedDynamic(t *testing.T) {
Convey("FeedDynamic", t, func() {
d.client.SetTransport(gock.DefaultTransport)
httpMock("GET", d.feedDynamicUrl).Reply(200).JSON(`{
"code": 0,
"data": [12587337, 1840325, 38132621, 5910308, 26879875, 26308630, 7348036, 1766719, 6374879, 24937721],
"hot": null,
"ctop": 12587337,
"cbottom": 24937721
}`)
_, newAids, _, _, err := d.FeedDynamic(ctx(), false, 1, 1, 1, 1, time.Now())
So(newAids, ShouldNotBeEmpty)
So(err, ShouldBeNil)
})
}
func TestRankAppRegion(t *testing.T) {
Convey("RankAppRegion", t, func() {
d.client.SetTransport(gock.DefaultTransport)
api := fmt.Sprintf(d.rankRegionAppUrl, 1)
httpMock("GET", api).Reply(200).JSON(`{
"note": "统计3日内新投稿的数据综合得分每二十分钟更新一次。",
"source_date": "2019-01-07",
"code": 0,
"num": 100,
"list": [{
"aid": 39954334,
"mid": 38125899,
"score": 509800,
"others": [{
"aid": 39903065,
"score": 48222
}]
}, {
"aid": 39953503,
"mid": 3969839,
"score": 430381
}]
}`)
res, _, _, err := d.RankAppRegion(ctx(), 1)
So(res, ShouldNotBeEmpty)
So(err, ShouldBeNil)
})
}
func TestRankAppOrigin(t *testing.T) {
Convey("RankAppOrigin", t, func() {
d.client.SetTransport(gock.DefaultTransport)
httpMock("GET", d.rankOriginAppUrl).Reply(200).JSON(`{
"note": "统计3日内新投稿的数据综合得分每二十分钟更新一次。",
"source_date": "2019-01-07",
"code": 0,
"num": 100,
"list": [{
"aid": 39954334,
"mid": 38125899,
"score": 509800,
"others": [{
"aid": 39903065,
"score": 48222
}]
}, {
"aid": 39953503,
"mid": 3969839,
"score": 430381
}]
}`)
res, _, _, err := d.RankAppOrigin(ctx())
So(res, ShouldNotBeEmpty)
So(err, ShouldBeNil)
})
}
func TestRankAppAll(t *testing.T) {
Convey("RankAppAll", t, func() {
d.client.SetTransport(gock.DefaultTransport)
httpMock("GET", d.rankAllAppUrl).Reply(200).JSON(`{
"note": "统计3日内新投稿的数据综合得分每二十分钟更新一次。",
"source_date": "2019-01-07",
"code": 0,
"num": 100,
"list": [{
"aid": 39954334,
"mid": 38125899,
"score": 509800,
"others": [{
"aid": 39903065,
"score": 48222
}]
}, {
"aid": 39953503,
"mid": 3969839,
"score": 430381
}]
}`)
res, _, _, err := d.RankAppAll(ctx())
So(res, ShouldNotBeEmpty)
So(err, ShouldBeNil)
})
}
func TestRankAppBangumi(t *testing.T) {
Convey("RankAppBangumi", t, func() {
d.client.SetTransport(gock.DefaultTransport)
httpMock("GET", d.rankBangumiAppUrl).Reply(200).JSON(`{
"note": "统计3日内新投稿的数据综合得分每二十分钟更新一次。",
"source_date": "2019-01-07",
"code": 0,
"num": 100,
"list": [{
"aid": 39954334,
"mid": 38125899,
"score": 509800,
"others": [{
"aid": 39903065,
"score": 48222
}]
}, {
"aid": 39953503,
"mid": 3969839,
"score": 430381
}]
}`)
res, _, _, err := d.RankAppBangumi(ctx())
So(res, ShouldNotBeEmpty)
So(err, ShouldBeNil)
})
}
func TestHotTab(t *testing.T) {
Convey("HotTab", t, func() {
d.client.SetTransport(gock.DefaultTransport)
httpMock("GET", d.hottabURL).Reply(200).JSON(`{
"note": false,
"source_date": "2019-01-07",
"code": 0,
"num": 100,
"list": [{
"aid": 40063426,
"mid": 837470,
"score": 764906,
"desc": "很多人分享",
"corner_mark": 0
}, {
"aid": 39425207,
"mid": 4870926,
"score": 690583,
"desc": "百万播放",
"corner_mark": 0
}]
}`)
res, err := d.HotTab(ctx())
So(res, ShouldNotBeEmpty)
So(err, ShouldBeNil)
})
}
func TestHotTenTab(t *testing.T) {
Convey("HotTenTab", t, func() {
d.client.SetTransport(gock.DefaultTransport)
httpMock("GET", fmt.Sprintf(d.hotHetongURL, 1)).Reply(200).JSON(`{
"note": false,
"source_date": "2019-01-07",
"code": 0,
"num": 100,
"list": [{
"aid": 40063426,
"mid": 837470,
"score": 764906,
"desc": "很多人分享",
"corner_mark": 0
}, {
"aid": 39425207,
"mid": 4870926,
"score": 690583,
"desc": "百万播放",
"corner_mark": 0
}]
}`)
res, err := d.HotTenTab(ctx(), 1)
So(res, ShouldNotBeEmpty)
So(err, ShouldBeNil)
})
}
func TestHotHeTongTabCard(t *testing.T) {
Convey("HotHeTongTabCard", t, func() {
d.client.SetTransport(gock.DefaultTransport)
httpMock("GET", fmt.Sprintf(d.hotHeTongtabcardURL, 1)).Reply(200).JSON(`{
"code": 0,
"list": [{
"goto": "av",
"id": 40063426,
"from_type": "recommend",
"desc": "8千分享",
"corner_mark": 0
}, {
"goto": "av",
"id": 39425207,
"from_type": "recommend",
"desc": "百万播放",
"corner_mark": 0
}, {
"goto": "av",
"id": 39920213,
"from_type": "recommend",
"desc": "百万播放",
"corner_mark": 0
}, {
"goto": "av",
"id": 39237975,
"from_type": "recommend",
"desc": "百万播放",
"corner_mark": 0
}]
}`)
res, err := d.HotHeTongTabCard(ctx(), 1)
So(res, ShouldNotBeEmpty)
So(err, ShouldBeNil)
})
}