Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- diff --git a/plugin/setup.py b/plugin/setup.py
- --- a/plugin/setup.py
- +++ b/plugin/setup.py
- @@ -15,7 +15,7 @@
- setup(
- name='pytest_divide_and_cover',
- - version='0.1.6',
- + version='0.2.0',
- description='Picky test coverage for pytest',
- long_description=LONG_DESCRIPTION,
- diff --git a/plugin/src/pytest_divide_and_cover.py b/plugin/src/pytest_divide_and_cover.py
- --- a/plugin/src/pytest_divide_and_cover.py
- +++ b/plugin/src/pytest_divide_and_cover.py
- @@ -60,21 +60,11 @@
- paths.append(module_path_)
- module_paths.append(module_path_)
- coverage_script.new_coverage(test_path, module_paths)
- - # This next bit needs to be run under a coverage tracer, with source
- - # based on paths. Specifically, it should use the root package from
- - # each path
- - roots = sorted({path.split('.', 1)[0] for path in paths})
- - coverage_script.make_import_coverage(roots)
- - print('Covering packages under: {}'.format(roots))
- - coverage_script.switch_coverage(coverage_script.import_coverage)
- - try:
- - for path in paths:
- - try:
- - importlib.import_module(path)
- - except ImportError:
- - print('Could not import {}'.format(path))
- - finally:
- - coverage_script.deactivate_coverage()
- + for path in paths:
- + try:
- + importlib.import_module(path)
- + except ImportError:
- + print('Could not import {}'.format(path))
- def pytest_runtest_setup(item):
- diff --git a/runner/setup.py b/runner/setup.py
- --- a/runner/setup.py
- +++ b/runner/setup.py
- @@ -15,7 +15,7 @@
- setup(
- name='divide_and_cover',
- - version='0.1.3',
- + version='0.2.0',
- description='Picky test coverage runner',
- long_description=LONG_DESCRIPTION,
- diff --git a/runner/src/divide_and_cover/coverage_handler.py b/runner/src/divide_and_cover/coverage_handler.py
- --- a/runner/src/divide_and_cover/coverage_handler.py
- +++ b/runner/src/divide_and_cover/coverage_handler.py
- @@ -1,8 +1,24 @@
- +import os
- +import re
- import sys
- from coverage import cmdline
- +PYTHON_FILE = re.compile(r'(.*)\.py')
- +
- +
- +def get_module_names_under(path):
- + for entry in os.listdir(path):
- + if os.path.isdir(os.path.join(path, entry)):
- + if os.path.exists(os.path.join(path, entry, '__init__.py')):
- + yield entry
- + else:
- + match = PYTHON_FILE.fullmatch(entry)
- + if match:
- + yield entry.group(1)
- +
- +
- def insert_unique(lst, item):
- if item not in lst:
- lst.append(item)
- @@ -207,6 +223,11 @@
- self.coverage.erase()
- self.coverage.start()
- + if os.path.isdir('src'):
- + roots = sorted(set(get_module_names_under('src')))
- + self.make_import_coverage(roots)
- + print('Covering packages under: {}'.format(roots))
- + self.switch_coverage(self.import_coverage)
- self.code_ran = True
- try:
- if options.module:
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement