Merge pull request #533 from datastax/272-test
PYTHON-272 adding simple test for token function and named_tables
This commit is contained in:
@@ -19,11 +19,13 @@ from cassandra.cqlengine import functions
|
|||||||
from cassandra.cqlengine import query
|
from cassandra.cqlengine import query
|
||||||
from cassandra.cqlengine.management import sync_table, drop_table
|
from cassandra.cqlengine.management import sync_table, drop_table
|
||||||
from cassandra.cqlengine.models import Model
|
from cassandra.cqlengine.models import Model
|
||||||
|
from cassandra.cqlengine.named import NamedTable
|
||||||
from cassandra.cqlengine.operators import EqualsOperator
|
from cassandra.cqlengine.operators import EqualsOperator
|
||||||
from cassandra.cqlengine.statements import WhereClause
|
from cassandra.cqlengine.statements import WhereClause
|
||||||
|
from tests.integration.cqlengine import DEFAULT_KEYSPACE
|
||||||
from tests.integration.cqlengine.base import BaseCassEngTestCase
|
from tests.integration.cqlengine.base import BaseCassEngTestCase
|
||||||
|
|
||||||
|
|
||||||
class TestQuerySetOperation(BaseCassEngTestCase):
|
class TestQuerySetOperation(BaseCassEngTestCase):
|
||||||
|
|
||||||
def test_maxtimeuuid_function(self):
|
def test_maxtimeuuid_function(self):
|
||||||
@@ -54,7 +56,7 @@ class TestQuerySetOperation(BaseCassEngTestCase):
|
|||||||
|
|
||||||
|
|
||||||
class TokenTestModel(Model):
|
class TokenTestModel(Model):
|
||||||
|
__table_name__ = "token_test_model"
|
||||||
key = columns.Integer(primary_key=True)
|
key = columns.Integer(primary_key=True)
|
||||||
val = columns.Integer()
|
val = columns.Integer()
|
||||||
|
|
||||||
@@ -124,3 +126,27 @@ class TestTokenFunction(BaseCassEngTestCase):
|
|||||||
# The # of arguments to Token must match the # of partition keys
|
# The # of arguments to Token must match the # of partition keys
|
||||||
func = functions.Token('a')
|
func = functions.Token('a')
|
||||||
self.assertRaises(query.QueryException, TestModel.objects.filter, pk__token__gt=func)
|
self.assertRaises(query.QueryException, TestModel.objects.filter, pk__token__gt=func)
|
||||||
|
|
||||||
|
def test_named_table_pk_token_function(self):
|
||||||
|
"""
|
||||||
|
Test to ensure that token function work with named tables.
|
||||||
|
|
||||||
|
@since 3.2
|
||||||
|
@jira_ticket PYTHON-272
|
||||||
|
@expected_result partition key token functions should all for pagination. Prior to Python-272
|
||||||
|
this would fail with an AttributeError
|
||||||
|
|
||||||
|
@test_category object_mapper
|
||||||
|
"""
|
||||||
|
|
||||||
|
for i in range(5):
|
||||||
|
TokenTestModel.create(key=i, val=i)
|
||||||
|
named = NamedTable(DEFAULT_KEYSPACE, TokenTestModel.__table_name__)
|
||||||
|
|
||||||
|
query = named.objects.all().limit(1)
|
||||||
|
first_page = list(query)
|
||||||
|
last = first_page[-1]
|
||||||
|
self.assertTrue(len(first_page) is 1)
|
||||||
|
next_page = list(query.filter(pk__token__gt=functions.Token(last.key)))
|
||||||
|
self.assertTrue(len(next_page) is 1)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user