main_test.go 886 B

123456789101112131415161718192021222324252627282930313233343536
  1. package main
  2. import (
  3. "database/sql"
  4. "net/url"
  5. "os"
  6. "path/filepath"
  7. "testing"
  8. )
  9. func TestRun(t *testing.T) {
  10. dir := t.TempDir()
  11. dbPath := filepath.Join(dir, "with space?#.db")
  12. db, err := sql.Open("sqlite3", (&url.URL{Scheme: "file", Path: dbPath}).String())
  13. if err != nil {
  14. t.Fatal(err)
  15. }
  16. if _, err = db.Exec(`CREATE TABLE images (id TEXT)`); err != nil {
  17. t.Fatal(err)
  18. }
  19. db.Close()
  20. args := []string{"-db", dbPath, "-media-dir", dir, "-legacy-category", "digital_art", "-offline", "-backup-confirmed"}
  21. if err = run(args[:len(args)-1]); err == nil {
  22. t.Fatal("missing acknowledgement accepted")
  23. }
  24. if err = run(args); err != nil {
  25. t.Fatal(err)
  26. }
  27. args[1] = filepath.Join(dir, "missing.db")
  28. if err = run(args); err == nil {
  29. t.Fatal("missing database accepted")
  30. }
  31. if _, err = os.Stat(args[1]); !os.IsNotExist(err) {
  32. t.Fatal("created missing database")
  33. }
  34. }