diff --git a/.travis.yml b/.travis.yml index e43dcb4c5..8ecc16215 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,6 +2,7 @@ language: python python: - "3.6" - "3.7" + - "3.8" dist: xenial sudo: true install: diff --git a/commitizen/__init__.py b/commitizen/__init__.py index 314689ec1..6db9e6e7d 100644 --- a/commitizen/__init__.py +++ b/commitizen/__init__.py @@ -1,8 +1,9 @@ import logging import logging.config + from colorama import init -from commitizen.cz.base import BaseCommitizen +from commitizen.cz.base import BaseCommitizen init() diff --git a/commitizen/__main__.py b/commitizen/__main__.py index 858a41f2b..7e0a3607f 100644 --- a/commitizen/__main__.py +++ b/commitizen/__main__.py @@ -1,5 +1,4 @@ from commitizen.cli import main - if __name__ == "__main__": main() diff --git a/commitizen/bump.py b/commitizen/bump.py index a6718c6ef..64ae2e469 100644 --- a/commitizen/bump.py +++ b/commitizen/bump.py @@ -2,15 +2,17 @@ from collections import defaultdict from itertools import zip_longest from string import Template -from packaging.version import Version from typing import List, Optional, Union + +from packaging.version import Version + from commitizen.defaults import ( MAJOR, MINOR, PATCH, - bump_pattern, bump_map, bump_message, + bump_pattern, ) diff --git a/commitizen/cli.py b/commitizen/cli.py index 11e933000..3cf75ce68 100644 --- a/commitizen/cli.py +++ b/commitizen/cli.py @@ -1,15 +1,12 @@ -import io -import os -import sys -import logging import argparse +import logging +import sys import warnings + from decli import cli -from pathlib import Path -from configparser import RawConfigParser, NoSectionError -from commitizen import defaults, commands, out, config -from commitizen.__version__ import __version__ +from commitizen import commands, config, out +from commitizen.__version__ import __version__ logger = logging.getLogger(__name__) data = { @@ -46,8 +43,8 @@ "name": ["--retry"], "action": "store_true", "help": "retry last commit", - }, - ] + } + ], }, { "name": "example", diff --git a/commitizen/commands/bump.py b/commitizen/commands/bump.py index a14776abf..5b30caf4f 100644 --- a/commitizen/commands/bump.py +++ b/commitizen/commands/bump.py @@ -1,8 +1,9 @@ -from packaging.version import Version from typing import Optional import questionary -from commitizen import bump, git, config, out, factory +from packaging.version import Version + +from commitizen import bump, config, factory, git, out NO_COMMITS_FOUND = 3 NO_VERSION_SPECIFIED = 4 diff --git a/commitizen/commands/commit.py b/commitizen/commands/commit.py index d42aa55a2..cda2abcef 100644 --- a/commitizen/commands/commit.py +++ b/commitizen/commands/commit.py @@ -1,10 +1,10 @@ import contextlib import os -import questionary import tempfile -from commitizen import factory, out, git +import questionary +from commitizen import factory, git, out NO_ANSWERS = 5 COMMIT_ERROR = 6 diff --git a/commitizen/config.py b/commitizen/config.py index 5c4f2e270..24507e0ea 100644 --- a/commitizen/config.py +++ b/commitizen/config.py @@ -2,9 +2,10 @@ import json import os import warnings -from typing import Optional from pathlib import Path -from tomlkit import parse, exceptions +from typing import Optional + +from tomlkit import exceptions, parse from commitizen import defaults diff --git a/commitizen/cz/__init__.py b/commitizen/cz/__init__.py index 12717fabb..88e936d0c 100644 --- a/commitizen/cz/__init__.py +++ b/commitizen/cz/__init__.py @@ -1,5 +1,6 @@ import importlib import pkgutil + from commitizen.cz.conventional_commits import ConventionalCommitsCz from commitizen.cz.jira import JiraSmartCz diff --git a/commitizen/cz/base.py b/commitizen/cz/base.py index e63a6c84b..656100ec6 100644 --- a/commitizen/cz/base.py +++ b/commitizen/cz/base.py @@ -1,7 +1,7 @@ -from typing import Optional, List, Tuple from abc import ABCMeta, abstractmethod +from typing import List, Optional, Tuple -from prompt_toolkit.styles import merge_styles, Style +from prompt_toolkit.styles import Style, merge_styles class BaseCommitizen(metaclass=ABCMeta): diff --git a/commitizen/cz/conventional_commits/conventional_commits.py b/commitizen/cz/conventional_commits/conventional_commits.py index 194106add..059d8e3aa 100644 --- a/commitizen/cz/conventional_commits/conventional_commits.py +++ b/commitizen/cz/conventional_commits/conventional_commits.py @@ -1,6 +1,8 @@ import os -from commitizen.cz.base import BaseCommitizen + from commitizen import defaults +from commitizen.cz.base import BaseCommitizen + __all__ = ["ConventionalCommitsCz"] diff --git a/commitizen/cz/jira/jira.py b/commitizen/cz/jira/jira.py index 36e1199f2..fd329b970 100644 --- a/commitizen/cz/jira/jira.py +++ b/commitizen/cz/jira/jira.py @@ -1,6 +1,6 @@ import os -from commitizen.cz.base import BaseCommitizen +from commitizen.cz.base import BaseCommitizen __all__ = ["JiraSmartCz"] @@ -67,7 +67,7 @@ def example(self): ) def schema(self): - return " # " + return " # " # noqa def info(self): dir_path = os.path.dirname(os.path.realpath(__file__)) diff --git a/commitizen/defaults.py b/commitizen/defaults.py index 4c0ebfbb7..d6287fe67 100644 --- a/commitizen/defaults.py +++ b/commitizen/defaults.py @@ -7,7 +7,7 @@ "version": None, "files": [], "tag_format": None, # example v$version - "bump_message": None # bumped v$current_version to $new_version + "bump_message": None, # bumped v$current_version to $new_version } MAJOR = "MAJOR" diff --git a/commitizen/factory.py b/commitizen/factory.py index 9aea7ec0f..b1592feda 100644 --- a/commitizen/factory.py +++ b/commitizen/factory.py @@ -1,7 +1,6 @@ from commitizen import BaseCommitizen, out from commitizen.cz import registry - NO_COMMITIZEN_FOUND = 2 diff --git a/commitizen/git.py b/commitizen/git.py index 20e694789..c04206a90 100644 --- a/commitizen/git.py +++ b/commitizen/git.py @@ -1,5 +1,6 @@ import os from tempfile import NamedTemporaryFile + from commitizen import cmd diff --git a/commitizen/out.py b/commitizen/out.py index 04b2f7eca..268f02e29 100644 --- a/commitizen/out.py +++ b/commitizen/out.py @@ -1,4 +1,5 @@ import sys + from termcolor import colored diff --git a/pyproject.toml b/pyproject.toml index 72d0e6d7e..70ddb2204 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -63,6 +63,7 @@ codecov = "^2.0" mypy = "^0.740" mkdocs = "^1.0" mkdocs-material = "^4.1" +isort = "^4.3.21" [tool.poetry.scripts] cz = "commitizen.cli:main" diff --git a/scripts/lint b/scripts/lint new file mode 100755 index 000000000..d737c8f47 --- /dev/null +++ b/scripts/lint @@ -0,0 +1,11 @@ +#!/bin/sh -e + +export PREFIX="" +if [ -d 'venv' ] ; then + export PREFIX="venv/bin/" +fi + +set -x + +${PREFIX}isort --multi-line=3 --trailing-comma --force-grid-wrap=0 --combine-as --line-width 88 --recursive --apply commitizen tests +${PREFIX}black commitizen tests diff --git a/scripts/test b/scripts/test index 8d0c552f5..be8a2de8a 100755 --- a/scripts/test +++ b/scripts/test @@ -1 +1,8 @@ -pytest --cov-report term-missing --cov=commitizen tests/ +export PREFIX="" +if [ -d 'venv' ] ; then + export PREFIX="venv/bin/" +fi + +${PREFIX}pytest --cov-report term-missing --cov=commitizen tests/ +${PREFIX}black commitizen tests --check +${PREFIX}flake8 --max-line-length=88 commitizen/ tests/ diff --git a/tests/test_bump_command.py b/tests/test_bump_command.py index 59826d028..861057d46 100644 --- a/tests/test_bump_command.py +++ b/tests/test_bump_command.py @@ -1,11 +1,13 @@ import os import shutil -import pytest import sys -from typing import Optional -from pathlib import Path -from commitizen import git, cmd, cli import uuid +from pathlib import Path +from typing import Optional + +import pytest + +from commitizen import cli, cmd, git @pytest.fixture diff --git a/tests/test_bump_create_commit_message.py b/tests/test_bump_create_commit_message.py index 7a6865770..4923d0a66 100644 --- a/tests/test_bump_create_commit_message.py +++ b/tests/test_bump_create_commit_message.py @@ -1,5 +1,6 @@ import pytest from packaging.version import Version + from commitizen import bump conversion = [ @@ -7,14 +8,8 @@ ("1.2.3", "1.3.0", "bump: $current_version -> $new_version [skip ci]"), "bump: 1.2.3 -> 1.3.0 [skip ci]", ), - ( - ("1.2.3", "1.3.0", None), - "bump: version 1.2.3 → 1.3.0", - ), - ( - ("1.2.3", "1.3.0", "release $new_version"), - "release 1.3.0", - ), + (("1.2.3", "1.3.0", None), "bump: version 1.2.3 → 1.3.0"), + (("1.2.3", "1.3.0", "release $new_version"), "release 1.3.0"), ] diff --git a/tests/test_bump_create_tag.py b/tests/test_bump_create_tag.py index 75ce92a65..b6e06bcf5 100644 --- a/tests/test_bump_create_tag.py +++ b/tests/test_bump_create_tag.py @@ -1,5 +1,6 @@ import pytest from packaging.version import Version + from commitizen import bump conversion = [ diff --git a/tests/test_bump_find_increment.py b/tests/test_bump_find_increment.py index 2afa56f57..160457c87 100644 --- a/tests/test_bump_find_increment.py +++ b/tests/test_bump_find_increment.py @@ -21,7 +21,7 @@ "feat(cli): added version", "docs(README): motivation", "fix(setup.py): future is now required for every python version", - "BREAKING CHANGE: `extends` key in config file is now used for extending other config files", + "BREAKING CHANGE: `extends` key in config file is now used for extending other config files", # noqa ] PATCH_INCREMENTS_SVE = ["readme motivation PATCH", "fix setup.py PATCH"] diff --git a/tests/test_bump_find_version.py b/tests/test_bump_find_version.py index abda6c5f8..ca1a6b57d 100644 --- a/tests/test_bump_find_version.py +++ b/tests/test_bump_find_version.py @@ -1,8 +1,10 @@ -import pytest import itertools -from commitizen.bump import generate_version + +import pytest from packaging.version import Version +from commitizen.bump import generate_version + simple_flow = [ (("0.1.0", "PATCH", None), "0.1.1"), (("0.1.1", "MINOR", None), "0.2.0"), diff --git a/tests/test_bump_update_version_in_files.py b/tests/test_bump_update_version_in_files.py index 941f3cf19..e94c5544c 100644 --- a/tests/test_bump_update_version_in_files.py +++ b/tests/test_bump_update_version_in_files.py @@ -1,5 +1,7 @@ import os + import pytest + from commitizen import bump PYPROJECT = """ diff --git a/tests/test_cli.py b/tests/test_cli.py index 03e7c4e51..601311b60 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -1,5 +1,7 @@ import sys + import pytest + from commitizen import cli diff --git a/tests/test_commands.py b/tests/test_commands.py index bc3c1041c..3dda7202f 100644 --- a/tests/test_commands.py +++ b/tests/test_commands.py @@ -1,8 +1,9 @@ import os -import pytest from unittest import mock -from commitizen import defaults, commands, cmd +import pytest + +from commitizen import cmd, commands, defaults config = {"name": defaults.name} diff --git a/tests/test_conf.py b/tests/test_conf.py index 58c067124..2544bd5c2 100644 --- a/tests/test_conf.py +++ b/tests/test_conf.py @@ -1,7 +1,8 @@ import os + import pytest -from commitizen import config, defaults +from commitizen import config, defaults PYPROJECT = """ [tool.commitizen] @@ -41,7 +42,7 @@ "tag_format": None, "bump_message": None, "files": ["commitizen/__version__.py", "pyproject.toml"], - "style": [["pointer", "reverse"], ["question", "underline"]] + "style": [["pointer", "reverse"], ["question", "underline"]], } _new_config = { @@ -50,14 +51,14 @@ "tag_format": None, "bump_message": None, "files": ["commitizen/__version__.py", "pyproject.toml"], - "style": [["pointer", "reverse"], ["question", "underline"]] + "style": [["pointer", "reverse"], ["question", "underline"]], } _read_conf = { "name": "cz_jira", "version": "1.0.0", "files": ["commitizen/__version__.py", "pyproject.toml"], - "style": [["pointer", "reverse"], ["question", "underline"]] + "style": [["pointer", "reverse"], ["question", "underline"]], } diff --git a/tests/test_cz_base.py b/tests/test_cz_base.py index 7aab7a6a5..e4b48d50a 100644 --- a/tests/test_cz_base.py +++ b/tests/test_cz_base.py @@ -1,4 +1,5 @@ import pytest + from commitizen import defaults from commitizen.cz.base import BaseCommitizen diff --git a/tests/test_cz_conventional_commits.py b/tests/test_cz_conventional_commits.py index 210102afe..0f6be2d62 100644 --- a/tests/test_cz_conventional_commits.py +++ b/tests/test_cz_conventional_commits.py @@ -1,10 +1,11 @@ import pytest + from commitizen import defaults from commitizen.cz.conventional_commits.conventional_commits import ( + ConventionalCommitsCz, + NoSubjectException, parse_scope, parse_subject, - NoSubjectException, - ConventionalCommitsCz, ) config = {"name": defaults.name} @@ -82,7 +83,7 @@ def test_long_answer(): message = conventional_commits.message(answers) assert ( message - == "fix(users): email pattern corrected\n\nBREAKING CHANGE: complete content\n\ncloses #24" + == "fix(users): email pattern corrected\n\nBREAKING CHANGE: complete content\n\ncloses #24" # noqa ) diff --git a/tests/test_cz_jira.py b/tests/test_cz_jira.py index 8c6a1f08b..1092df56c 100644 --- a/tests/test_cz_jira.py +++ b/tests/test_cz_jira.py @@ -1,6 +1,5 @@ -from commitizen.cz.jira import JiraSmartCz from commitizen import defaults - +from commitizen.cz.jira import JiraSmartCz config = {"name": defaults.name} diff --git a/tests/test_factory.py b/tests/test_factory.py index 5a900c7d3..2ec7b1936 100644 --- a/tests/test_factory.py +++ b/tests/test_factory.py @@ -1,5 +1,6 @@ import pytest -from commitizen import factory, defaults, BaseCommitizen + +from commitizen import BaseCommitizen, defaults, factory def test_factory():