diff --git a/src/TDB2.h b/src/TDB2.h index f7719fb32..755538fa7 100644 --- a/src/TDB2.h +++ b/src/TDB2.h @@ -156,7 +156,6 @@ class TDB2 friend class CmdSync; // CmdSync accesses the backlog directly TF2 backlog; - friend class CmdInfo; // CmdInfo uses undo data to give history TF2 undo; private: diff --git a/src/commands/CmdInfo.cpp b/src/commands/CmdInfo.cpp index 847b04890..30dfaa2b5 100644 --- a/src/commands/CmdInfo.cpp +++ b/src/commands/CmdInfo.cpp @@ -77,11 +77,6 @@ int CmdInfo::execute (std::string& output) rc = 1; } - // Get the undo data. - std::vector undo; - if (Context::getContext ().config.getBoolean ("journal.info")) - undo = Context::getContext ().tdb2.undo.get_lines (); - // Determine the output date format, which uses a hierarchy of definitions. // rc.dateformat.info // rc.dateformat @@ -530,54 +525,6 @@ int CmdInfo::execute (std::string& output) urgencyDetails.set (row, 5, rightJustify (format (task.urgency (), 4, 4), 6)); } - // Create a third table, containing undo log change details. - Table journal; - setHeaderUnderline (journal); - - if (Context::getContext ().config.getBoolean ("obfuscate")) - journal.obfuscate (); - if (Context::getContext ().config.getBoolean ("color")) - journal.forceColor (); - - journal.width (Context::getContext ().getWidth ()); - journal.add ("Date"); - journal.add ("Modification"); - - if (Context::getContext ().config.getBoolean ("journal.info") && - undo.size () > 3) - { - // Scan the undo data for entries matching this task, without making - // copies. - unsigned int i = 0; - long last_timestamp = 0; - while (i < undo.size ()) - { - int when = i++; - int previous = -1; - - if (! undo[i].compare (0, 3, "old", 3)) - previous = i++; - - int current = i++; - i++; // Separator - - if (undo[current].find ("uuid:\"" + uuid) != std::string::npos) - { - if (previous != -1) - { - int row = journal.addRow (); - - Datetime timestamp (strtol (undo[when].substr (5).c_str (), nullptr, 10)); - journal.set (row, 0, timestamp.toString (dateformat)); - - Task before (undo[previous].substr (4)); - Task after (undo[current].substr (4)); - journal.set (row, 1, before.diffForInfo (after, dateformat, last_timestamp, Datetime(after.get("modified")).toEpoch())); - } - } - } - } - out << optionalBlankLine () << view.render () << '\n'; @@ -585,10 +532,6 @@ int CmdInfo::execute (std::string& output) if (urgencyDetails.rows () > 0) out << urgencyDetails.render () << '\n'; - - if (journal.rows () > 0) - out << journal.render () - << '\n'; } output = out.str (); diff --git a/test/info.t b/test/info.t index 17a0d40c4..23181db32 100755 --- a/test/info.t +++ b/test/info.t @@ -93,7 +93,6 @@ class TestInfoCommand(TestCase): self.assertRegex(out, "Urgency\s+\d+(\.\d+)?") self.assertRegex(out, "Priority\s+H") - self.assertRegex(out, "Annotation of 'bar' added.") self.assertIn("project", out) self.assertIn("active", out) self.assertIn("annotations", out) diff --git a/test/quotes.t b/test/quotes.t index 87c0ac734..9f962b595 100755 --- a/test/quotes.t +++ b/test/quotes.t @@ -79,7 +79,7 @@ class TestBug880(TestCase): self.assertEqual("one\\\n", out) self.t(r"1 annotate 'two\\'") - code, out, err = self.t("long rc.verbose:nothing") + code, out, err = self.t("info rc.verbose:nothing") self.assertIn("one\\\n", out) self.assertIn("two\\\n", out) diff --git a/test/start.t b/test/start.t index e8ea3d469..f44d1b69b 100755 --- a/test/start.t +++ b/test/start.t @@ -67,6 +67,7 @@ class TestStart(TestCase): code, out, err = self.t("list") self.assertNotIn("two", out) + @unittest.expectedFailure # journal is not yet supported def test_journal_time(self): """Verify journal.time tracks state""" self.t.config("journal.time", "1") @@ -80,6 +81,7 @@ class TestStart(TestCase): code, out, err = self.t("long") self.assertIn("Stopped task", out) + @unittest.expectedFailure # journal is not yet supported def test_journal_annotations(self): """Verify journal start/stop annotations are used""" self.t.config("journal.time", "1") diff --git a/test/tw-1999.t b/test/tw-1999.t deleted file mode 100755 index cb9d2e3c6..000000000 --- a/test/tw-1999.t +++ /dev/null @@ -1,92 +0,0 @@ -#!/usr/bin/env python3 -# -*- coding: utf-8 -*- -############################################################################### -# -# Copyright 2006 - 2021, Tomas Babej, Paul Beckingham, Federico Hernandez. -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to deal -# in the Software without restriction, including without limitation the rights -# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -# copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -# SOFTWARE. -# -# https://www.opensource.org/licenses/mit-license.php -# -############################################################################### - -import sys -import os -import unittest -# Ensure python finds the local simpletap module -sys.path.append(os.path.dirname(os.path.abspath(__file__))) - -from basetest import Task, TestCase, Taskd, ServerTestCase - - -class TestBug1999(TestCase): - """Bug 1999: Taskwarrior reports wrong active tim - """ - def setUp(self): - self.t = Task() - - def test_correct_active_time(self): - """Ensure correct active time locally - """ - desc = "Testing task" - self.t(("add", desc)) - self.t(("start", "1")) - self.t.faketime("+10m") - self.t(("stop", "1")) - - code, out, err = self.t(("info", "1")) - self.assertRegex(out, "duration: 0:10:0[0-5]") - - -class TestBug1999Server(ServerTestCase): - @classmethod - def setUpClass(cls): - cls.taskd = Taskd() - # This takes a while... - cls.taskd.start() - - def setUp(self): - self.t1 = Task(taskd=self.taskd) - self.t2 = Task(taskd=self.taskd) - - def test_correct_active_time(self): - """Ensure correct active time across different clients - """ - desc = "Testing task" - self.t1(("add", desc)) - self.t1(("start", "1")) - self.t1.faketime("+10m") - self.t1(("stop", "1")) - - self.t1("sync") - - code, out, err = self.t1(("info", "1")) - self.assertRegex(out, "duration: 0:10:0[0-5]") - - self.t2("sync") - - code2, out2, err2 = self.t2(("info", "1")) - self.assertIn("duration: 0:10:00", out2) - - -if __name__ == "__main__": - from simpletap import TAPTestRunner - unittest.main(testRunner=TAPTestRunner()) - -# vim: ai sts=4 et sw=4 ft=python diff --git a/test/tw-2514.t b/test/tw-2514.t index 4033bde81..5d2d3a840 100755 --- a/test/tw-2514.t +++ b/test/tw-2514.t @@ -7,5 +7,6 @@ task 1 mod start:yesterday+18h task 1 done end:yesterday+20h # Check that 2 hour interval is reported by task info -task info | grep -F "Start deleted" -[[ ! -z `task info | grep -F "Start deleted (duration: 2:00:00)."` ]] +## NOTE: this does not work without journal.info +true || task info | grep -F "Start deleted" +true || [[ ! -z `task info | grep -F "Start deleted (duration: 2:00:00)."` ]]