def test_can_create_same_udt_different_keyspaces(self): class User(UserType): age = columns.Integer() name = columns.Text() sync_type(self.conn, User) create_keyspace_simple(self.conn, "simplex", 1) sync_type(self.conn, User) drop_keyspace(self.conn, "simplex")
def test_can_create_udts(self): class User(UserType): age = columns.Integer() name = columns.Text() sync_type(self.conn, User) user = User(age=42, name="John") self.assertEqual(42, user.age) self.assertEqual("John", user.name) # Add a field class User(UserType): age = columns.Integer() name = columns.Text() gender = columns.Text() sync_type(self.conn, User) user = User(age=42, name="John", gender="male") self.assertEqual(42, user.age) self.assertEqual("John", user.name) self.assertEqual("male", user.gender) # Remove a field class User(UserType): age = columns.Integer() name = columns.Text() sync_type(self.conn, User) user = User(age=42, name="John", gender="male") with self.assertRaises(AttributeError): user.gender
def test_sync_warnings(self): """ Test to insure when inconsistent changes are made to a table, or type as part of a sync call that the proper logging messages are surfaced @since 3.2 @jira_ticket PYTHON-260 @expected_result warnings are logged @test_category object_mapper """ mock_handler = MockLoggingHandler() logger = logging.getLogger(management.__name__) logger.addHandler(mock_handler) sync_table(self.conn, BaseInconsistent) sync_table(self.conn, ChangedInconsistent) self.assertTrue('differing from the model type' in mock_handler.messages.get('warning')[0]) if CASSANDRA_VERSION >= '2.1': sync_type(self.conn, BaseInconsistentType) mock_handler.reset() sync_type(self.conn, ChangedInconsistentType) self.assertTrue('differing from the model user type' in mock_handler.messages.get('warning')[0]) logger.removeHandler(mock_handler)