продолжаю проверки

main
parent a630d8af74
commit 2709866cb7

@ -1,6 +1,8 @@
package pic package pic
import ( import (
"os"
"path/filepath"
"strings" "strings"
"testing" "testing"
@ -19,6 +21,13 @@ func openDB() *sqlx.DB {
return db return db
} }
// создадим временный каталог для тестирования
func TestMain(m *testing.M) {
os.RemoveAll("test")
os.Mkdir("test", 0666)
os.Exit(m.Run())
}
func TestGetSmallGifs(t *testing.T) { func TestGetSmallGifs(t *testing.T) {
seadb, err := NewSeaDB(db) seadb, err := NewSeaDB(db)
// если ошибка - дальнейшая проверка бессмыслена // если ошибка - дальнейшая проверка бессмыслена
@ -34,4 +43,13 @@ func TestGetSmallGifs(t *testing.T) {
assert.Equal(t, strings.HasPrefix(u, "http://192.168.0.105:9091/"), true, "должен начинаться с http://192.168.0.105:9091/") 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") 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)
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 MiB

@ -1,10 +1,14 @@
package pic package pic
import ( import (
"fmt"
"io"
"io/ioutil"
"net/http" "net/http"
"time" "os"
"strings" "strings"
"fmt" "time"
//"log" //"log"
"github.com/linxGnu/goseaweedfs" "github.com/linxGnu/goseaweedfs"
) )
@ -46,10 +50,44 @@ func delete(url string) error {
return err return err
} }
// загружает файл из weed в filename
func download(url string, filename string) error {
fid, err := getFID(url)
if err != nil {
return err
}
_, err = sw.Download(fid, nil, func(r io.Reader) (err error) {
data, err := ioutil.ReadAll(r)
if err != nil {
return err
}
file, err := os.OpenFile(filename, os.O_CREATE, 0666)
if err != nil {
return err
}
_, err = file.Write(data)
file.Close()
return
})
return err
}
func getFID(url string) (string, error) { func getFID(url string) (string, error) {
items := strings.Split(url, "/") items := strings.Split(url, "/")
if len(items) != 2 { if len(items) < 2 {
return "", fmt.Errorf("url должен быть в формате: <address/fid>") return "", fmt.Errorf("url должен быть в формате: <http://address/fid.ext>")
}
return items[len(items)-1], nil
}
func getFilename(url string) (string, error) {
fn, err := getFID(url)
if err != nil {
return "", err
} }
items := strings.Split(fn, ",")
return items[len(items)-1], nil return items[len(items)-1], nil
} }

@ -3,15 +3,15 @@ package pic
import ( import (
//"log" //"log"
"testing" "testing"
"github.com/stretchr/testify/assert" "github.com/stretchr/testify/assert"
) )
func TestUpload(t *testing.T) { func TestUpload(t *testing.T) {
url, err := upload("weed_test.go") url, err := upload("weed_test.go")
assert.Nil(t, err) assert.Nil(t, err)
//log.Printf("url: %s\n", url) //log.Printf("url: %s\n", url)
// проверка на обработку ошибок (перепутал url и fid) // проверка на обработку ошибок (перепутал url и fid)
err = delete("4,23456") err = delete("4,23456")
assert.NotNil(t, err) assert.NotNil(t, err)
@ -20,3 +20,15 @@ func TestUpload(t *testing.T) {
err = delete(url) err = delete(url)
assert.Nil(t, err) assert.Nil(t, err)
} }
func TestGetFID(t *testing.T) {
fn, err := getFID("http://192.168.0.105:9091/6,23441c89622148.gif")
assert.Nil(t, err)
assert.Equal(t, fn, "6,23441c89622148.gif", "должны совпадать")
}
func TestGetFilename(t *testing.T) {
fn, err := getFilename("http://192.168.0.105:9091/6,23441c89622148.gif")
assert.Nil(t, err)
assert.Equal(t, fn, "23441c89622148.gif", "должны совпадать")
}

Loading…
Cancel
Save