mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-10 16:48:31 +02:00
commit
b45e52f743
5 changed files with 16 additions and 9 deletions
|
@ -4,6 +4,7 @@ Changelog
|
||||||
|
|
||||||
### 1.9 (July 21, 2014)
|
### 1.9 (July 21, 2014)
|
||||||
|
|
||||||
|
* __1.9.7__ Fixes writing non-ascii entries on the prompt
|
||||||
* __1.9.6__ Fuzzy time parsing improvements (thanks to @pcarranza)
|
* __1.9.6__ Fuzzy time parsing improvements (thanks to @pcarranza)
|
||||||
* __1.9.5__ Multi-word tags for DayOne Journals
|
* __1.9.5__ Multi-word tags for DayOne Journals
|
||||||
* __1.9.4__ Fixed: Order of journal entries in file correct after --edit'ing
|
* __1.9.4__ Fixed: Order of journal entries in file correct after --edit'ing
|
||||||
|
|
|
@ -59,3 +59,10 @@ Feature: Zapped bugs should stay dead.
|
||||||
2014-04-24 09:00 Ran 6.2 miles today in 1:02:03.
|
2014-04-24 09:00 Ran 6.2 miles today in 1:02:03.
|
||||||
| I'm feeling sore because I forgot to stretch.
|
| I'm feeling sore because I forgot to stretch.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
Scenario: Writing an entry at the prompt with non-ascii characters
|
||||||
|
# https://github.com/maebert/jrnl/issues/295
|
||||||
|
Given we use the config "basic.json"
|
||||||
|
When we run "jrnl" and enter "Crème brûlée & Mötorhead"
|
||||||
|
Then we should get no error
|
||||||
|
and the journal should contain "Crème brûlée & Mötorhead"
|
||||||
|
|
|
@ -2,9 +2,8 @@ from behave import *
|
||||||
from jrnl import cli, Journal, util
|
from jrnl import cli, Journal, util
|
||||||
from dateutil import parser as date_parser
|
from dateutil import parser as date_parser
|
||||||
import os
|
import os
|
||||||
import sys
|
import codecs
|
||||||
import json
|
import json
|
||||||
import pytz
|
|
||||||
import keyring
|
import keyring
|
||||||
keyring.set_keyring(keyring.backends.file.PlaintextKeyring())
|
keyring.set_keyring(keyring.backends.file.PlaintextKeyring())
|
||||||
try:
|
try:
|
||||||
|
@ -30,7 +29,7 @@ def _parse_args(command):
|
||||||
def read_journal(journal_name="default"):
|
def read_journal(journal_name="default"):
|
||||||
with open(cli.CONFIG_PATH) as config_file:
|
with open(cli.CONFIG_PATH) as config_file:
|
||||||
config = json.load(config_file)
|
config = json.load(config_file)
|
||||||
with open(config['journals'][journal_name]) as journal_file:
|
with codecs.open(config['journals'][journal_name], 'r', 'utf-8') as journal_file:
|
||||||
journal = journal_file.read()
|
journal = journal_file.read()
|
||||||
return journal
|
return journal
|
||||||
|
|
||||||
|
@ -57,7 +56,7 @@ def run_with_input(context, command, inputs=None):
|
||||||
buffer = StringIO(text.strip())
|
buffer = StringIO(text.strip())
|
||||||
util.STDIN = buffer
|
util.STDIN = buffer
|
||||||
try:
|
try:
|
||||||
cli.run(args or None)
|
cli.run(args)
|
||||||
context.exit_status = 0
|
context.exit_status = 0
|
||||||
except SystemExit as e:
|
except SystemExit as e:
|
||||||
context.exit_status = e.code
|
context.exit_status = e.code
|
||||||
|
@ -66,7 +65,7 @@ def run_with_input(context, command, inputs=None):
|
||||||
def run(context, command):
|
def run(context, command):
|
||||||
args = _parse_args(command)
|
args = _parse_args(command)
|
||||||
try:
|
try:
|
||||||
cli.run(args or None)
|
cli.run(args)
|
||||||
context.exit_status = 0
|
context.exit_status = 0
|
||||||
except SystemExit as e:
|
except SystemExit as e:
|
||||||
context.exit_status = e.code
|
context.exit_status = e.code
|
||||||
|
@ -184,7 +183,7 @@ def config_var(context, key, value, journal=None):
|
||||||
@then('the journal should have {number:d} entry')
|
@then('the journal should have {number:d} entry')
|
||||||
@then('journal "{journal_name}" should have {number:d} entries')
|
@then('journal "{journal_name}" should have {number:d} entries')
|
||||||
@then('journal "{journal_name}" should have {number:d} entry')
|
@then('journal "{journal_name}" should have {number:d} entry')
|
||||||
def check_journal_content(context, number, journal_name="default"):
|
def check_num_entries(context, number, journal_name="default"):
|
||||||
journal = open_journal(journal_name)
|
journal = open_journal(journal_name)
|
||||||
assert len(journal.entries) == number
|
assert len(journal.entries) == number
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@ jrnl is a simple journal application for your command line.
|
||||||
from __future__ import absolute_import
|
from __future__ import absolute_import
|
||||||
|
|
||||||
__title__ = 'jrnl'
|
__title__ = 'jrnl'
|
||||||
__version__ = '1.9.6'
|
__version__ = '1.9.7'
|
||||||
__author__ = 'Manuel Ebert'
|
__author__ = 'Manuel Ebert'
|
||||||
__license__ = 'MIT License'
|
__license__ = 'MIT License'
|
||||||
__copyright__ = 'Copyright 2013 - 2014 Manuel Ebert'
|
__copyright__ = 'Copyright 2013 - 2014 Manuel Ebert'
|
||||||
|
|
|
@ -79,11 +79,11 @@ def prompt(msg):
|
||||||
|
|
||||||
def py23_input(msg=""):
|
def py23_input(msg=""):
|
||||||
prompt(msg)
|
prompt(msg)
|
||||||
return STDIN.readline().strip()
|
return u(STDIN.readline()).strip()
|
||||||
|
|
||||||
def py23_read(msg=""):
|
def py23_read(msg=""):
|
||||||
prompt(msg)
|
prompt(msg)
|
||||||
return STDIN.read()
|
return u(STDIN.read())
|
||||||
|
|
||||||
def yesno(prompt, default=True):
|
def yesno(prompt, default=True):
|
||||||
prompt = prompt.strip() + (" [Y/n]" if default else " [y/N]")
|
prompt = prompt.strip() + (" [Y/n]" if default else " [y/N]")
|
||||||
|
|
Loading…
Add table
Reference in a new issue