тестирование

main
parent 8345ba6dd3
commit a8db62bc00

@ -5,7 +5,10 @@ go 1.21.0
require ( require (
github.com/go-sql-driver/mysql v1.7.1 github.com/go-sql-driver/mysql v1.7.1
github.com/jmoiron/sqlx v1.3.5 github.com/jmoiron/sqlx v1.3.5
github.com/kataras/pio v0.0.13 github.com/kataras/golog v0.1.11
) )
require golang.org/x/sys v0.13.0 // indirect require (
github.com/kataras/pio v0.0.13 // indirect
golang.org/x/sys v0.13.0 // indirect
)

@ -3,6 +3,8 @@ github.com/go-sql-driver/mysql v1.7.1 h1:lUIinVbN1DY0xBg0eMOzmmtGoHwWBbvnWubQUrt
github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI= github.com/go-sql-driver/mysql v1.7.1/go.mod h1:OXbVy3sEdcQ2Doequ6Z5BW6fXNQTmx+9S1MCJN5yJMI=
github.com/jmoiron/sqlx v1.3.5 h1:vFFPA71p1o5gAeqtEAwLU4dnX2napprKtHr7PYIcN3g= github.com/jmoiron/sqlx v1.3.5 h1:vFFPA71p1o5gAeqtEAwLU4dnX2napprKtHr7PYIcN3g=
github.com/jmoiron/sqlx v1.3.5/go.mod h1:nRVWtLre0KfCLJvgxzCsLVMogSvQ1zNJtpYr2Ccp0mQ= github.com/jmoiron/sqlx v1.3.5/go.mod h1:nRVWtLre0KfCLJvgxzCsLVMogSvQ1zNJtpYr2Ccp0mQ=
github.com/kataras/golog v0.1.11 h1:dGkcCVsIpqiAMWTlebn/ZULHxFvfG4K43LF1cNWSh20=
github.com/kataras/golog v0.1.11/go.mod h1:mAkt1vbPowFUuUGvexyQ5NFW6djEgGyxQBIARJ0AH4A=
github.com/kataras/pio v0.0.13 h1:x0rXVX0fviDTXOOLOmr4MUxOabu1InVSTu5itF8CXCM= github.com/kataras/pio v0.0.13 h1:x0rXVX0fviDTXOOLOmr4MUxOabu1InVSTu5itF8CXCM=
github.com/kataras/pio v0.0.13/go.mod h1:k3HNuSw+eJ8Pm2lA4lRhg3DiCjVgHlP8hmXApSej3oM= github.com/kataras/pio v0.0.13/go.mod h1:k3HNuSw+eJ8Pm2lA4lRhg3DiCjVgHlP8hmXApSej3oM=
github.com/lib/pq v1.2.0 h1:LXpIM/LZ5xGFhOpXAQUIMM1HdyqzVYM13zNdjCEEcA0= github.com/lib/pq v1.2.0 h1:LXpIM/LZ5xGFhOpXAQUIMM1HdyqzVYM13zNdjCEEcA0=

@ -8,18 +8,17 @@ package seaweed
import ( import (
"errors" "errors"
"flag"
"fmt" "fmt"
"os" "os"
_ "github.com/go-sql-driver/mysql" _ "github.com/go-sql-driver/mysql"
"github.com/jmoiron/sqlx" "github.com/jmoiron/sqlx"
"github.com/kataras/pio" // "github.com/kataras/pio"
"github.com/kataras/golog"
) )
// глобальная переменная для логирования const VERSION = "v1.0.7"
var p = pio.NewTextPrinter("color", os.Stdout)
// ============= SEA ============ // ============= SEA ============
@ -29,9 +28,11 @@ type Sea struct {
} }
// Connect to database and connect to weed // Connect to database and connect to weed
func Connect() (*Sea, error) { func Connect(options ...bool) (*Sea, error) {
debug := flag.Bool("debug", false, "enable debug mode") debug := false
fmt.Printf("debug: %v\n", *debug) if len(options) > 0 && options[0] == true {
debug = true
}
user := os.Getenv("SEA_USER") user := os.Getenv("SEA_USER")
if user == "" { if user == "" {
@ -48,11 +49,12 @@ func Connect() (*Sea, error) {
return nil, err return nil, err
} }
if *debug { sea := Sea{db: db, debug: debug}
p.Println(pio.Rich("БД sea успешно открыта", pio.Blue))
if debug {
golog.Infof("БД \"sea\" успешно открыта. %s", VERSION)
} }
sea := Sea{db: db, debug: *debug}
return &sea, nil return &sea, nil
} }
@ -83,5 +85,9 @@ func (s *Sea) Albums() ([]Album, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
if s.debug {
golog.Infof("Получен список альбомов: %d", len(albums))
}
return albums, nil return albums, nil
} }

@ -7,30 +7,61 @@
package seaweed package seaweed
import ( import (
"reflect" "os"
"testing" "testing"
_ "github.com/go-sql-driver/mysql" _ "github.com/go-sql-driver/mysql"
) )
func TestConnect(t *testing.T) { func TestConnect(t *testing.T) {
tests := []struct { t.Run("проверка создания", func(t *testing.T) {
name string user := os.Getenv("SEA_USER")
want *Sea if user == "" {
wantErr bool t.Errorf("Не установлена env-переменная SEA_USER")
}{ }
// TODO: Add test cases.
} password := os.Getenv("SEA_PASSWORD")
for _, tt := range tests { if password == "" {
t.Run(tt.name, func(t *testing.T) { t.Errorf("Не установлена env-переменная SEA_PASSWORD")
got, err := Connect() }
if (err != nil) != tt.wantErr {
t.Errorf("Connect() error = %v, wantErr %v", err, tt.wantErr) // создание с признаком отладки
return sea, err := Connect(true)
} if err != nil {
if !reflect.DeepEqual(got, tt.want) { t.Errorf("Ошибка создания: %v", err)
t.Errorf("Connect() = %v, want %v", got, tt.want) }
if sea.debug == false {
t.Errorf("Не установлен признак отладки")
}
// штатное создание
sea2, err := Connect()
if err != nil {
t.Errorf("Ошибка создания: %v", err)
}
if sea2.debug == true {
t.Errorf("Не правильно установлен признак отладки")
} }
}) })
} }
func TestAlbums(t *testing.T) {
t.Run("проверка получения списка альбомов", func(t *testing.T) {
// создание с признаком отладки
sea, err := Connect(true)
if err != nil {
t.Errorf("Ошибка создания: %v", err)
}
albums, err := sea.Albums()
if err != nil {
t.Errorf("Ошибка albums: %v", err)
}
if len(albums) == 0 {
t.Errorf("Получен пустой список альбомов")
}
})
} }

Loading…
Cancel
Save