tests/manual.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 65b004631139
children (none)
Setup:

  $ alias xt="python $TESTDIR/../t.py --task-dir `pwd` --list test"

Create a task file manually (no IDs):

  $ cat >> test << EOF
  > Sample one.
  > Sample two.
  > EOF
  $ xt
  3 - Sample one.
  7 - Sample two.

Add some manual tasks:

  $ echo 'Custom one. | id: custom1' >> test
  $ echo 'Custom two. | id: custom2' >> test
  $ xt
  3       - Sample one.
  7       - Sample two.
  custom1 - Custom one.
  custom2 - Custom two.

Rewrite the task file:

  $ cat > test << EOF
  > New.
  > EOF
  $ xt
  5 - New.

Add comments to task file:

  $ echo '# this is a comment' >> test
  $ xt
  5 - New.