本文整理汇总了Python中utils.fix_indent函数的典型用法代码示例。如果您正苦于以下问题:Python fix_indent函数的具体用法?Python fix_indent怎么用?Python fix_indent使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了fix_indent函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_create_trigger2
def test_create_trigger2(self):
"Create another simple trigger with"
inmap = new_std_map()
inmap.update({"language plpgsql": {"trusted": True}})
inmap["schema public"].update(
{"function f1()": {"language": "plpgsql", "returns": "trigger", "source": FUNC_SRC}}
)
inmap["schema public"].update(
{
"table t1": {
"columns": [
{"c1": {"type": "integer"}},
{"c2": {"type": "text"}},
{"c3": {"type": "timestamp with time zone"}},
],
"triggers": {"tr1": {"timing": "after", "events": ["delete", "truncate"], "procedure": "f1()"}},
}
}
)
dbsql = self.db.process_map(inmap)
self.assertEqual(fix_indent(dbsql[1]), CREATE_FUNC_STMT)
self.assertEqual(fix_indent(dbsql[2]), CREATE_TABLE_STMT)
self.assertEqual(
fix_indent(dbsql[3]),
"CREATE TRIGGER tr1 AFTER DELETE OR TRUNCATE ON t1 " "FOR EACH STATEMENT EXECUTE PROCEDURE f1()",
)
示例2: test_create_rule_multi_actions
def test_create_rule_multi_actions(self):
"Create a rule with multiple actions"
inmap = new_std_map()
inmap["schema public"].update(
{
"table t1": {
"columns": [{"c1": {"type": "integer"}}, {"c2": {"type": "text"}}],
"rules": {
"r1": {
"event": "update",
"actions": "(INSERT INTO t1 VALUES (old.c1 + 100); "
"INSERT INTO t1 VALUES (old.c1 + 200));)",
}
},
}
}
)
dbsql = self.db.process_map(inmap)
self.assertEqual(fix_indent(dbsql[0]), CREATE_TABLE_STMT)
self.assertEqual(
fix_indent(dbsql[1]),
"CREATE RULE r1 AS ON UPDATE "
"TO t1 DO (INSERT INTO t1 VALUES (old.c1 + 100); "
"INSERT INTO t1 VALUES (old.c1 + 200));)",
)
示例3: test_create_trigger
def test_create_trigger(self):
"Create a constraint trigger"
inmap = new_std_map()
inmap.update({"language plpgsql": {"trusted": True}})
inmap["schema public"].update(
{"function f1()": {"language": "plpgsql", "returns": "trigger", "source": FUNC_SRC}}
)
inmap["schema public"].update(
{
"table t1": {
"columns": [
{"c1": {"type": "integer"}},
{"c2": {"type": "text"}},
{"c3": {"type": "timestamp with time zone"}},
],
"triggers": {
"tr1": {
"constraint": True,
"timing": "after",
"events": ["insert", "update"],
"level": "row",
"procedure": "f1()",
}
},
}
}
)
dbsql = self.db.process_map(inmap)
self.assertEqual(fix_indent(dbsql[1]), CREATE_FUNC_STMT)
self.assertEqual(fix_indent(dbsql[2]), CREATE_TABLE_STMT)
self.assertEqual(
fix_indent(dbsql[3]),
"CREATE CONSTRAINT TRIGGER tr1 " "AFTER INSERT OR UPDATE ON t1 " "FOR EACH ROW EXECUTE PROCEDURE f1()",
)
示例4: test_create_with_foreign_key
def test_create_with_foreign_key(self):
"Create a table with a foreign key constraint"
self.db.execute_commit(DROP_STMT + ", t2")
inmap = new_std_map()
inmap['schema public'].update({'table t1': {
'columns': [{'c11': {'type': 'integer'}},
{'c12': {'type': 'text'}}]},
'table t2': {
'columns': [{'c21': {'type': 'integer'}},
{'c22': {'type': 'text'}},
{'c23': {'type': 'integer'}}],
'foreign_keys': {'t2_c23_fkey': {
'columns': ['c23'],
'references': {'columns': ['c11'],
'table': 't1'}}}}})
dbsql = self.db.process_map(inmap)
# can't control which table will be created first
crt1 = 0
crt2 = 1
if 't1' in dbsql[1]:
crt1 = 1
crt2 = 0
self.assertEqual(fix_indent(dbsql[crt1]),
"CREATE TABLE t1 (c11 integer, c12 text)")
self.assertEqual(fix_indent(dbsql[crt2]),
"CREATE TABLE t2 (c21 integer, c22 text, "
"c23 integer)")
self.assertEqual(fix_indent(dbsql[2]),
"ALTER TABLE t2 ADD CONSTRAINT t2_c23_fkey "
"FOREIGN KEY (c23) REFERENCES t1 (c11)")
示例5: test_create_rule_conditional
def test_create_rule_conditional(self):
"Create a rule with qualification"
inmap = new_std_map()
inmap["schema public"].update(
{
"table t1": {
"columns": [{"c1": {"type": "integer"}}, {"c2": {"type": "text"}}],
"rules": {
"r1": {
"event": "delete",
"condition": "old.c1 < 1000",
"actions": "INSERT INTO t1 VALUES (" "old.c1 + 1000, old.c2)",
}
},
}
}
)
dbsql = self.db.process_map(inmap)
self.assertEqual(fix_indent(dbsql[0]), CREATE_TABLE_STMT)
self.assertEqual(
fix_indent(dbsql[1]),
"CREATE RULE r1 AS ON DELETE "
"TO t1 WHERE old.c1 < 1000 "
"DO INSERT INTO t1 VALUES (old.c1 + 1000, old.c2)",
)
示例6: test_create_table_with_defaults
def test_create_table_with_defaults(self):
"Create a table with two column DEFAULTs, one referring to a SEQUENCE"
self.db.execute_commit("DROP SEQUENCE IF EXISTS t1_c1_seq")
inmap = self.std_map()
inmap['schema public'].update({'table t1': {
'columns': [{'c1': {
'type': 'integer',
'not_null': True,
'default': "nextval('t1_c1_seq'::regclass)"}},
{'c2': {'type': 'text', 'not_null': True}},
{'c3': {
'type': 'date', 'not_null': True,
'default': "('now'::text)::date"}}]},
'sequence t1_c1_seq': {
'cache_value': 1, 'increment_by': 1, 'max_value': None,
'min_value': None, 'start_value': 1}})
dbsql = self.db.process_map(inmap)
self.assertEqual(fix_indent(dbsql[0]),
"CREATE TABLE t1 (c1 integer NOT NULL, "
"c2 text NOT NULL, "
"c3 date NOT NULL DEFAULT ('now'::text)::date)")
self.assertEqual(fix_indent(dbsql[1]),
"CREATE SEQUENCE t1_c1_seq START WITH 1 "
"INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1")
self.assertEqual(dbsql[2], "ALTER TABLE t1 ALTER COLUMN c1 "
"SET DEFAULT nextval('t1_c1_seq'::regclass)")
示例7: test_create_aggregate_init_final
def test_create_aggregate_init_final(self):
"Create an aggregate with an INITCOND and a FINALFUNC"
self.db.execute("DROP AGGREGATE IF EXISTS a1(integer)")
self.db.execute_commit("DROP FUNCTION IF EXISTS f2(integer)")
self.db.execute_commit(DROP_STMT2)
inmap = new_std_map()
inmap['schema public'].update({'function f1(integer, integer)': {
'language': 'sql', 'returns': 'integer',
'source': SOURCE2,
'volatility': 'immutable'}})
inmap['schema public'].update({'function f2(integer)': {
'language': 'sql', 'returns': 'double precision',
'source': "SELECT $1::float",
'volatility': 'immutable'}})
inmap['schema public'].update({'aggregate a1(integer)': {
'sfunc': 'f1', 'stype': 'integer', 'initcond': '-1',
'finalfunc': 'f2(integer)'}})
dbsql = self.db.process_map(inmap)
self.assertEqual(fix_indent(dbsql[1]), CREATE_STMT2)
self.assertEqual(fix_indent(dbsql[2]),
"CREATE FUNCTION f2(integer) "
"RETURNS double precision LANGUAGE sql IMMUTABLE "
"AS $_$SELECT $1::float$_$")
self.assertEqual(fix_indent(dbsql[3]),
"CREATE AGGREGATE a1(integer) "
"(SFUNC = f1, STYPE = integer, FINALFUNC = f2, "
"INITCOND = '-1')")
示例8: test_trigger_with_comment
def test_trigger_with_comment(self):
"Create a trigger with a comment"
inmap = new_std_map()
inmap.update({"language plpgsql": {"trusted": True}})
inmap["schema public"].update(
{"function f1()": {"language": "plpgsql", "returns": "trigger", "source": FUNC_SRC}}
)
inmap["schema public"].update(
{
"table t1": {
"columns": [
{"c1": {"type": "integer"}},
{"c2": {"type": "text"}},
{"c3": {"type": "timestamp with time zone"}},
],
"triggers": {
"tr1": {
"description": "Test trigger tr1",
"timing": "before",
"events": ["insert", "update"],
"level": "row",
"procedure": "f1()",
}
},
}
}
)
dbsql = self.db.process_map(inmap)
self.assertEqual(fix_indent(dbsql[1]), CREATE_FUNC_STMT)
self.assertEqual(fix_indent(dbsql[2]), CREATE_TABLE_STMT)
self.assertEqual(fix_indent(dbsql[3]), CREATE_STMT)
self.assertEqual(dbsql[4], COMMENT_STMT)
示例9: test_create_rule_nothing
def test_create_rule_nothing(self):
"Create a rule"
inmap = self.std_map()
inmap['schema public'].update({'table t1': {
'columns': [{'c1': {'type': 'integer'}},
{'c2': {'type': 'text'}}],
'rules': {'r1': {'event': 'insert',
'actions': 'NOTHING'}}}})
dbsql = self.db.process_map(inmap)
self.assertEqual(fix_indent(dbsql[0]), CREATE_TABLE_STMT)
self.assertEqual(fix_indent(dbsql[1]), CREATE_STMT % (
'INSERT', 'NOTHING'))
示例10: test_change_column_types
def test_change_column_types(self):
"Change the datatypes of two columns"
self.db.execute_commit(CREATE_STMT1)
inmap = self.std_map()
inmap['schema public'].update({'table t1': {
'columns': [{'c1': {'type': 'bigint'}},
{'c2': {'type': 'varchar(25)'}}]}})
dbsql = self.db.process_map(inmap)
self.assertEqual(fix_indent(dbsql[0]),
"ALTER TABLE t1 ALTER COLUMN c1 TYPE bigint")
self.assertEqual(fix_indent(dbsql[1]),
"ALTER TABLE t1 ALTER COLUMN c2 TYPE varchar(25)")
示例11: test_create_foreign_key_deferred
def test_create_foreign_key_deferred(self):
"Create a table with various foreign key deferring constraint"
inmap = self.std_map()
inmap['schema public'].update({'table t1': {
'columns': [{'c11': {'type': 'integer'}},
{'c12': {'type': 'text'}}]},
'table t2': {
'columns': [{'c21': {'type': 'integer'}},
{'c22': {'type': 'text'}},
{'c23': {'type': 'integer'}},
{'c24': {'type': 'integer'}},
{'c25': {'type': 'integer'}},
],
'foreign_keys': {
't2_c23_fkey': {
'columns': ['c23'],
'references': {'columns': ['c11'],
'table': 't1'}},
't2_c24_fkey': {
'columns': ['c24'],
'references': {'columns': ['c11'],
'table': 't1'},
'deferrable': True},
't2_c25_fkey': {
'columns': ['c25'],
'references': {'columns': ['c11'],
'table': 't1'},
'deferrable': True,
'deferred': True}}}})
dbsql = self.db.process_map(inmap)
# can't control which table/constraint will be created first
dbsql[0:2] = list(sorted(dbsql[0:2]))
dbsql[2:5] = list(sorted(dbsql[2:5]))
self.assertEqual(fix_indent(dbsql[0]),
"CREATE TABLE t1 (c11 integer, c12 text)")
self.assertEqual(fix_indent(dbsql[1]),
"CREATE TABLE t2 (c21 integer, c22 text, "
"c23 integer, c24 integer, c25 integer)")
self.assertEqual(fix_indent(dbsql[2]),
"ALTER TABLE t2 ADD CONSTRAINT t2_c23_fkey "
"FOREIGN KEY (c23) REFERENCES t1 (c11)")
self.assertEqual(fix_indent(dbsql[3]),
"ALTER TABLE t2 ADD CONSTRAINT t2_c24_fkey "
"FOREIGN KEY (c24) REFERENCES t1 (c11) "
"DEFERRABLE")
self.assertEqual(fix_indent(dbsql[4]),
"ALTER TABLE t2 ADD CONSTRAINT t2_c25_fkey "
"FOREIGN KEY (c25) REFERENCES t1 (c11) "
"DEFERRABLE INITIALLY DEFERRED")
示例12: test_create_rule_instead
def test_create_rule_instead(self):
"Create a rule with an INSTEAD action"
inmap = self.std_map()
inmap['schema public'].update({'table t1': {
'columns': [{'c1': {'type': 'integer'}},
{'c2': {'type': 'text'}}],
'rules': {'r1': {'event': 'update', 'instead': True,
'actions': 'NOTHING'}}}})
dbsql = self.db.process_map(inmap)
self.assertEqual(fix_indent(dbsql[0]), CREATE_TABLE_STMT)
self.assertEqual(fix_indent(dbsql[1]),
"CREATE RULE r1 AS ON UPDATE TO t1 "
"DO INSTEAD NOTHING")
示例13: test_create_view
def test_create_view(self):
"Create a view"
inmap = self.std_map()
inmap['schema public'].update({'table t1': {
'columns': [{'c1': {'type': 'integer'}},
{'c2': {'type': 'text'}},
{'c3': {'type': 'integer'}}]}})
inmap['schema public'].update({'view v1': {
'definition': "SELECT c1, c3 * 2 FROM t1"}})
dbsql = self.db.process_map(inmap)
self.assertEqual(fix_indent(dbsql[0]), "CREATE TABLE t1 (c1 integer, "
"c2 text, c3 integer)")
self.assertEqual(fix_indent(dbsql[1]), "CREATE VIEW v1 AS "
"SELECT c1, c3 * 2 FROM t1")
示例14: test_create_rule_instead
def test_create_rule_instead(self):
"Create a rule with an INSTEAD action"
inmap = new_std_map()
inmap["schema public"].update(
{
"table t1": {
"columns": [{"c1": {"type": "integer"}}, {"c2": {"type": "text"}}],
"rules": {"r1": {"event": "update", "instead": True, "actions": "NOTHING"}},
}
}
)
dbsql = self.db.process_map(inmap)
self.assertEqual(fix_indent(dbsql[0]), CREATE_TABLE_STMT)
self.assertEqual(fix_indent(dbsql[1]), "CREATE RULE r1 AS ON UPDATE TO t1 " "DO INSTEAD NOTHING")
示例15: test_create_rule_nothing
def test_create_rule_nothing(self):
"Create a rule"
inmap = new_std_map()
inmap["schema public"].update(
{
"table t1": {
"columns": [{"c1": {"type": "integer"}}, {"c2": {"type": "text"}}],
"rules": {"r1": {"event": "insert", "actions": "NOTHING"}},
}
}
)
dbsql = self.db.process_map(inmap)
self.assertEqual(fix_indent(dbsql[0]), CREATE_TABLE_STMT)
self.assertEqual(fix_indent(dbsql[1]), CREATE_STMT % ("INSERT", "NOTHING"))