dao_test.go 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. package cms
  2. import (
  3. "context"
  4. "encoding/json"
  5. "flag"
  6. "fmt"
  7. "os"
  8. "testing"
  9. "go-common/app/interface/main/tv/conf"
  10. "go-common/library/database/sql"
  11. . "github.com/smartystreets/goconvey/convey"
  12. )
  13. var (
  14. d *Dao
  15. ctx = context.TODO()
  16. )
  17. const (
  18. _pickSids = 1
  19. _pickEpids = 2
  20. _pickAids = 3
  21. _pickCids = 4
  22. )
  23. func init() {
  24. // dir, _ := filepath.Abs("../../cmd/tv-interface.toml")
  25. // flag.Set("conf", dir)
  26. if os.Getenv("DEPLOY_ENV") != "" {
  27. flag.Set("app_id", "main.web-svr.tv-interface")
  28. flag.Set("conf_token", "07c1826c1f39df02a1411cdd6f455879")
  29. flag.Set("tree_id", "15326")
  30. flag.Set("conf_version", "docker-1")
  31. flag.Set("deploy_env", "uat")
  32. flag.Set("conf_host", "config.bilibili.co")
  33. flag.Set("conf_path", "/tmp")
  34. flag.Set("region", "sh")
  35. flag.Set("zone", "sh001")
  36. }
  37. flag.Parse()
  38. if err := conf.Init(); err != nil {
  39. panic(err)
  40. }
  41. d = New(conf.Conf)
  42. }
  43. func WithDao(f func(d *Dao)) func() {
  44. return func() {
  45. Reset(func() {})
  46. f(d)
  47. }
  48. }
  49. func pickIDs(db *sql.DB, ttype int) (testSids []int64, err error) {
  50. var (
  51. querySQL string
  52. rows *sql.Rows
  53. )
  54. switch ttype {
  55. case _pickSids:
  56. querySQL = "SELECT DISTINCT(id) FROM tv_ep_season WHERE is_deleted = 0 ORDER BY id DESC LIMIT 20"
  57. case _pickEpids:
  58. querySQL = "SELECT DISTINCT(epid) FROM tv_content WHERE is_deleted = 0 ORDER BY id DESC LIMIT 20"
  59. case _pickAids:
  60. querySQL = "SELECT DISTINCT(aid) FROM ugc_archive WHERE deleted = 0 ORDER BY id DESC LIMIT 20"
  61. case _pickCids:
  62. querySQL = "SELECT DISTINCT(cid) FROM ugc_video WHERE deleted = 0 ORDER BY id DESC LIMIT 20"
  63. }
  64. rows, err = db.Query(ctx, querySQL)
  65. if err != nil {
  66. fmt.Println("Query Err ", err)
  67. return
  68. }
  69. defer rows.Close()
  70. for rows.Next() {
  71. var id int64
  72. if err = rows.Scan(&id); err != nil {
  73. fmt.Printf("Scan Id %d, Err %v", id, err)
  74. return
  75. }
  76. testSids = append(testSids, id)
  77. }
  78. return
  79. }
  80. func TestDao_MixedFilter(t *testing.T) {
  81. Convey("TestDao_MixedFilter", t, WithDao(func(d *Dao) {
  82. sids, errDB := pickIDs(d.db, _pickSids)
  83. if errDB != nil {
  84. fmt.Println("PickSids Err ", errDB)
  85. return
  86. }
  87. aids, errDB2 := pickIDs(d.db, _pickAids)
  88. if errDB != nil {
  89. fmt.Println("PickAids Err ", errDB2)
  90. return
  91. }
  92. okSids, okAids := d.MixedFilter(ctx, sids, aids)
  93. fmt.Println(okSids)
  94. fmt.Println(okAids)
  95. So(len(okSids), ShouldBeLessThanOrEqualTo, len(sids))
  96. So(len(okAids), ShouldBeLessThanOrEqualTo, len(aids))
  97. }))
  98. }
  99. func TestDao_LoadVideosMeta(t *testing.T) {
  100. Convey("TestDao_MixedFilter", t, WithDao(func(d *Dao) {
  101. sids, errDB := pickIDs(d.db, _pickCids)
  102. if errDB != nil {
  103. fmt.Println("PickSids Err ", errDB)
  104. return
  105. }
  106. res, err := d.LoadVideosMeta(ctx, sids)
  107. So(err, ShouldBeNil)
  108. data, _ := json.Marshal(res)
  109. fmt.Println(string(data))
  110. }))
  111. }