summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2018-08-14 20:39:31 -0400
committerNed Batchelder <ned@nedbatchelder.com>2018-08-24 06:54:17 -0400
commit9b13a1a7d44d991c4c5dd51d5624f5abe84b77f8 (patch)
treebf0b853e137880342e939fc7e4d4d07688bc4d68
parent067d0a60384b5f12cfee622381cfb5905efb8e13 (diff)
downloadpython-coveragepy-git-9b13a1a7d44d991c4c5dd51d5624f5abe84b77f8.tar.gz
Skip some tests for SQL for now
-rw-r--r--coverage/sqldata.py3
-rw-r--r--tests/coveragetest.py6
-rw-r--r--tests/test_data.py6
-rw-r--r--tests/test_process.py4
4 files changed, 17 insertions, 2 deletions
diff --git a/coverage/sqldata.py b/coverage/sqldata.py
index f36a9385..c79ad175 100644
--- a/coverage/sqldata.py
+++ b/coverage/sqldata.py
@@ -3,9 +3,12 @@
"""Sqlite coverage data."""
+# TODO: get rid of skip_unless_data_storage_is_json
# TODO: check the schema
# TODO: factor out dataop debugging to a wrapper class?
# TODO: make sure all dataop debugging is in place somehow
+# TODO: should writes be batched?
+# TODO: settle the os.fork question
import glob
import os
diff --git a/tests/coveragetest.py b/tests/coveragetest.py
index 9814d648..cd6bb9fc 100644
--- a/tests/coveragetest.py
+++ b/tests/coveragetest.py
@@ -24,6 +24,7 @@ from coverage import env
from coverage.backunittest import TestCase, unittest
from coverage.backward import StringIO, import_local_file, string_class, shlex_quote
from coverage.cmdline import CoverageScript
+from coverage.data import STORAGE
from coverage.misc import StopEverything
from tests.helpers import run_command, SuperModuleCleaner
@@ -90,6 +91,11 @@ class CoverageTest(
self.last_command_output = None
self.last_module_name = None
+ def skip_unless_data_storage_is_json(self):
+ if STORAGE != "json":
+ self.skipTest("Not using JSON for data storage")
+
+
def clean_local_file_imports(self):
"""Clean up the results of calls to `import_local_file`.
diff --git a/tests/test_data.py b/tests/test_data.py
index ad4dc84a..876357eb 100644
--- a/tests/test_data.py
+++ b/tests/test_data.py
@@ -187,6 +187,7 @@ class CoverageDataTest(DataTestHelpers, CoverageTest):
self.assertIsNone(covdata.lines('no_such_file.py'))
def test_run_info(self):
+ self.skip_unless_data_storage_is_json()
covdata = CoverageData()
self.assertEqual(covdata.run_infos(), [])
covdata.add_run_info(hello="there")
@@ -265,6 +266,7 @@ class CoverageDataTest(DataTestHelpers, CoverageTest):
self.assertEqual(covdata3.run_infos(), [])
def test_update_run_info(self):
+ self.skip_unless_data_storage_is_json()
covdata1 = CoverageData()
covdata1.add_arcs(ARCS_3)
covdata1.add_run_info(hello="there", count=17)
@@ -478,6 +480,7 @@ class CoverageDataTestInTempDir(DataTestHelpers, CoverageTest):
self.assertFalse(covdata)
def test_debug_main(self):
+ self.skip_unless_data_storage_is_json()
covdata1 = CoverageData(".coverage")
covdata1.add_lines(LINES_1)
covdata1.write()
@@ -648,8 +651,7 @@ class CoverageDataFilesTest(DataTestHelpers, CoverageTest):
def read_json_data_file(self, fname):
"""Read a JSON data file for testing the JSON directly."""
- if STORAGE != "json":
- self.skipTest("Not using JSON for data storage")
+ self.skip_unless_data_storage_is_json()
with open(fname, 'r') as fdata:
go_away = fdata.read(len(CoverageData._GO_AWAY))
self.assertEqual(go_away, CoverageData._GO_AWAY)
diff --git a/tests/test_process.py b/tests/test_process.py
index 48083f22..7c705739 100644
--- a/tests/test_process.py
+++ b/tests/test_process.py
@@ -504,6 +504,8 @@ class ProcessTest(CoverageTest):
def test_fork(self):
if not hasattr(os, 'fork'):
self.skipTest("Can't test os.fork since it doesn't exist.")
+ # See https://nedbatchelder.com/blog/201808/sqlite_data_storage_for_coveragepy.html
+ self.skip_unless_data_storage_is_json()
self.make_file("fork.py", """\
import os
@@ -642,6 +644,8 @@ class ProcessTest(CoverageTest):
if env.PYPY and env.PY3 and env.PYPYVERSION[:3] == (5, 10, 0): # pragma: obscure
# https://bitbucket.org/pypy/pypy/issues/2729/pypy3-510-incorrectly-decodes-astral-plane
self.skipTest("Avoid incorrect decoding astral plane JSON chars")
+ self.skip_unless_data_storage_is_json()
+
self.make_file(".coveragerc", """\
[run]
data_file = mydata.dat