diff --git a/tests/integration/cqlengine/columns/test_validation.py b/tests/integration/cqlengine/columns/test_validation.py index 8c2f54b0..1f6fa425 100644 --- a/tests/integration/cqlengine/columns/test_validation.py +++ b/tests/integration/cqlengine/columns/test_validation.py @@ -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 diff --git a/tests/integration/cqlengine/model/test_model_io.py b/tests/integration/cqlengine/model/test_model_io.py index c7e16113..e2776e29 100644 --- a/tests/integration/cqlengine/model/test_model_io.py +++ b/tests/integration/cqlengine/model/test_model_io.py @@ -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()