diff options
author | Ned Batchelder <ned@nedbatchelder.com> | 2017-06-07 14:53:51 -0400 |
---|---|---|
committer | Ned Batchelder <ned@nedbatchelder.com> | 2017-06-07 14:53:51 -0400 |
commit | 7790682780a770815e87a34f3f3a96874bd692af (patch) | |
tree | ad0d54f8c5eed1cf8843a5781db849f80944a365 /tests/test_api.py | |
parent | 004138eb995af395e871b002e6cd569211c63ceb (diff) | |
download | python-coveragepy-git-7790682780a770815e87a34f3f3a96874bd692af.tar.gz |
Add a failing skipped test for #581
Diffstat (limited to 'tests/test_api.py')
-rw-r--r-- | tests/test_api.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/test_api.py b/tests/test_api.py index 3a06da36..1323bc3c 100644 --- a/tests/test_api.py +++ b/tests/test_api.py @@ -9,6 +9,8 @@ import sys import textwrap import warnings +import pytest + import coverage from coverage import env from coverage.backward import StringIO, import_local_file @@ -444,6 +446,44 @@ class ApiTest(CoverageTest): self.assertNotIn("module-not-imported", err) self.assertNotIn("no-data-collected", err) + @pytest.mark.expensive + def test_bug_581(self): + self.skipTest("This test proves a failure, but we don't have a fix yet") + # Test for https://bitbucket.org/ned/coveragepy/issues/581/44b1-44-breaking-in-ci + # 1000 files to import + for i in range(1000): + self.make_file("m{0:03d}.py".format(i), "a = 1") + self.make_file("chaos.py", """\ + import importlib + import random + import threading + + import coverage + + cov = None + run = True + + def random_load(): + while run: + candidate = "m{:03d}".format(random.randint(0, 999)) + mod = importlib.import_module(candidate) + + cov = coverage.Coverage() + cov.start() + + for n in range(20): + threading.Thread(target=random_load).start() + + cov.stop() + try: + cov.save() + print("Saved OK") + finally: + run = False + """) + out = self.run_command("python chaos.py") + self.assertEqual(out, "Saved OK\n") + class NamespaceModuleTest(UsingModulesMixin, CoverageTest): """Test PEP-420 namespace modules.""" |