diff options
author | Nick White <git@njw.name> | 2021-07-27 14:22:03 +0100 |
---|---|---|
committer | Nick White <git@njw.name> | 2021-07-27 14:22:03 +0100 |
commit | 8780dda26a819b4b93caba75a893fb082849406e (patch) | |
tree | 98715595ec26a3714c726a6e98dd2e54b5a01219 | |
parent | 13b8605ba5f8554aedf658aacee5bc436887cbfa (diff) |
internal/pipeline: add tests for DetectQueueType
-rw-r--r-- | internal/pipeline/put.go | 7 | ||||
-rw-r--r-- | internal/pipeline/put_test.go | 24 | ||||
-rw-r--r-- | internal/pipeline/testdata/equalpngandjpg/1.jpg | 0 | ||||
-rw-r--r-- | internal/pipeline/testdata/equalpngandjpg/1.png | 0 | ||||
-rw-r--r-- | internal/pipeline/testdata/mostlyjpg/1.jpg | 0 | ||||
-rw-r--r-- | internal/pipeline/testdata/mostlyjpg/1.png | 0 | ||||
-rw-r--r-- | internal/pipeline/testdata/mostlyjpg/2.jpg | 0 | ||||
-rw-r--r-- | internal/pipeline/testdata/mostlypng/1.jpg | 0 | ||||
-rw-r--r-- | internal/pipeline/testdata/mostlypng/1.png | 0 | ||||
-rw-r--r-- | internal/pipeline/testdata/mostlypng/2.png | 0 | ||||
-rw-r--r-- | internal/pipeline/testdata/notreadable/1.png | bin | 0 -> 9123 bytes |
11 files changed, 30 insertions, 1 deletions
diff --git a/internal/pipeline/put.go b/internal/pipeline/put.go index 647b7a9..7b292b9 100644 --- a/internal/pipeline/put.go +++ b/internal/pipeline/put.go @@ -23,6 +23,8 @@ func (w NullWriter) Write(p []byte) (n int, err error) { type fileWalk chan string +// Walk sends the path of all files to the channel, with the exception of +// any file or directory which starts with "." func (f fileWalk) Walk(path string, info os.FileInfo, err error) error { if err != nil { return err @@ -38,6 +40,8 @@ func (f fileWalk) Walk(path string, info os.FileInfo, err error) error { return nil } +// CheckImages checks that all files in a directory are images +// that can be decoded (skipping dotfiles) func CheckImages(dir string) error { checker := make(fileWalk) go func() { @@ -59,8 +63,9 @@ func CheckImages(dir string) error { return nil } +// DetectQueueType detects which queue to use based on the preponderance +// of files of a particular extension in a directory func DetectQueueType(dir string, conn Queuer) string { - // Auto detect type of queue to send to based on file extension pngdirs, _ := filepath.Glob(dir + "/*.png") jpgdirs, _ := filepath.Glob(dir + "/*.jpg") pngcount := len(pngdirs) diff --git a/internal/pipeline/put_test.go b/internal/pipeline/put_test.go index 9cc8b02..af18ab4 100644 --- a/internal/pipeline/put_test.go +++ b/internal/pipeline/put_test.go @@ -7,6 +7,7 @@ package pipeline import ( "errors" "os" + "rescribe.xyz/bookpipeline" "testing" ) @@ -49,3 +50,26 @@ func Test_CheckImages(t *testing.T) { }) } } + +func Test_DetectQueueType(t *testing.T) { + conn := &bookpipeline.LocalConn{} + + cases := []struct { + dir string + qid string + }{ + {"testdata/mostlypng", conn.WipeQueueId()}, + {"testdata/mostlyjpg", conn.PreQueueId()}, + {"testdata/equalpngandjpg", conn.PreQueueId()}, + {"testdata/nonexistent", conn.PreQueueId()}, + } + + for _, c := range cases { + t.Run(c.dir, func(t *testing.T) { + qid := DetectQueueType(c.dir, conn) + if qid != c.qid { + t.Fatalf("Error, expected qid %v, got qid %v", qid, c.qid) + } + }) + } +} diff --git a/internal/pipeline/testdata/equalpngandjpg/1.jpg b/internal/pipeline/testdata/equalpngandjpg/1.jpg new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/pipeline/testdata/equalpngandjpg/1.jpg diff --git a/internal/pipeline/testdata/equalpngandjpg/1.png b/internal/pipeline/testdata/equalpngandjpg/1.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/pipeline/testdata/equalpngandjpg/1.png diff --git a/internal/pipeline/testdata/mostlyjpg/1.jpg b/internal/pipeline/testdata/mostlyjpg/1.jpg new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/pipeline/testdata/mostlyjpg/1.jpg diff --git a/internal/pipeline/testdata/mostlyjpg/1.png b/internal/pipeline/testdata/mostlyjpg/1.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/pipeline/testdata/mostlyjpg/1.png diff --git a/internal/pipeline/testdata/mostlyjpg/2.jpg b/internal/pipeline/testdata/mostlyjpg/2.jpg new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/pipeline/testdata/mostlyjpg/2.jpg diff --git a/internal/pipeline/testdata/mostlypng/1.jpg b/internal/pipeline/testdata/mostlypng/1.jpg new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/pipeline/testdata/mostlypng/1.jpg diff --git a/internal/pipeline/testdata/mostlypng/1.png b/internal/pipeline/testdata/mostlypng/1.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/pipeline/testdata/mostlypng/1.png diff --git a/internal/pipeline/testdata/mostlypng/2.png b/internal/pipeline/testdata/mostlypng/2.png new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/internal/pipeline/testdata/mostlypng/2.png diff --git a/internal/pipeline/testdata/notreadable/1.png b/internal/pipeline/testdata/notreadable/1.png Binary files differnew file mode 100644 index 0000000..8f90f19 --- /dev/null +++ b/internal/pipeline/testdata/notreadable/1.png |