- Added 'modified' attribute in ::validate, if not already present. This is not
  strictly necessary, but it is good to be explicit.
This commit is contained in:
Paul Beckingham 2014-09-07 23:24:07 -04:00
parent 5ce317bb48
commit fe549094e3
3 changed files with 46 additions and 36 deletions

View file

@ -184,9 +184,9 @@ std::string Task::statusToText (Task::status s)
////////////////////////////////////////////////////////////////////////////////
void Task::setEntry ()
{
char entryTime[16];
sprintf (entryTime, "%u", (unsigned int) time (NULL));
set ("entry", entryTime);
char now[16];
sprintf (now, "%u", (unsigned int) time (NULL));
set ("entry", now);
recalc_urgency = true;
}
@ -194,9 +194,9 @@ void Task::setEntry ()
////////////////////////////////////////////////////////////////////////////////
void Task::setEnd ()
{
char endTime[16];
sprintf (endTime, "%u", (unsigned int) time (NULL));
set ("end", endTime);
char now[16];
sprintf (now, "%u", (unsigned int) time (NULL));
set ("end", now);
recalc_urgency = true;
}
@ -204,9 +204,9 @@ void Task::setEnd ()
////////////////////////////////////////////////////////////////////////////////
void Task::setStart ()
{
char startTime[16];
sprintf (startTime, "%u", (unsigned int) time (NULL));
set ("start", startTime);
char now[16];
sprintf (now, "%u", (unsigned int) time (NULL));
set ("start", now);
recalc_urgency = true;
}
@ -1492,6 +1492,10 @@ void Task::validate (bool applyDefault /* = true */)
(! has ("end") || get ("end") == ""))
setEnd ();
// Provide an entry date unless user already specified one.
if (!has ("modified") || get ("modified") == "")
setModified ();
if (applyDefault)
{
// Override with default.project, if not specified.

View file

@ -27,17 +27,21 @@
use strict;
use warnings;
use Test::More tests => 20;
use Test::More tests => 22;
# Ensure environment has no influence.
delete $ENV{'TASKDATA'};
delete $ENV{'TASKRC'};
use File::Basename;
my $ut = basename ($0);
my $rc = $ut . '.rc';
my $source_dir = $0;
$source_dir =~ s{[^/]+$}{..};
# Create the rc file.
if (open my $fh, '>', 'export.rc')
if (open my $fh, '>', $rc)
{
print $fh "data.location=.\n",
"verbose=no\n";
@ -46,10 +50,10 @@ if (open my $fh, '>', 'export.rc')
# Add two tasks, export, examine result.
# TODO Add annotations.
qx{../src/task rc:export.rc add priority:H project:A one 2>&1};
qx{../src/task rc:export.rc add +tag1 +tag2 two 2>&1};
qx{../src/task rc:$rc add priority:H project:A one 2>&1};
qx{../src/task rc:$rc add +tag1 +tag2 two 2>&1};
my $output = qx{../src/task rc:export.rc export | $source_dir/scripts/add-ons/export-yaml.pl > ./export.txt 2>&1};
my $output = qx{../src/task rc:$rc export | $source_dir/scripts/add-ons/export-yaml.pl > ./export.txt 2>&1};
my @lines;
if (open my $fh, '<', './export.txt')
{
@ -57,28 +61,30 @@ if (open my $fh, '<', './export.txt')
close $fh;
}
like ($lines[0], qr/^\%YAML 1\.1$/, 'export YAML line 1');
like ($lines[1], qr/^---$/, 'export YAML line 2');
like ($lines[2], qr/^ task:$/, 'export YAML line 3');
like ($lines[3], qr/^ description: one$/, 'export YAML line 4');
like ($lines[4], qr/^ entry: \d{8}T\d{6}Z$/, 'export YAML line 5');
like ($lines[5], qr/^ id: \d+$/, 'export YAML line 6');
like ($lines[6], qr/^ priority: H$/, 'export YAML line 7');
like ($lines[7], qr/^ project: A$/, 'export YAML line 8');
like ($lines[8], qr/^ status: pending$/, 'export YAML line 9');
like ($lines[9], qr/^ urgency: .+$/, 'export YAML line 10');
like ($lines[10], qr/^ uuid: .+$/, 'export YAML line 11');
like ($lines[11], qr/^ task:$/, 'export YAML line 12');
like ($lines[12], qr/^ description: two$/, 'export YAML line 13');
like ($lines[13], qr/^ entry: \d{8}T\d{6}Z$/, 'export YAML line 14');
like ($lines[14], qr/^ id: \d+$/, 'export YAML line 15');
like ($lines[15], qr/^ status: pending$/, 'export YAML line 16');
like ($lines[16], qr/^ tags: tag1,tag2$/, 'export YAML line 17');
like ($lines[17], qr/^ urgency: .+$/, 'export YAML line 18');
like ($lines[18], qr/^ uuid: .+$/, 'export YAML line 19');
like ($lines[19], qr/^\.\.\.$/, 'export YAML line 20');
like ($lines[0], qr/^\%YAML 1\.1$/, "$ut: export YAML line 1");
like ($lines[1], qr/^---$/, "$ut: export YAML line 2");
like ($lines[2], qr/^ task:$/, "$ut: export YAML line 3");
like ($lines[3], qr/^ description: one$/, "$ut: export YAML line 4");
like ($lines[4], qr/^ entry: \d{8}T\d{6}Z$/, "$ut: export YAML line 5");
like ($lines[5], qr/^ id: \d+$/, "$ut: export YAML line 6");
like ($lines[6], qr/^ modified: \d{8}T\d{6}Z$/, "$ut: export YAML line 7");
like ($lines[7], qr/^ priority: H$/, "$ut: export YAML line 8");
like ($lines[8], qr/^ project: A$/, "$ut: export YAML line 9");
like ($lines[9], qr/^ status: pending$/, "$ut: export YAML line 10");
like ($lines[10], qr/^ urgency: .+$/, "$ut: export YAML line 11");
like ($lines[11], qr/^ uuid: .+$/, "$ut: export YAML line 12");
like ($lines[12], qr/^ task:$/, "$ut: export YAML line 13");
like ($lines[13], qr/^ description: two$/, "$ut: export YAML line 14");
like ($lines[14], qr/^ entry: \d{8}T\d{6}Z$/, "$ut: export YAML line 15");
like ($lines[15], qr/^ id: \d+$/, "$ut: export YAML line 16");
like ($lines[16], qr/^ modified: \d{8}T\d{6}Z$/, "$ut: export YAML line 17");
like ($lines[17], qr/^ status: pending$/, "$ut: export YAML line 18");
like ($lines[18], qr/^ tags: tag1,tag2$/, "$ut: export YAML line 19");
like ($lines[19], qr/^ urgency: .+$/, "$ut: export YAML line 20");
like ($lines[20], qr/^ uuid: .+$/, "$ut: export YAML line 21");
like ($lines[21], qr/^\.\.\.$/, "$ut: export YAML line 22");
# Cleanup.
unlink qw(pending.data completed.data undo.data backlog.data export.rc export.txt);
unlink qw(pending.data completed.data undo.data backlog.data export.txt), $rc;
exit 0;

View file

@ -327,7 +327,7 @@ like ($output, qr/urgency 5$/ms, 'scheduled past = 5');
# urgency values between 0 and 1
qx {../src/task rc:urgency.rc add 13 pri:H 2>&1};
$output = qx{../src/task rc:urgency.rc rc.urgency.priority.coefficient:0.01234 46 info 2>&1};
like ($output, qr/Urgency 0\.01$/ms, 'near-zero urgency is truncated');
like ($output, qr/Urgency\s+0\.01$/ms, 'near-zero urgency is truncated');
# Cleanup.
unlink qw(pending.data completed.data undo.data backlog.data urgency.rc);