diff --git a/devel/py-codecov/Makefile b/devel/py-codecov/Makefile
index 63e8df78a4cb..720955eb7c41 100644
--- a/devel/py-codecov/Makefile
+++ b/devel/py-codecov/Makefile
@@ -2,13 +2,12 @@
# $FreeBSD$
PORTNAME= codecov
-PORTVERSION= 2.0.15
-PORTREVISION= 1
+PORTVERSION= 2.1.10
DISTVERSIONPREFIX= v
CATEGORIES= devel python
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
-MAINTAINER= ports@FreeBSD.org
+MAINTAINER= ygy@FreeBSD.org
COMMENT= Hosted coverage reports for Github, Bitbucket and Gitlab
LICENSE= APACHE20
diff --git a/devel/py-codecov/distinfo b/devel/py-codecov/distinfo
index 6b5b800413a3..6a2083db29b7 100644
--- a/devel/py-codecov/distinfo
+++ b/devel/py-codecov/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1517521483
-SHA256 (codecov-codecov-python-v2.0.15_GH0.tar.gz) = 474700e009b4175a3614cf8678a25d591e66cea2af2c1bbe80b53faec10621f3
-SIZE (codecov-codecov-python-v2.0.15_GH0.tar.gz) = 22748
+TIMESTAMP = 1606306150
+SHA256 (codecov-codecov-python-v2.1.10_GH0.tar.gz) = 00a4d3272612363dd34eec0fa1f7d9d1ae1e95c9c7c92c60b8783400855fe16d
+SIZE (codecov-codecov-python-v2.1.10_GH0.tar.gz) = 26275
diff --git a/devel/py-codecov/files/patch-tests_test.py b/devel/py-codecov/files/patch-tests_test.py
index 733d2a233da6..99556348d1f3 100644
--- a/devel/py-codecov/files/patch-tests_test.py
+++ b/devel/py-codecov/files/patch-tests_test.py
@@ -1,39 +1,121 @@
---- tests/test.py.orig 2018-01-29 15:52:17 UTC
-+++ tests/test.py
-@@ -2,9 +2,9 @@ import os
- import sys
- import pickle
- import itertools
-+import unittest
- from ddt import ddt, data
- from mock import patch, Mock
--import unittest2 as unittest
+--- tests/test.py.orig 2020-11-25 20:02:03.000000000 +0800
++++ tests/test.py 2020-11-25 20:04:45.000000000 +0800
+@@ -231,10 +231,7 @@
+ else:
+ raise Exception("did not exit")
- import subprocess
-
-@@ -134,7 +134,7 @@ class TestUploader(unittest.TestCase):
+- @unittest.skipIf(
+- os.getenv("CI") == "True" and os.getenv("APPVEYOR") == "True",
+- "Skip AppVeyor CI test",
+- )
++ @unittest.skip("Skip tests dependent on .git directory")
+ def test_returns_none(self):
+ with patch("requests.post") as post:
+ with patch("requests.put") as put:
+@@ -251,10 +248,7 @@
self.assertEqual(codecov.main(), None)
assert post.called and put.called
-- @unittest.skipIf(os.getenv('CI') == "True" and os.getenv('APPVEYOR') == 'True', 'Skip AppVeyor CI test')
-+ @unittest.skip('Skip AppVeyor test')
+- @unittest.skipIf(
+- os.getenv("CI") == "True" and os.getenv("APPVEYOR") == "True",
+- "Skip AppVeyor CI test",
+- )
++ @unittest.skip("Skip tests dependent on .git directory")
def test_send(self):
- with patch('requests.post') as post:
- with patch('requests.put') as put:
-@@ -204,6 +204,7 @@ class TestUploader(unittest.TestCase):
+ with patch("requests.post") as post:
+ with patch("requests.put") as put:
+@@ -294,10 +288,7 @@
+ else:
+ raise Exception("400 never raised")
+
+- @unittest.skipIf(
+- os.getenv("CI") == "True" and os.getenv("APPVEYOR") == "True",
+- "Skip AppVeyor CI test",
+- )
++ @unittest.skip("Skip tests dependent on .git directory")
+ def test_read_token_file(self):
+ with open(self.token, "w+") as f:
+ f.write("a")
+@@ -306,6 +297,7 @@
+ res = self.run_cli(token="@" + self.token, commit="a", branch="b")
+ self.assertIn("token=a", res["urlargs"])
+
++ @unittest.skip("Skip tests dependent on .git directory")
+ def test_bowerrc(self):
+ with open(self.bowerrc, "w+") as f:
+ f.write('{"directory": "tests"}')
+@@ -318,6 +310,7 @@
else:
raise Exception("Did not raise AssertionError")
-+ @unittest.skip('Skip test')
++ @unittest.skip("Skip tests dependent on .git directory")
+ def test_disable_search(self):
+ self.fake_report()
+ try:
+@@ -327,10 +320,7 @@
+ else:
+ raise Exception("Did not raise AssertionError")
+
+- @unittest.skipIf(
+- os.getenv("CI") == "True" and os.getenv("APPVEYOR") == "True",
+- "Skip AppVeyor CI test",
+- )
++ @unittest.skip("Skip tests dependent on .git directory")
def test_prefix(self):
self.fake_report()
- res = self.run_cli(prefix='/foo/bar/', dump=True, token='a', branch='b', commit='c')
-@@ -254,7 +255,7 @@ class TestUploader(unittest.TestCase):
+ res = self.run_cli(
+@@ -400,10 +390,7 @@
else:
raise Exception("Did not raise AssertionError")
-- @unittest.skipIf(os.getenv('CI') == "True" and os.getenv('APPVEYOR') == 'True', 'Skip AppVeyor CI test')
-+ @unittest.skip('Skip AppVeyor test')
+- @unittest.skipIf(
+- os.getenv("CI") == "True" and os.getenv("APPVEYOR") == "True",
+- "Skip AppVeyor CI test",
+- )
++ @unittest.skip("Skip tests dependent on .git directory")
def test_bowerrc_none(self):
- with open(self.bowerrc, 'w+') as f:
+ with open(self.bowerrc, "w+") as f:
f.write('{"other_key": "tests"}')
+@@ -412,10 +399,7 @@
+ res = self.run_cli(**self.defaults)
+ self.assertIn("tests/test.py", res["reports"])
+
+- @unittest.skipIf(
+- os.getenv("CI") == "True" and os.getenv("APPVEYOR") == "True",
+- "Skip AppVeyor CI test",
+- )
++ @unittest.skip("Skip tests dependent on .git directory")
+ def test_discovers(self):
+ with open(self.jacoco, "w+") as f:
+ f.write("")
+@@ -427,6 +411,7 @@
+ self.assertIn("jacoco.xml", res["reports"])
+ self.assertIn("", res["reports"])
+
++ @unittest.skip("Skip tests dependent on .git directory")
+ def test_not_jacoco(self):
+ with open(self.filepath, "w+") as f:
+ f.write("")
+@@ -442,6 +427,7 @@
+ res = self.run_cli(**self.defaults)
+ self.assertIn('', res["reports"])
+
++ @unittest.skip("Skip tests dependent on .git directory")
+ def test_run_coverage_fails(self):
+ with open(self.coverage, "w+") as f:
+ f.write("bad data")
+@@ -452,12 +438,14 @@
+ else:
+ raise Exception("Did not raise AssertionError")
+
++ @unittest.skip("Skip tests dependent on .git directory")
+ def test_include_env(self):
+ self.set_env(HELLO="WORLD")
+ self.fake_report()
+ res = self.run_cli(env="HELLO", file=self.filepath, **self.defaults)
+ self.assertIn("HELLO=WORLD", res["reports"])
+
++ @unittest.skip("Skip tests dependent on .git directory")
+ def test_none_found(self):
+ try:
+ self.run_cli(**self.defaults)