Commit graph

2662 commits

Author SHA1 Message Date
Thomas Lauf
f53e1cef6d Switch to python 3
- #259

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-11 10:20:32 +01:00
Thomas Lauf
2f6d12fc9e Add performance tests
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-12-06 16:29:40 +01:00
Thomas Lauf
05a418592b Add test environment for macOS 10.14
- Small tweaks in test script

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-11-23 22:02:09 +01:00
Thomas Lauf
a2a53365ad Add commit hash for release 1.2.0
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-11-23 20:33:00 +01:00
Thomas Lauf
1d271508a2 Prepare for release 1.2.0
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-11-22 23:20:51 +01:00
Thomas Lauf
bc057b423d Update NEWS
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-11-22 22:13:18 +01:00
Thomas Lauf
3ddcee67c3 Update Copyright
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-11-22 21:42:49 +01:00
Thomas Lauf
ac084e7fe3 Update list of operating systems
- All systems we do test on Travis

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-11-22 21:40:02 +01:00
Thomas Lauf
f77cc0b973 Update ChangeLog for 1.2.0
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-11-20 23:49:34 +01:00
Thomas Lauf
5fa4bdff2c Update ChangeLog
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-11-20 07:00:06 +01:00
Thomas Lauf
400d02aedb Reduce upper limit for exclusion calculation to current datetime
- `Datetimee("tomorrow")` can create extra exclusion ahead of current time
  which in turn create erroneous synthetic intervals
- Fixes #260

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-11-20 06:55:43 +01:00
Thomas Lauf
383ca96147 Update ChangeLog and AUTHORS
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-11-19 21:53:11 +01:00
Shaun Ruffell
a021e8402f Ignore stderr output in TestHelp.test_help_with_command_should_show_man_page 2019-11-19 19:45:18 +01:00
Shaun Ruffell
f0bda68b02 Allow help.t test to find manpages without installing them. 2019-11-19 19:45:18 +01:00
Shaun Ruffell
8109c155af #220: Handle escaped quotes in tags database file.
If there are escaped quotes in the tags database file, when the file is read,
then written, additional escape characters were inserted.

For example:

When tag 'a "test"' is written, it gets stored as 'a \"test\"'. Then it's read
back in that form, but the next time it's serialized to disk, the quotes would
be escaped again resulting in 'a \\"test\\"' which has the effect of removing
the escapes for the double-quotes.
2019-11-18 06:43:21 +01:00
Shaun Ruffell
5f5cfb7b0f #254: quotes in annotations are not escaped
Escapes the quotes for the annotations in the data file, and when
converting an interval to JSON.

The quotes in the annotations were already dequoted in
IntervalFactory::fromSerialization, so we only needed to quote the strings
when serializing or dumping to JSON.
2019-11-18 06:43:21 +01:00
Thomas Lauf
1d8b2aa042 Fix gentoo setup
- Change path for portage to /var/db/repos/gentoo
- Replace sys-apps/man with sys-apps/man-db

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-11-17 22:18:49 +01:00
Thomas Lauf
45672e05f3 Add options --hours and --minutes to inject a range
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-11-12 16:32:15 +01:00
Thomas Lauf
ad926480dd Check exit code directly
- See https://github.com/koalaman/shellcheck/wiki/SC2181

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-11-12 16:31:23 +01:00
Thomas Lauf
e15fcd30d0 Update copyright holders
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-10-18 10:59:16 +02:00
Thomas Lauf
d64017a7a6 Update copyright dates
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-10-18 10:59:16 +02:00
Michael Eischer
8053ccf68e Fix calculation of totals longer than a day
datetime.timedelta stores days, seconds and microseconds. Therefore the
seconds attribute only stores timedeltas of less than 24 hours. Use
total_seconds() instead which properly accounts for the days part.
2019-10-18 10:56:50 +02:00
Thomas Lauf
cd0d5d175e Update libshared to 0d4e31de757ea2609a82549c5b09703d3d3fbe16
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-09-06 16:17:22 +02:00
Thomas Lauf
629a3ffe58 Run tests from parent directory
- somehow cpp-testfiles are not compiled when calling make in the test directory
- make install is required to be executed before make test, because we need access to man pages (help.t)

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-09-06 16:11:29 +02:00
Thomas Lauf
cf41d2f80c Set repository location back to /usr/portage
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-27 09:38:30 +02:00
Thomas Lauf
26716679ef Set gentoo portage location to /var/db/repos/gentoo
- See https://github.com/gentoo/gentoo-docker-images/issues/69

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-27 09:33:21 +02:00
Thomas Lauf
529e6905ca Use external image as stage
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-26 23:46:58 +02:00
Thomas Lauf
c33de03a9a Remove debug statements
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-26 23:15:05 +02:00
Thomas Lauf
bdb4111dd7 Fix setting locale for ubuntu
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-26 22:51:43 +02:00
Thomas Lauf
f49a5e14b1 Add package locales
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-26 22:32:47 +02:00
Thomas Lauf
5a5b8c7fe4 Fix setting locale for debian
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-26 22:26:18 +02:00
Thomas Lauf
a37db57b3c Set environment variable ENV MAN_DISABLE_SECCOMP=1
- See https://bugs.archlinux.org/task/57557

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-26 21:48:40 +02:00
Thomas Lauf
81c7dbc3e3 Use package man-db instead of man
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-26 21:24:54 +02:00
Thomas Lauf
e1b1eecf06 Fix dependency
- use groff instead of nroff

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-26 20:08:22 +02:00
Thomas Lauf
8db7aff1af Add nroff to dependencies
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-26 19:11:47 +02:00
Thomas Lauf
cd098289f5 Add assertion for stderr
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-26 12:53:03 +02:00
Thomas Lauf
38a72afd97 Let this statement pass...
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-25 14:07:20 +02:00
Thomas Lauf
b48f4a87cd Add some statements to debug gentoo build fail
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-25 14:00:16 +02:00
Thomas Lauf
bbf5ba0d0f Update ChangeLog and AUTHORS
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-25 13:11:58 +02:00
Thomas Lauf
e6b5a14927 Extend command 'annotate' to remove annotation
- Closes #247

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-24 23:57:30 +02:00
Thomas Lauf
99c3398a63 Remove --no-cache option
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-22 23:24:58 +02:00
Thomas Lauf
2d70810abe Build docker image without cache to fix gentoo copy issue
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-22 23:17:57 +02:00
Thomas Lauf
2a3caad1cd Process task annotate
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-22 22:34:22 +02:00
Thomas Lauf
fc383b73de Small refactoring
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-22 22:34:22 +02:00
Thomas Lauf
b19b5eef10 Fix for task delete
- `task delete` does add 'end' to modified JSON but not remove key 'start'
- Stop time tracking when task is deleted

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-22 22:34:22 +02:00
Thomas Lauf
21f0060899 Overhaul test
- Update example JSONs
- Test only for active time tracking
- Test resulting intervals, not resulting output

Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-22 22:34:22 +02:00
Thomas Lauf
a0a5e0ddac Make hook run in both python 2 and 3
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-22 22:34:22 +02:00
Thomas Lauf
6d09d8fe13 Add quotes around expected/actual string in assertion message
Signed-off-by: Thomas Lauf <thomas.lauf@tngtech.com>
2019-08-22 22:33:58 +02:00
Dennis Schridde
7fe4d2ff39 on-modify.timewarrior: Deal with non-UTF-8 characters in input data from taskwarrior
When input data from taskwarrior (e.g. via bugwarrior) contains UTF-8-illegal characters, `on-modify.timewarrior` would fail:
```
Traceback (most recent call last):
  File "$HOME/.task/hooks/on-modify.timewarrior", line 42, in <module>
    old = json.loads(sys.stdin.readline())
  File "/usr/lib/python3.6/codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xed in position 1042: invalid continuation byte
```

This is fixed by manually decoding from stdin's underlying binary I/O object and replacing encoding errors with the Unicode replacement character [1].

[1]: https://docs.python.org/3/library/codecs.html#error-handlers
2019-08-22 21:51:03 +02:00
Dennis Schridde
61a4749d75 Fix on-modify.timewarrior hook for tasks with multi line description
If the description contained multiple lines, it would be formatted as a
bytes object, including Python's `b""` marker for byte literals and any
newlines.  This would then be passed literally to `timew`, which would
then choke on it, because it would record the newlines in its database.

This patch simply gets rid of the string join/split operations and the
encoding, which solves the issue.

Since we pass arrays instead of strings to `subprocess.call`, we are not
subject to command injection security vulnerabilities.

Fixes: 0b6dbf7e12
2019-08-22 21:39:11 +02:00