from unittest import skip from cqlengine.tests.base import BaseCassEngTestCase from cqlengine.management import create_table from cqlengine.management import delete_table from cqlengine.models import Model from cqlengine import columns class TestModel(Model): count = columns.Integer() text = columns.Text(required=False) class TestModelIO(BaseCassEngTestCase): @classmethod def setUpClass(cls): super(TestModelIO, cls).setUpClass() create_table(TestModel) @classmethod def tearDownClass(cls): super(TestModelIO, cls).tearDownClass() delete_table(TestModel) def test_model_save_and_load(self): """ Tests that models can be saved and retrieved """ tm = TestModel.create(count=8, text='123456789') tm2 = TestModel.objects(id=tm.pk).first() for cname in tm._columns.keys(): self.assertEquals(getattr(tm, cname), getattr(tm2, cname)) def test_model_updating_works_properly(self): """ Tests that subsequent saves after initial model creation work """ tm = TestModel.objects.create(count=8, text='123456789') tm.count = 100 tm.save() tm2 = TestModel.objects(id=tm.pk).first() self.assertEquals(tm.count, tm2.count) def test_model_deleting_works_properly(self): """ Tests that an instance's delete method deletes the instance """ tm = TestModel.create(count=8, text='123456789') tm.delete() tm2 = TestModel.objects(id=tm.pk).first() self.assertIsNone(tm2) def test_column_deleting_works_properly(self): """ """ tm = TestModel.create(count=8, text='123456789') tm.text = None tm.save() tm2 = TestModel.objects(id=tm.pk).first() assert tm2.text is None assert tm2._values['text'].initial_value is None