def setup_package(): # for testing warnings, make sure all are let through warnings.simplefilter('always') os.environ[CQLENG_ALLOW_SCHEMA_MANAGEMENT] = '1' conn = get_connection(keyspace_name=None) create_keyspace_simple(conn, DEFAULT_KEYSPACE, 1)
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_keywords_as_names(self): """ Test for CQL keywords as names test_keywords_as_names tests that CQL keywords are properly and automatically quoted in cqlengine. It creates a keyspace, keyspace, which should be automatically quoted to "keyspace" in CQL. It then creates a table, table, which should also be automatically quoted to "table". It then verfies that operations can be done on the "keyspace"."table" which has been created. It also verifies that table alternations work and operations can be performed on the altered table. @since 2.6.0 @jira_ticket PYTHON-244 @expected_result Cqlengine should quote CQL keywords properly when creating keyspaces and tables. @test_category schema:generation """ # If the keyspace exists, it will not be re-created create_keyspace_simple(self.conn, "keyspace", 1) k_conn = self.connection("keyspace") class table(Model): select = columns.Integer(primary_key=True) table = columns.Text() # In case the table already exists in keyspace drop_table(k_conn, table) # Create should work sync_table(k_conn, table) created = table.create(k_conn, select=0, table="table") selected = table.objects(select=0).first(k_conn) self.assertEqual(created.select, selected.select) self.assertEqual(created.table, selected.table) # Alter should work class table(Model): select = columns.Integer(primary_key=True) table = columns.Text() where = columns.Text() sync_table(k_conn, table) created = table.create(k_conn, select=1, table="table") selected = table.objects(select=1).first(k_conn) self.assertEqual(created.select, selected.select) self.assertEqual(created.table, selected.table) self.assertEqual(created.where, selected.where) drop_keyspace(self.conn, "keyspace") del k_conn
def test_create_drop_succeeeds(self): cluster = self.conn.cluster keyspace_ss = "test_ks_ss" self.assertNotIn(keyspace_ss, cluster.metadata.keyspaces) management.create_keyspace_simple(self.conn, keyspace_ss, 2) self.assertIn(keyspace_ss, cluster.metadata.keyspaces) management.drop_keyspace(self.conn, keyspace_ss) self.assertNotIn(keyspace_ss, cluster.metadata.keyspaces) keyspace_nts = "test_ks_nts" self.assertNotIn(keyspace_nts, cluster.metadata.keyspaces) management.create_keyspace_network_topology(self.conn, keyspace_nts, {"dc1": 1}) self.assertIn(keyspace_nts, cluster.metadata.keyspaces) management.drop_keyspace(self.conn, keyspace_nts) self.assertNotIn(keyspace_nts, cluster.metadata.keyspaces)
def create_schema(app_config): """Create schema in the database. Run this with: baseplate-script example.ini {{cookiecutter.module_name}}.models.cql:create_schema """ keyspace = '{{ cookiecutter.project_slug }}' cluster = cluster_from_config(app_config) session = cluster.connect() conn = connection.Connection(session) create_keyspace_simple(conn, keyspace, 1) session = cluster.connect(keyspace) conn = connection.Connection(session) models = [ MyModel, ] for model in models: sync_table(conn, model)