promote
This commit is contained in:
73
cmd/prune/main_test.go
Normal file
73
cmd/prune/main_test.go
Normal file
@@ -0,0 +1,73 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"context"
|
||||
"os"
|
||||
"path"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestRun(t *testing.T) {
|
||||
d := path.Join(t.TempDir(), "record")
|
||||
if err := os.MkdirAll(d, os.ModePerm); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
a, err := os.ReadFile(path.Join("testdata", "a.jpg"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
b, err := os.ReadFile(path.Join("testdata", "b.jpg"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
seriesA := "2024-09-18T10-50-00"
|
||||
seriesB := time.Now().Format("2006-01-02T15-04-05")
|
||||
|
||||
now := time.Now()
|
||||
if err := os.WriteFile(path.Join(d, seriesA+".0.jpg"), a, os.ModePerm); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if err := os.Chtimes(path.Join(d, seriesA+".0.jpg"), now, now.Add(-4000*time.Millisecond)); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if err := os.WriteFile(path.Join(d, seriesA+".1.jpg"), a, os.ModePerm); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if err := os.Chtimes(path.Join(d, seriesA+".1.jpg"), now, now.Add(-3500*time.Millisecond)); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if err := os.WriteFile(path.Join(d, seriesA+".2.jpg"), b, os.ModePerm); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if err := os.Chtimes(path.Join(d, seriesA+".2.jpg"), now, now.Add(-3000*time.Millisecond)); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if err := os.WriteFile(path.Join(d, seriesA+".3.jpg"), b, os.ModePerm); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if err := os.Chtimes(path.Join(d, seriesA+".3.jpg"), now, now.Add(-2500*time.Millisecond)); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if err := os.WriteFile(path.Join(d, seriesB+".0.jpg"), b, os.ModePerm); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if err := os.Chtimes(path.Join(d, seriesB+".0.jpg"), now, now.Add(-2000*time.Millisecond)); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
start := time.Now()
|
||||
if err := Run(context.Background(), []string{path.Dir(d), "1s"}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
t.Log(time.Since(start))
|
||||
|
||||
if results, err := lsf(path.Join(path.Dir(d), "movement")); err != nil {
|
||||
t.Fatal("failed to lsf for results:", err)
|
||||
} else if len(results) != 1 {
|
||||
t.Fatal(results)
|
||||
} else if path.Base(results[0]) != seriesA+".mp4" {
|
||||
t.Fatal(results)
|
||||
}
|
||||
|
||||
if records, err := lsf(d); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if len(records) != 1 {
|
||||
t.Fatal(records)
|
||||
} else if path.Base(records[0]) != seriesB+".0.jpg" {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user