Added tests for PYTHON-750

This commit is contained in:
bjmb
2017-05-16 15:08:54 -04:00
parent 06835c9b68
commit a16b841ef8
2 changed files with 22 additions and 5 deletions

View File

@@ -26,14 +26,14 @@ from cassandra import InvalidRequest
from cassandra.cqlengine.columns import (TimeUUID, Ascii, Text, Integer, BigInt,
VarInt, DateTime, Date, UUID, Boolean,
Decimal, Inet, Time, UserDefinedType,
Map, List, Set, Tuple, Double)
Map, List, Set, Tuple, Double, Duration)
from cassandra.cqlengine.connection import execute
from cassandra.cqlengine.management import sync_table, drop_table
from cassandra.cqlengine.models import Model, ValidationError
from cassandra.cqlengine.usertype import UserType
from cassandra import util
from tests.integration import PROTOCOL_VERSION, CASSANDRA_VERSION, greaterthanorequalcass30
from tests.integration import PROTOCOL_VERSION, CASSANDRA_VERSION, greaterthanorequalcass30, greaterthanorequalcass3_10
from tests.integration.cqlengine.base import BaseCassEngTestCase
@@ -344,6 +344,20 @@ class TestBoolean(DataType, BaseCassEngTestCase):
)
super(TestBoolean, cls).setUpClass()
@greaterthanorequalcass3_10
class TestDuration(DataType, BaseCassEngTestCase):
@classmethod
def setUpClass(cls):
cls.db_klass, cls.python_klass = (
Duration,
util.Duration
)
cls.first_value, cls.second_value, cls.third_value = (
util.Duration(0, 0, 0),
util.Duration(1, 2, 3),
util.Duration(0, 0, 0)
)
super(TestDuration, cls).setUpClass()
class User(UserType):
# We use Date and Time to ensure to_python

View File

@@ -29,11 +29,11 @@ from cassandra.cqlengine.management import sync_table
from cassandra.cqlengine.management import drop_table
from cassandra.cqlengine.models import Model
from cassandra.query import SimpleStatement
from cassandra.util import Date, Time
from cassandra.util import Date, Time, Duration
from cassandra.cqlengine.statements import SelectStatement, DeleteStatement, WhereClause
from cassandra.cqlengine.operators import EqualsOperator
from tests.integration import PROTOCOL_VERSION
from tests.integration import PROTOCOL_VERSION, greaterthanorequalcass3_10
from tests.integration.cqlengine.base import BaseCassEngTestCase
from tests.integration.cqlengine import DEFAULT_KEYSPACE
@@ -163,6 +163,7 @@ class TestModelIO(BaseCassEngTestCase):
sync_table(TestModel)
sync_table(TestModel)
@greaterthanorequalcass3_10
def test_can_insert_model_with_all_column_types(self):
"""
Test for inserting all column types into a Model
@@ -195,6 +196,7 @@ class TestModelIO(BaseCassEngTestCase):
l = columns.TimeUUID()
m = columns.UUID()
n = columns.VarInt()
o = columns.Duration()
sync_table(AllDatatypesModel)
@@ -207,7 +209,8 @@ class TestModelIO(BaseCassEngTestCase):
e=datetime.utcfromtimestamp(872835240), f=Decimal('12.3E+7'), g=2.39,
h=3.4028234663852886e+38, i='123.123.123.123', j=2147483647, k='text',
l=UUID('FE2B4360-28C6-11E2-81C1-0800200C9A66'),
m=UUID('067e6162-3b6f-4ae2-a171-2470b63dff00'), n=int(str(2147483647) + '000'))
m=UUID('067e6162-3b6f-4ae2-a171-2470b63dff00'), n=int(str(2147483647) + '000'),
o=Duration(2, 3, 4))
self.assertEqual(1, AllDatatypesModel.objects.count())
output = AllDatatypesModel.objects.first()