diff --git a/.coveragerc b/.coveragerc index 8d8e49e2..bb3aaa6f 100644 --- a/.coveragerc +++ b/.coveragerc @@ -1,6 +1,7 @@ [run] source = . branch = true +parallel = 1 [report] show_missing = true diff --git a/.scrutinizer.yml b/.scrutinizer.yml deleted file mode 100644 index ab17321e..00000000 --- a/.scrutinizer.yml +++ /dev/null @@ -1,134 +0,0 @@ -checks: - python: - imports_relative_import: true - imports_wildcard_import: true - classes_no_self_argument: true - classes_bad_mcs_method_argument: true - classes_bad_classmethod_argument: true - code_rating: true - duplicate_code: true - variables_unused_variable: true - variables_unused_import: true - variables_unused_wildcard_import: true - variables_unused_argument: true - variables_global_variable_not_assigned: true - typecheck_redundant_keyword_arg: true - imports_import_self: true - format_superfluous_parens: true - exceptions_pointless_except: true - design_interface_not_implemented: true - design_abstract_class_not_used: true - basic_useless_else_on_loop: true - basic_unreachable: true - basic_unnecessary_pass: true - basic_unnecessary_lambda: true - basic_pointless_string_statement: true - basic_pointless_statement: true - basic_expression_not_assigned: true - variables_redefined_outer_name: true - variables_redefined_builtin: true - variables_redefine_in_handler: true - newstyle_bad_super_call: true - logging_not_lazy: true - exceptions_broad_except: true - exceptions_bare_except: true - classes_super_init_not_called: true - classes_protected_access: true - classes_non_parent_init_called: true - classes_bad_mcs_classmethod_argument: true - classes_attribute_defined_outside_init: true - classes_method_hidden: true - basic_lost_exception: true - basic_function_redefined: true - basic_exec_used: true - basic_eval_used: true - basic_dangerous_default_value: true - design_abstract_class_little_used: true - imports_deprecated_module: true - format_old_ne_operator: true - format_backtick: true - basic_old_raise_syntax: true - variables_used_before_assignment: true - variables_unpacking_non_sequence: true - variables_undefined_variable: true - variables_undefined_loop_variable: true - variables_undefined_all_variable: true - variables_unbalanced_tuple_unpacking: true - variables_no_name_in_module: true - variables_invalid_all_object: true - variables_global_variable_undefined: true - typecheck_unexpected_keyword_arg: true - typecheck_not_callable: true - typecheck_no_value_for_parameter: true - typecheck_no_member: true - typecheck_too_many_function_args: true - typecheck_missing_kwoa: true - typecheck_maybe_no_member: true - typecheck_duplicate_keyword_arg: true - typecheck_assignment_from_none: true - typecheck_assignment_from_no_return: true - string_unused_format_string_key: true - string_truncated_format_string: true - string_too_many_format_args: true - string_too_few_format_args: true - string_mixed_format_string: true - string_missing_format_string_key: true - string_format_needs_mapping: true - string_constant_anomalous_unicode_escape_in_string: true - string_constant_anomalous_backslash_in_string: true - string_bad_str_strip_call: true - string_bad_format_string_key: true - string_bad_format_character: true - open_mode_bad_open_mode: true - logging_unsupported_format: true - logging_too_many_args: true - logging_too_few_args: true - logging_format_truncated: true - imports_reimported: true - imports_import_error: true - imports_cyclic_import: true - exceptions_raising_string: true - exceptions_raising_non_exception: true - exceptions_raising_bad_type: true - exceptions_notimplemented_raised: true - exceptions_catching_non_exception: true - exceptions_bad_except_order: true - classes_valid_slots: true - classes_signature_differs: true - classes_non_iterator_returned: true - classes_no_method_argument: true - classes_missing_interface_method: true - classes_interface_is_not_class: true - classes_bad_staticmethod_argument: true - classes_bad_context_manager: true - classes_arguments_differ: true - classes_access_member_before_definition: true - classes_abstract_method: true - basic_yield_outside_function: true - basic_return_outside_function: true - basic_return_in_init: true - basic_return_arg_in_generator: true - basic_not_in_loop: true - basic_nonexistent_operator: true - basic_missing_reversed_argument: true - basic_missing_module_attribute: true - basic_init_is_generator: true - basic_duplicate_key: true - basic_duplicate_argument_name: true - basic_bad_reversed_sequence: true - basic_assert_on_tuple: true - basic_abstract_class_instantiated: true - format_lowercase_l_suffix: true - classes_no_self_use: true - classes_no_init: true - exceptions_binary_op_exception: true - variables_global_statement: true - -filter: - excluded_paths: - - test/* - -tools: - external_code_coverage: - timeout: 1200 - runs: 6 diff --git a/.travis.yml b/.travis.yml index 5a539f37..355c0ed1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ dist: xenial language: python env: global: - - PYTEST_ADDOPTS=-vv + - PYTEST_ADDOPTS="-vv --cov-append" matrix: - CI_TARGET=tests matrix: @@ -11,19 +11,17 @@ matrix: dist: trusty sudo: false - python: 3.6 - env: CI_TARGET=checkqa TOXENV=checkqa + env: CI_TARGET=checkqa TOXENV=checkqa,docs python: - # If the build matrix gets bigger, also update the number of runs - # at the bottom of .scrutinizer.yml. - 2.7 - 3.4 - 3.5 - 3.6 - 3.7 -before_install: +install: - if [ $CI_TARGET = tests ]; then eval "$(curl -Ss https://raw.githubusercontent.com/neovim/bot-ci/master/scripts/travis-setup.sh) nightly-x64"; - pip install -q scrutinizer-ocular tox-travis; + pip install -q tox-travis; else pip install -q tox; fi @@ -31,8 +29,10 @@ script: - tox after_script: - if [ $CI_TARGET = tests ]; then + set -x; + coverage combine; coverage report -m; coverage xml; bash <(curl --retry 5 --silent --fail https://codecov.io/bash) -f coverage.xml; - ocular; + set +x; fi diff --git a/README.md b/README.md index 7e3605ab..44e9e6fa 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,7 @@ [![Build Status](https://travis-ci.org/neovim/pynvim.svg?branch=master)](https://travis-ci.org/neovim/pynvim) [![Documentation Status](https://readthedocs.org/projects/pynvim/badge/?version=latest)](http://pynvim.readthedocs.io/en/latest/?badge=latest) -[![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/neovim/pynvim/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/neovim/pynvim/?branch=master) -[![Code Coverage](https://scrutinizer-ci.com/g/neovim/pynvim/badges/coverage.png?b=master)](https://scrutinizer-ci.com/g/neovim/pynvim/?branch=master) +[![Code coverage](https://codecov.io/gh/neovim/pynvim/branch/master/graph/badge.svg)](https://codecov.io/gh/neovim/pynvim) Pynvim implements support for python plugins in Nvim. It also works as a library for connecting to and scripting Nvim processes through its msgpack-rpc API. diff --git a/tox.ini b/tox.ini index a03f2144..6c023736 100644 --- a/tox.ini +++ b/tox.ini @@ -1,7 +1,6 @@ [tox] envlist = py{27,34,35,36,37,38}-{asyncio,pyuv}-cov,pypy-cov - py36-docs checkqa [testenv] @@ -11,10 +10,9 @@ deps = cov: pytest-cov pyuv: pyuv setenv = - cov: PYTEST_ADDOPTS=--cov=. --cov-append {env:PYTEST_ADDOPTS:} + cov: PYTEST_ADDOPTS=--cov=. {env:PYTEST_ADDOPTS:} passenv = PYTEST_ADDOPTS commands = - cov: coverage erase python -m pytest {posargs} [testenv:checkqa]