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

main
parent a630d8af74
commit 2709866cb7

@ -1,6 +1,8 @@
package pic
import (
"os"
"path/filepath"
"strings"
"testing"
@ -19,6 +21,13 @@ func openDB() *sqlx.DB {
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)
// если ошибка - дальнейшая проверка бессмыслена
@ -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.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
import (
"fmt"
"io"
"io/ioutil"
"net/http"
"time"
"os"
"strings"
"fmt"
"time"
//"log"
"github.com/linxGnu/goseaweedfs"
)
@ -46,10 +50,44 @@ func delete(url string) error {
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) {
items := strings.Split(url, "/")
if len(items) != 2 {
return "", fmt.Errorf("url должен быть в формате: <address/fid>")
if len(items) < 2 {
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
}

@ -3,6 +3,7 @@ package pic
import (
//"log"
"testing"
"github.com/stretchr/testify/assert"
)
@ -11,7 +12,6 @@ func TestUpload(t *testing.T) {
assert.Nil(t, err)
//log.Printf("url: %s\n", url)
// проверка на обработку ошибок (перепутал url и fid)
err = delete("4,23456")
assert.NotNil(t, err)
@ -20,3 +20,15 @@ func TestUpload(t *testing.T) {
err = delete(url)
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