Skip to content

Commit a5de3ba

Browse files
committed
chore: drop coverage 4.0.x support
1 parent d931042 commit a5de3ba

File tree

6 files changed

+23
-56
lines changed

6 files changed

+23
-56
lines changed

coveralls/api.py

+1-5
Original file line numberDiff line numberDiff line change
@@ -268,11 +268,7 @@ def get_coverage(self):
268268
config_file = self.config.get('config_file', True)
269269
workman = coverage.coverage(config_file=config_file)
270270
workman.load()
271-
272-
if hasattr(workman, '_harvest_data'):
273-
workman._harvest_data() # pylint: disable=W0212
274-
else:
275-
workman.get_data()
271+
workman.get_data()
276272

277273
return CoverallReporter(workman, workman.config).coverage
278274

coveralls/git.py

+1-4
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,7 @@ def run_command(*args):
1818
'command return code {}, STDOUT: "{}"\nSTDERR: "{}"'.format(
1919
cmd.returncode, stdout, stderr))
2020

21-
try:
22-
return stdout.decode().strip()
23-
except UnicodeDecodeError:
24-
return stdout.decode('utf-8').strip()
21+
return stdout.decode().strip()
2522

2623

2724
def gitlog(fmt):

coveralls/reporter.py

+7-44
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,6 @@
55
from coverage.misc import NoSource
66
from coverage.misc import NotPython
77

8-
from .exception import CoverallsException
9-
108

119
log = logging.getLogger('coveralls.reporter')
1210

@@ -112,19 +110,7 @@ def report(self, cov, conf, morfs=None):
112110
except ImportError: # coverage >= 5.0
113111
return self.report5(cov)
114112

115-
units = None
116-
if hasattr(self.reporter, 'find_code_units'):
117-
self.reporter.find_code_units(morfs)
118-
else:
119-
units = self.reporter.find_file_reporters(morfs)
120-
121-
if units is None:
122-
if hasattr(self.reporter, 'code_units'):
123-
units = self.reporter.code_units
124-
else:
125-
units = self.reporter.file_reporters
126-
127-
for cu in units:
113+
for cu in self.reporter.find_file_reporters(morfs):
128114
try:
129115
_fn = self.reporter.coverage._analyze # pylint: disable=W0212
130116
analyzed = _fn(cu)
@@ -138,17 +124,6 @@ def report(self, cov, conf, morfs=None):
138124
if (cu.should_be_python()
139125
and not self.reporter.config.ignore_errors):
140126
log.warning('Source file is not python %s', cu.filename)
141-
except KeyError:
142-
version = [int(x) for x in __version__.split('.')]
143-
cov40 = version[0] == 4 and version[1] < 1
144-
if cov40:
145-
raise CoverallsException(
146-
'Old (<4.1) versions of coverage.py do not work '
147-
'consistently on new versions of Python. Please '
148-
'upgrade your coverage.py.'
149-
)
150-
151-
raise
152127

153128
return self.coverage
154129

@@ -207,27 +182,15 @@ def get_arcs(analysis):
207182

208183
def parse_file(self, cu, analysis):
209184
"""Generate data for single file."""
210-
if hasattr(analysis, 'parser'):
211-
filename = cu.file_locator.relative_filename(cu.filename)
212-
source_lines = analysis.parser.lines
213-
with cu.source_file() as source_file:
214-
source = source_file.read()
215-
else:
216-
if hasattr(cu, 'relative_filename'):
217-
filename = cu.relative_filename()
218-
else:
219-
filename = analysis.coverage.file_locator.relative_filename(
220-
cu.filename)
185+
filename = cu.relative_filename()
186+
# ensure results are properly merged between platforms
187+
posix_filename = filename.replace(os.path.sep, '/')
221188

222-
token_lines = analysis.file_reporter.source_token_lines()
223-
source_lines = list(enumerate(token_lines))
224-
source = analysis.file_reporter.source()
189+
source = analysis.file_reporter.source()
225190

191+
token_lines = analysis.file_reporter.source_token_lines()
226192
coverage_lines = [self.get_hits(i, analysis)
227-
for i in range(1, len(source_lines) + 1)]
228-
229-
# ensure results are properly merged between platforms
230-
posix_filename = filename.replace(os.path.sep, '/')
193+
for i, _ in enumerate(token_lines, 1)]
231194

232195
results = {
233196
'name': posix_filename,

setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
],
3434
},
3535
install_requires=[
36-
'coverage>=4.0,<6.0',
36+
'coverage>=4.1,<6.0',
3737
'docopt>=0.6.1',
3838
'requests>=1.0.0',
3939
],

tests/conftest.py

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import os
2+
3+
import pytest
4+
5+
6+
@pytest.fixture(scope='session', autouse=True)
7+
def nuke_coverage():
8+
for folder in ('.', './example', './nonunicode'):
9+
try:
10+
os.remove('{}/.coverage'.format(folder))
11+
except FileNotFoundError:
12+
pass

tox.ini

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[tox]
2-
envlist = py{34,35}-cov{4,41}-{default,pyyaml},py{36,37,38,py3}-cov{41,5}-{default,pyyaml}
2+
envlist = py{34,35}-cov{41}-{default,pyyaml},py{36,37,38,py3}-cov{41,5}-{default,pyyaml}
33

44
[gh-actions]
55
python =
@@ -15,7 +15,6 @@ deps =
1515
mock
1616
pytest
1717
pyyaml: PyYAML>=3.10,<5.3
18-
cov4: coverage>=4.0,<4.1
1918
cov41: coverage>=4.1,<5.0
2019
cov5: coverage>=5.0,<6.0
2120
commands =

0 commit comments

Comments
 (0)