mirror of
https://github.com/jrnl-org/jrnl.git
synced 2025-05-10 16:48:31 +02:00
Display warning if Python version is less than 3.7 (#994)
* Add Python version check and faulty test to confirm it's working (should fail on 3.6 build only) * Apply formatting * Fix behave Python version test * Make error message more descriptive and friendly
This commit is contained in:
parent
686fc0cfdf
commit
4ca6e3f95f
3 changed files with 32 additions and 1 deletions
|
@ -135,3 +135,7 @@ Feature: Basic reading and writing to a journal
|
||||||
When we run "jrnl --diagnostic"
|
When we run "jrnl --diagnostic"
|
||||||
Then the output should contain "jrnl"
|
Then the output should contain "jrnl"
|
||||||
And the output should contain "Python"
|
And the output should contain "Python"
|
||||||
|
|
||||||
|
Scenario: Version warning appears for versions below 3.7
|
||||||
|
When we run "jrnl --diagnostic"
|
||||||
|
Then the Python version warning should appear if our version is below 3.7
|
||||||
|
|
|
@ -372,6 +372,20 @@ def list_journal_directory(context, journal="default"):
|
||||||
print(os.path.join(root, file))
|
print(os.path.join(root, file))
|
||||||
|
|
||||||
|
|
||||||
|
@then("the Python version warning should appear if our version is below {version}")
|
||||||
|
def check_python_warning_if_version_low_enough(context, version):
|
||||||
|
import packaging.version
|
||||||
|
import platform
|
||||||
|
|
||||||
|
if packaging.version.parse(platform.python_version()) < packaging.version.parse(
|
||||||
|
version
|
||||||
|
):
|
||||||
|
out = context.stderr_capture.getvalue()
|
||||||
|
assert "WARNING: Python versions" in out
|
||||||
|
else:
|
||||||
|
assert True
|
||||||
|
|
||||||
|
|
||||||
@then("fail")
|
@then("fail")
|
||||||
def debug_fail(context):
|
def debug_fail(context):
|
||||||
assert False
|
assert False
|
||||||
|
|
15
jrnl/cli.py
15
jrnl/cli.py
|
@ -21,6 +21,7 @@
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import logging
|
import logging
|
||||||
|
import packaging.version
|
||||||
import platform
|
import platform
|
||||||
import re
|
import re
|
||||||
import sys
|
import sys
|
||||||
|
@ -29,7 +30,7 @@ import jrnl
|
||||||
|
|
||||||
from . import install, plugins, util
|
from . import install, plugins, util
|
||||||
from .Journal import PlainJournal, open_journal
|
from .Journal import PlainJournal, open_journal
|
||||||
from .util import ERROR_COLOR, RESET_COLOR, UserAbort
|
from .util import WARNING_COLOR, ERROR_COLOR, RESET_COLOR, UserAbort
|
||||||
|
|
||||||
log = logging.getLogger(__name__)
|
log = logging.getLogger(__name__)
|
||||||
logging.getLogger("keyring.backend").setLevel(logging.ERROR)
|
logging.getLogger("keyring.backend").setLevel(logging.ERROR)
|
||||||
|
@ -313,6 +314,18 @@ def configure_logger(debug=False):
|
||||||
|
|
||||||
|
|
||||||
def run(manual_args=None):
|
def run(manual_args=None):
|
||||||
|
if packaging.version.parse(platform.python_version()) < packaging.version.parse(
|
||||||
|
"3.7"
|
||||||
|
):
|
||||||
|
print(
|
||||||
|
f"""{WARNING_COLOR}
|
||||||
|
WARNING: Python versions below 3.7 will no longer be supported as of jrnl v2.5
|
||||||
|
(the next release). You are currently on Python {platform.python_version()}. Please update to
|
||||||
|
Python 3.7 (or higher) soon.
|
||||||
|
{RESET_COLOR}""",
|
||||||
|
file=sys.stderr,
|
||||||
|
)
|
||||||
|
|
||||||
if manual_args is None:
|
if manual_args is None:
|
||||||
manual_args = sys.argv[1:]
|
manual_args = sys.argv[1:]
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue