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) }