From 19a1db7038d9fcb194ed2b8949bb5718f21226fe Mon Sep 17 00:00:00 2001 From: Stephan Gabler Date: Mon, 21 May 2012 20:55:45 +0200 Subject: [PATCH 1/2] fix date parsing when text body contains colon. The problem was appeared when no date was specified and the text body contained a colon. All the text before the colon was discarded and lost. This commit changes the code to first extract the first line as a title and then only look whether this title contains a valid date. --- jrnl.py | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/jrnl.py b/jrnl.py index ceace6e9..429f0c6a 100755 --- a/jrnl.py +++ b/jrnl.py @@ -323,17 +323,8 @@ class Journal: def new_entry(self, raw, date=None): """Constructs a new entry from some raw text input. If a date is given, it will parse and use this, otherwise scan for a date in the input first.""" - if not date: - if raw.find(":") > 0: - date = self.parse_date(raw[:raw.find(":")]) - if date: # Parsed successfully, strip that from the raw text - raw = raw[raw.find(":")+1:].strip() - - if not date: # Still nothing? Meh, just live in the moment. - date = self.parse_date("now") # Split raw text into title and body - body = "" title_end = len(raw) for separator in ".?!": sep_pos = raw.find(separator) @@ -341,6 +332,15 @@ class Journal: title_end = sep_pos title = raw[:title_end+1] body = raw[title_end+1:].strip() + + if not date: + if title.find(":") > 0: + date = self.parse_date(title[:title.find(":")]) + if date: # Parsed successfully, strip that from the raw text + title = title[title.find(":")+1:].strip() + if not date: # Still nothing? Meh, just live in the moment. + date = self.parse_date("now") + self.entries.append(Entry(self, date, title, body)) self.sort() From 59049a87f0eba58b6e103520c589200d6087fa6a Mon Sep 17 00:00:00 2001 From: Stephan Gabler Date: Mon, 21 May 2012 21:07:54 +0200 Subject: [PATCH 2/2] add testing scaffold, #28 --- test_jrnl.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 test_jrnl.py diff --git a/test_jrnl.py b/test_jrnl.py new file mode 100644 index 00000000..8280fe6e --- /dev/null +++ b/test_jrnl.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python +# encoding: utf-8 + +import unittest + +class TestClasses(unittest.TestCase): + """Test the behavior of the classes. + + tests related to the Journal and the Entry Classes which can + be tested withouth command-line interaction + """ + + def setUp(self): + pass + + def test_colon_in_textbody(self): + """colons should not cause problems in the text body""" + pass + + +class TestCLI(unittest.TestCase): + """test the command-line interaction part of the program""" + + def setUp(self): + pass + + def test_something(self): + """first test""" + pass + + +if __name__ == '__main__': + unittest.main()