Skip to content

Commit

Permalink
Fix cameraSort not passing test
Browse files Browse the repository at this point in the history
  • Loading branch information
Miguel-Dorta committed Sep 7, 2019
1 parent a125274 commit a9b3097
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 15 deletions.
29 changes: 18 additions & 11 deletions cmd/cameraSort/cameraSort.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,30 @@ import (
const USAGE = "<origin> <destination>"

func main() {
origin, destiny := getArgs()

errs := sortFiles(origin, destiny)

// Print errors if found
if len(errs) != 0 {
for _, err := range errs {
_, _ = fmt.Fprintln(os.Stderr, err)
}
os.Exit(1)
}
}

func getArgs() (origin string, destination string) {
internal.CheckSpecialArgs(os.Args, USAGE)
if len(os.Args) != 3 {
fmt.Printf("Usage: %s %s (use -h for help)\n", os.Args[0], USAGE)
os.Exit(1)
}
return os.Args[1], os.Args[2]
}

origin := os.Args[1]
destiny := os.Args[2]

errs := utils.ForEachInDirectory(origin, func(fi os.FileInfo) error {
func sortFiles(origin, destiny string) []error {
return utils.ForEachInDirectory(origin, func(fi os.FileInfo) error {
fiPath := filepath.Join(origin, fi.Name())

// Omit if it's not regular
Expand All @@ -41,11 +55,4 @@ func main() {

return nil
})

if len(errs) != 0 {
for _, err := range errs {
_, _ = fmt.Fprintln(os.Stderr, err)
}
os.Exit(1)
}
}
22 changes: 18 additions & 4 deletions cmd/cameraSort/cameraSort_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,14 @@ var invalidFiles = []string{

var folder = "C00120190101235959.jpg"

var expectedErrors = map[string]bool{
"path /tmp/cameraSort_test/origin/C00120190101235959.jpg is not a file":true,
"cannot parse file \"/tmp/cameraSort_test/origin/C003201904O2123456.png\": incorrect format: cannot parse date":true,
"cannot parse file \"/tmp/cameraSort_test/origin/hi\": incorrect format: too short":true,
"cannot parse file \"/tmp/cameraSort_test/origin/OlderID20190907211734.jpg\": incorrect format: cannot parse date":true,
"cannot parse file \"/tmp/cameraSort_test/origin/this-is-not-a-camfile.jpg\": incorrect format: cannot parse date":true,
}

func createFiles(path string) error {
// Create invalid files in path
for _, invalidFile := range invalidFiles {
Expand Down Expand Up @@ -126,7 +134,7 @@ func Test(t *testing.T) {
resultDir := filepath.Join(tmpDir, "result")

// Create tmp dirs
//defer os.RemoveAll(tmpDir)
defer os.RemoveAll(tmpDir)
if err := os.MkdirAll(originDir, 0777); err != nil {
t.Fatal("cannot create origin tmp dir")
}
Expand All @@ -138,9 +146,15 @@ func Test(t *testing.T) {
t.Fatalf("error creating files for testing: %s", err)
}

// This is a weird test >.<
os.Args = []string{"./cameraSort_test", originDir, resultDir}
main()
errs := sortFiles(originDir, resultDir)
if len(errs) != 0 {
for _, err := range errs {
if _, exists := expectedErrors[err.Error()]; exists {
continue
}
t.Fatalf("unexpected error: %s", err)
}
}

// Check if done correctly
if err := checkValidFiles(resultDir); err != nil {
Expand Down

0 comments on commit a9b3097

Please sign in to comment.