You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
pic/seadb_test.go

56 lines
1.5 KiB
Go

package pic
import (
"os"
"path/filepath"
"strings"
"testing"
"github.com/jmoiron/sqlx"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
var db = openDB()
func openDB() *sqlx.DB {
db, err := sqlx.Open("mysql", "itman:X753951x@(xigmanas:3306)/sea")
if err != nil {
panic(err)
}
return db
}
// создадим временный каталог для тестирования
func TestMain(m *testing.M) {
os.RemoveAll("test")
os.Mkdir("test", 0666)
os.Exit(m.Run())
}
func TestGetSmallGifs(t *testing.T) {
seadb, err := NewSeaDB(db)
// если ошибка - дальнейшая проверка бессмыслена
require.NoError(t, err)
urls, err := seadb.SmallGifs()
assert.Nil(t, err)
assert.Equal(t, len(urls), 10, "должны получить ровно 10 записей")
// теперь проверяем правильность формата url
// должны быть в форме: http://192.168.0.105:9091/4,530f8ea86e3e.gif
for _, u := range urls {
assert.Equal(t, strings.HasPrefix(u, "http://192.168.0.105:9091/"), true, "должен начинаться с http://192.168.0.105:9091/")
assert.Equal(t, strings.HasSuffix(u, ".gif"), true, "должен заканчиваться на .gif")
}
// проверим загрузку
url := urls[1]
// fid := baseName()
filename, err := getFilename(url)
assert.Nil(t, err)
err = download(url, filepath.Join("test", filename))
assert.Nil(t, err)
}