rssmon3/copart/selenium_test.go

91 lines
1.7 KiB
Go

package copart
import (
"encoding/json"
"local/sandbox/selenium/copart/copart/auction"
"local/sandbox/selenium/copart/copart/browser"
"local/sandbox/selenium/copart/copart/config"
"log"
"os"
"testing"
"time"
)
func TestSelenium(t *testing.T) {
s := StartServer()
defer s.Close()
log.Printf("started faux auctions on %s", s.Addr)
b, err := browser.New()
if err != nil {
t.Fatal(err)
}
log.Println("made browser", s.Addr)
if err := b.Get(s.Addr); err != nil {
t.Fatal(err)
}
log.Printf("navigated to %s", s.Addr)
c := auction.NewCar()
if err := c.Parse(b.Driver); err != nil {
t.Fatal(err)
}
log.Printf("parsed car %s", c.String())
log.Println(c.Details)
}
func TestReal(t *testing.T) {
os.Args = []string{
"a",
"-addr",
"./out2.db",
"-db",
"map",
}
if err := config.New(); err != nil {
t.Fatal(err)
}
log.Println("Creating today...")
today, err := auction.NewToday()
if err != nil {
t.Fatal(err)
}
log.Println("Starting today...")
if err := today.Start(); err != nil {
t.Fatal(err)
}
for {
log.Println("Blocking empty list...")
time.Sleep(time.Second)
var list []string
if b, err := config.Values().DB.Get("LIST"); err != nil {
t.Fatal(err)
} else if err := json.Unmarshal(b, &list); err != nil {
t.Fatal(err)
} else if len(list) < 2 {
continue
} else {
log.Println("Dumping from list...")
for _, id := range list {
c := auction.NewCar()
if b, err := config.Values().DB.Get(id); err != nil {
t.Fatal(err)
} else if err := c.Decode(b); err != nil {
t.Fatal(err)
} else {
log.Println(c.String())
}
}
break
}
}
if err := today.Stop(); err != nil {
t.Fatal(err)
}
}