e116b30b40
After some thoughts, it is better to use the config from config files than default ones
54 lignes
1,1 Kio
Go
54 lignes
1,1 Kio
Go
package metainfoFetcher
|
|
|
|
import (
|
|
"path"
|
|
"testing"
|
|
|
|
"github.com/NyaaPantsu/nyaa/config"
|
|
"github.com/NyaaPantsu/nyaa/model"
|
|
"github.com/anacrolix/torrent"
|
|
)
|
|
|
|
// run before config/parse.go:init()
|
|
var _ = func() (_ struct{}) {
|
|
config.ConfigPath = path.Join("..", "..", "..", config.ConfigPath)
|
|
config.DefaultConfigPath = path.Join("..", "..", "..", config.DefaultConfigPath)
|
|
config.Parse()
|
|
return
|
|
}()
|
|
|
|
func TestInvalidHash(t *testing.T) {
|
|
client, err := torrent.NewClient(nil)
|
|
if err != nil {
|
|
t.Skipf("Failed to create client, with err %v. Skipping.", err)
|
|
}
|
|
|
|
fetcher := &MetainfoFetcher{
|
|
timeout: 5,
|
|
torrentClient: client,
|
|
results: make(chan Result, 1),
|
|
}
|
|
|
|
dbEntry := model.Torrent{
|
|
Hash: "INVALID",
|
|
Name: "Invalid",
|
|
}
|
|
|
|
op := NewFetchOperation(fetcher, dbEntry)
|
|
fetcher.wg.Add(1)
|
|
op.Start(fetcher.results)
|
|
|
|
var res Result
|
|
select {
|
|
case res = <-fetcher.results:
|
|
break
|
|
default:
|
|
t.Fatal("No result in channel, should have one")
|
|
}
|
|
|
|
if res.err == nil {
|
|
t.Fatal("Got no error, should have got invalid magnet")
|
|
}
|
|
|
|
t.Logf("Got error %s, shouldn't be timeout", res.err)
|
|
}
|