Beispiel #1
0
	def test_note_with_star_whitespace(self):
		title = 'a sample task'
		note = 'my note'
		phrase = '%s * %s%s' % (title, self.note_delimiter, note)
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, starred=True, note=note)
Beispiel #2
0
	def test_taskfolder_name_diacritic_insensitive_match(self):
		target_taskfolder = _diacritic_taskfolder
		title = 'a sample task'
		phrase = '%s: %s' % (_diacritic_taskfolder_insensitive, title) # Jardineria: a sample task (no accent)
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, list_title=target_taskfolder, list_id=_taskfolders.index(target_taskfolder))
Beispiel #3
0
	def test_note(self):
		title = 'a sample task'
		note = 'my note'
		phrase = '%s %s%s' % (title, self.note_delimiter, note)
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, note=note)
Beispiel #4
0
	def test_taskfolder_name_case_insensitive_match(self):
		target_taskfolder = _single_word_taskfolder
		title = 'a sample task'
		phrase = '%s: %s' % (target_taskfolder.upper(), title) # FINANCES: a sample task
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, list_title=target_taskfolder, list_id=_taskfolders.index(target_taskfolder))
Beispiel #5
0
	def test_taskfolder_initials(self):
		target_taskfolder = _multi_word_taskfolder
		title = 'a sample task'
		phrase = '%s: %s' % (initials(target_taskfolder), title) # SL: a sample task
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, list_title=target_taskfolder, list_id=_taskfolders.index(target_taskfolder))
Beispiel #6
0
	def test_infix_taskfolder_initials(self):
		target_taskfolder = _multi_word_taskfolder
		title = 'a sample task'
		phrase = '%s in list %s' % (title, initials(target_taskfolder)) # a sample task in list SL
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, list_title=target_taskfolder, list_id=_taskfolders.index(target_taskfolder))
Beispiel #7
0
	def test_taskfolder_name_diacritic_exact_match(self):
		target_taskfolder = _diacritic_taskfolder
		title = 'a sample task'
		phrase = '%s: %s' % (target_taskfolder, title) # Jardinería: a sample task
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, list_title=target_taskfolder, list_id=_taskfolders.index(target_taskfolder))
Beispiel #8
0
	def test_taskfolder_substring_infix(self):
		target_taskfolder = _single_word_taskfolder
		title = 'a sample task'
		phrase = '%s: %s' % (target_taskfolder[2:5], title) # nan: a sample task
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, list_title=target_taskfolder, list_id=_taskfolders.index(target_taskfolder))
Beispiel #9
0
	def test_default_time_today_disabled_offset(self):
		date_component = _today
		now = datetime.now()
		reminder_date = TaskParser.reminder_date_combine(date_component)

		assert reminder_date.date() == date_component
		assert reminder_date.time() == _default_reminder_time
Beispiel #10
0
	def test_infix_taskfolder_name_exact_match(self):
		target_taskfolder = _single_word_taskfolder
		title = 'a sample task'
		phrase = '%s in %s' % (title, target_taskfolder) # a sample task in Finances
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, list_title=target_taskfolder, list_id=_taskfolders.index(target_taskfolder))
Beispiel #11
0
	def test_tasks_is_default_before_syncing_taskfolders(self):
		target_taskfolder = _defaultTaskfolder
		title = 'a sample task'
		phrase = title
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, list_title=target_taskfolder, list_id=_taskfolders.index(target_taskfolder))
Beispiel #12
0
	def test_tasks_is_default_for_invalid_taskfolder_preference(self):
		target_taskfolder = _defaultTaskfolder
		title = 'a sample task'
		phrase = title
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, list_title=target_taskfolder, list_id=_taskfolders.index(target_taskfolder))
Beispiel #13
0
	def test_default_taskfolder_preference_is_default(self):
		target_taskfolder = _single_word_taskfolder
		title = 'a sample task'
		phrase = title
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, list_title=target_taskfolder, list_id=_taskfolders.index(target_taskfolder))
Beispiel #14
0
	def test_hashtag_prompt_following_list(self):
		target_taskfolder = _single_word_taskfolder
		title = '#'
		phrase = '%s:%s' % (target_taskfolder, title)
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, list_title=target_taskfolder, list_id=_taskfolders.index(target_taskfolder), has_hashtag_prompt=True)
Beispiel #15
0
	def test_explicit_due_date(self):
		title = 'a sample task'
		due_phrase = 'due 12/13/14'
		due_date = _12_13_14
		phrase = '%s %s' % (title, due_phrase)
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, due_date=due_date)
Beispiel #16
0
	def test_due_date_formats_with_keyword_and_filler_text(self):
		for (due_phrase, due_date) in due_date_formats.iteritems():
			due_phrase = 'due any filler text ' + due_phrase
			title = 'a sample task'
			phrase = '%s %s' % (title, due_phrase)
			task = TaskParser(phrase)

			assert_task(task, phrase=phrase, title=title, due_date=due_date)
Beispiel #17
0
	def test_remove_hashtag_prompt(self):
		hashtag = 'Example'
		phrase = '%s #%s' % (self.title, hashtag)
		task = TaskParser(phrase)

		new_phrase = self.task.phrase_with(hashtag=None)

		assert new_phrase == '%s' % (self.title)
Beispiel #18
0
	def test_multiline_note(self):
		title = 'a sample task'
		source_note = 'my\ntest\tnote'
		note = 'my test note'
		phrase = '%s %s %s' % (title, self.note_delimiter, note)
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, note=note)
Beispiel #19
0
	def test_case_insensitive_due_date(self):
		title = 'a sample task'
		due_phrase = 'DUe 12/13/14'
		due_date = _12_13_14
		phrase = '%s %s' % (title, due_phrase)
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, due_date=due_date)
Beispiel #20
0
	def test_change_hashtags(self):
		hashtag = 'Example'
		phrase = '%s #' % self.title
		task = TaskParser(phrase)

		new_phrase = self.task.phrase_with(hashtag=hashtag)

		assert new_phrase == '%s #%s' % (self.title, hashtag)
Beispiel #21
0
	def test_reminder_implicitly_relative_to_today(self):
		title = 'a sample task'
		reminder_phrase = 'r noon'
		reminder_date = datetime.combine(_today, time(12, 0, 0))
		phrase = '%s %s' % (title, reminder_phrase)
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, reminder_date=reminder_date)
Beispiel #22
0
	def test_reminder_explicit_date(self):
		title = 'a sample task'
		reminder_phrase = 'remind me at dinner on Dec 13, 2014'
		reminder_date = datetime.combine(_12_13_14, time(19, 0, 0))
		phrase = '%s %s' % (title, reminder_phrase)
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, reminder_date=reminder_date)
Beispiel #23
0
	def test_explicit_due_date_with_time_disabled_in_task(self):
		due_phrase = 'due at 4pm tomorrow'
		title = 'a sample task %s' % due_phrase
		not_due_phrase = 'not due'
		phrase = '%s %s' % (title, not_due_phrase)
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title)
Beispiel #24
0
	def test_due_date_with_time_overrides_automatic_reminder(self):
		title = 'a sample task'
		due_date = _tomorrow
		due_phrase = 'due 8:00 tomorrow'
		reminder_date = datetime.combine(due_date, time(8, 0, 0))
		phrase = '%s %s' % (title, due_phrase)
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, due_date=due_date, reminder_date=reminder_date)
Beispiel #25
0
	def test_automatic_reminder_with_due_date(self):
		title = 'a sample task'
		due_date = _tomorrow
		due_phrase = 'due tomorrow'
		reminder_date = datetime.combine(due_date, _default_reminder_time)
		phrase = '%s %s' % (title, due_phrase)
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, due_date=due_date, reminder_date=reminder_date)
Beispiel #26
0
	def test_reminder_with_time_implicitly_due_today(self):
		title = 'a sample task'
		reminder_phrase = 'at noon'
		reminder_date = datetime.combine(_today, _noon)
		due_date = _today
		phrase = '%s %s' % (title, reminder_phrase)
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, due_date=due_date, reminder_date=reminder_date)
Beispiel #27
0
	def test_due_date_with_time_sets_reminder(self):
		title = 'a sample task'
		due_phrase = 'due 12/13/14 at noon'
		due_date = _12_13_14
		reminder_date = datetime.combine(due_date, _noon)
		phrase = '%s %s' % (title, due_phrase)
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, due_date=due_date, reminder_date=reminder_date)
Beispiel #28
0
	def test_time_only_due_today_with_reminder_no_keyword(self):
		title = 'a sample task'
		due_phrase = 'at noon'
		due_date = _today
		reminder_date = datetime.combine(_today, _noon)
		phrase = '%s %s' % (title, due_phrase)
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, due_date=due_date, reminder_date=reminder_date)
Beispiel #29
0
	def test_reminder_implicitly_relative_to_due_date_no_time(self):
		title = 'a sample task'
		due_date = _tomorrow
		due_phrase = 'due tomorrow'
		reminder_phrase = 'r'
		reminder_date = datetime.combine(due_date, _default_reminder_time)
		phrase = '%s %s %s' % (title, due_phrase, reminder_phrase)
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, due_date=due_date, reminder_date=reminder_date, has_reminder_prompt=True)
Beispiel #30
0
	def test_explicit_reminder_overrides_due_date_with_time(self):
		title = 'a sample task'
		due_date = _tomorrow
		due_phrase = 'due tomorrow at noon'
		reminder_phrase = 'alarm at 8:00a'
		reminder_date = datetime.combine(due_date, time(8, 0, 0))
		phrase = '%s %s %s' % (title, due_phrase, reminder_phrase)
		task = TaskParser(phrase)

		assert_task(task, phrase=phrase, title=title, due_date=due_date, reminder_date=reminder_date)