PYTHON-543 Forced cython validation
This commit is contained in:
@@ -27,8 +27,9 @@ build:
|
|||||||
fi
|
fi
|
||||||
pip install -r test-requirements.txt
|
pip install -r test-requirements.txt
|
||||||
pip install nose-ignore-docstring
|
pip install nose-ignore-docstring
|
||||||
|
FORCE_CYTHON=False
|
||||||
if [[ $CYTHON == 'CYTHON' ]]; then
|
if [[ $CYTHON == 'CYTHON' ]]; then
|
||||||
|
FORCE_CYTHON=True
|
||||||
pip install cython
|
pip install cython
|
||||||
pip install numpy
|
pip install numpy
|
||||||
# Install the driver & compile C extensions
|
# Install the driver & compile C extensions
|
||||||
@@ -39,12 +40,12 @@ build:
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo "==========RUNNING CQLENGINE TESTS=========="
|
echo "==========RUNNING CQLENGINE TESTS=========="
|
||||||
CASSANDRA_VERSION=$CCM_CASSANDRA_VERSION nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --with-ignore-docstrings --with-xunit --xunit-file=cqle_results.xml tests/integration/cqlengine/ || true
|
CASSANDRA_VERSION=$CCM_CASSANDRA_VERSION VERIFY_CYTHON=$FORCE_CYTHON nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --with-ignore-docstrings --with-xunit --xunit-file=cqle_results.xml tests/integration/cqlengine/ || true
|
||||||
|
|
||||||
echo "==========RUNNING INTEGRATION TESTS=========="
|
echo "==========RUNNING INTEGRATION TESTS=========="
|
||||||
CASSANDRA_VERSION=$CCM_CASSANDRA_VERSION nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --with-ignore-docstrings --with-xunit --xunit-file=standard_results.xml tests/integration/standard/ || true
|
CASSANDRA_VERSION=$CCM_CASSANDRA_VERSION VERIFY_CYTHON=$FORCE_CYTHON nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --with-ignore-docstrings --with-xunit --xunit-file=standard_results.xml tests/integration/standard/ || true
|
||||||
|
|
||||||
echo "==========RUNNING LONG INTEGRATION TESTS=========="
|
echo "==========RUNNING LONG INTEGRATION TESTS=========="
|
||||||
CASSANDRA_VERSION=$CCM_CASSANDRA_VERSION nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --with-ignore-docstrings --with-xunit --xunit-file=long_results.xml tests/integration/long/ || true
|
CASSANDRA_VERSION=$CCM_CASSANDRA_VERSION VERIFY_CYTHON=$FORCE_CYTHON nosetests -s -v --logging-format="[%(levelname)s] %(asctime)s %(thread)d: %(message)s" --with-ignore-docstrings --with-xunit --xunit-file=long_results.xml tests/integration/long/ || true
|
||||||
- xunit:
|
- xunit:
|
||||||
- "*_results.xml"
|
- "*_results.xml"
|
||||||
|
|||||||
@@ -86,6 +86,15 @@ def _tuple_version(version_string):
|
|||||||
|
|
||||||
USE_CASS_EXTERNAL = bool(os.getenv('USE_CASS_EXTERNAL', False))
|
USE_CASS_EXTERNAL = bool(os.getenv('USE_CASS_EXTERNAL', False))
|
||||||
|
|
||||||
|
# If set to to true this will force the Cython tests to run regardless of whether they are installed
|
||||||
|
cython_env = os.getenv('VERIFY_CYTHON', "False")
|
||||||
|
|
||||||
|
|
||||||
|
VERIFY_CYTHON = False
|
||||||
|
|
||||||
|
if(cython_env == 'True'):
|
||||||
|
VERIFY_CYTHON = True
|
||||||
|
|
||||||
default_cassandra_version = '2.2.0'
|
default_cassandra_version = '2.2.0'
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ except ImportError:
|
|||||||
from cassandra.query import tuple_factory
|
from cassandra.query import tuple_factory
|
||||||
from cassandra.cluster import Cluster
|
from cassandra.cluster import Cluster
|
||||||
from cassandra.protocol import ProtocolHandler, LazyProtocolHandler, NumpyProtocolHandler
|
from cassandra.protocol import ProtocolHandler, LazyProtocolHandler, NumpyProtocolHandler
|
||||||
|
from cassandra.cython_deps import HAVE_CYTHON, HAVE_NUMPY
|
||||||
from tests.integration import use_singledc, PROTOCOL_VERSION, notprotocolv1, drop_keyspace_shutdown_cluster
|
from tests.integration import use_singledc, PROTOCOL_VERSION, notprotocolv1, drop_keyspace_shutdown_cluster, VERIFY_CYTHON
|
||||||
from tests.integration.datatype_utils import update_datatypes
|
from tests.integration.datatype_utils import update_datatypes
|
||||||
from tests.integration.standard.utils import (
|
from tests.integration.standard.utils import (
|
||||||
create_table_with_all_types, get_all_primitive_params, get_primitive_datatypes)
|
create_table_with_all_types, get_all_primitive_params, get_primitive_datatypes)
|
||||||
@@ -123,6 +123,20 @@ class CythonProtocolHandlerTest(unittest.TestCase):
|
|||||||
|
|
||||||
cluster.shutdown()
|
cluster.shutdown()
|
||||||
|
|
||||||
|
@numpytest
|
||||||
|
def test_cython_numpy_are_installed_valid(self):
|
||||||
|
"""
|
||||||
|
Test to validate that cython and numpy are installed correctly
|
||||||
|
@since 3.3.0
|
||||||
|
@jira_ticket PYTHON-543
|
||||||
|
@expected_result Cython and Numpy should be present
|
||||||
|
|
||||||
|
@test_category configuration
|
||||||
|
"""
|
||||||
|
if VERIFY_CYTHON:
|
||||||
|
self.assertTrue(HAVE_CYTHON)
|
||||||
|
self.assertTrue(HAVE_NUMPY)
|
||||||
|
|
||||||
def _verify_numpy_page(self, page):
|
def _verify_numpy_page(self, page):
|
||||||
colnames = self.colnames
|
colnames = self.colnames
|
||||||
datatypes = get_primitive_datatypes()
|
datatypes = get_primitive_datatypes()
|
||||||
|
|||||||
@@ -13,6 +13,7 @@
|
|||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
from cassandra.cython_deps import HAVE_CYTHON, HAVE_NUMPY
|
from cassandra.cython_deps import HAVE_CYTHON, HAVE_NUMPY
|
||||||
|
from tests.integration import VERIFY_CYTHON
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import unittest2 as unittest
|
import unittest2 as unittest
|
||||||
@@ -34,6 +35,6 @@ def cyimport(import_path):
|
|||||||
|
|
||||||
# @cythontest
|
# @cythontest
|
||||||
# def test_something(self): ...
|
# def test_something(self): ...
|
||||||
cythontest = unittest.skipUnless(HAVE_CYTHON, 'Cython is not available')
|
cythontest = unittest.skipUnless((HAVE_CYTHON or VERIFY_CYTHON) or VERIFY_CYTHON, 'Cython is not available')
|
||||||
notcython = unittest.skipIf(HAVE_CYTHON, 'Cython not supported')
|
notcython = unittest.skipIf(HAVE_CYTHON, 'Cython not supported')
|
||||||
numpytest = unittest.skipUnless(HAVE_CYTHON and HAVE_NUMPY, 'NumPy is not available')
|
numpytest = unittest.skipUnless((HAVE_CYTHON and HAVE_NUMPY) or VERIFY_CYTHON, 'NumPy is not available')
|
||||||
|
|||||||
Reference in New Issue
Block a user