tests/taskdirs.t @ 78a1340b652d

Intercept common IO errors exceptions.

When the task directory doesn't exist or when a file can't be read or written,
t.py fails with a full stacktrace exception. This change allows t.py to fail
more gracefully, printing the exception message, the relevant file, and then
exiting with an errorlevel code of 1.

# Non existant directory issue
/home/dereckson/dev/t ] ./t.py -t /nonexistent Lorem ipsum dolor
No such file or directory - /nonexistent/tasks

# File permission issue
/home/dereckson/dev/t ] mkdir test
/home/dereckson/dev/t ] ./t.py -t test Lorem ipsum dolor
/home/dereckson/dev/t ] chmod 000 test/.tasks.done
/home/dereckson/dev/t ] ./t.py -t test Lorem ipsum dolor
Permission denied - test/.tasks.done
author Dereckson
date Sat, 31 Aug 2013 10:31:43 +0200
parents a882490073a1
children d76f573934d1
Setup:

  $ alias xt="python $TESTDIR/../t.py --list test"

Initialize multiple task directories:

  $ mkdir beer
  $ mkdir books
  $ xt --task-dir beer Dogfish Head 120 minute IPA
  $ xt --task-dir books Your Inner Fish
  $ xt --task-dir beer
  7 - Dogfish Head 120 minute IPA
  $ xt --task-dir books
  0 - Your Inner Fish

Wrong directories:

  $ xt --task-dir beer -f 0
  The ID "0" does not match any task.%
  $ xt --task-dir books -f 7
  The ID "7" does not match any task.%
  $ xt --task-dir beer
  7 - Dogfish Head 120 minute IPA
  $ xt --task-dir books
  0 - Your Inner Fish

Right directories:

  $ xt --task-dir beer -f 7
  $ xt --task-dir books -f 0
  $ xt --task-dir beer
  $ xt --task-dir books