mirror of
https://github.com/FirebirdSQL/firebird-qa.git
synced 2025-02-02 02:40:42 +01:00
Add tests tests/functional/trigger/table/test_alter lost when migrating from fbtest. Correct ID for test_alter_12.py and test_alter_13.py tests.
This commit is contained in:
parent
4cf87ec498
commit
7a3ea7e442
49
tests/functional/trigger/table/test_alter_01.py
Normal file
49
tests/functional/trigger/table/test_alter_01.py
Normal file
@ -0,0 +1,49 @@
|
||||
#coding:utf-8
|
||||
|
||||
"""
|
||||
ID: trigger.table.alter-01
|
||||
TITLE: ALTER TRIGGER - ACTIVE
|
||||
DESCRIPTION:
|
||||
FBTEST: functional.trigger.table.alter_01
|
||||
"""
|
||||
|
||||
import pytest
|
||||
from firebird.qa import *
|
||||
|
||||
init_script = """
|
||||
CREATE TABLE test( id INTEGER NOT NULL CONSTRAINT unq UNIQUE,
|
||||
text VARCHAR(32));
|
||||
commit;
|
||||
SET TERM ^;
|
||||
CREATE TRIGGER tg FOR test INACTIVE BEFORE INSERT
|
||||
AS
|
||||
BEGIN
|
||||
new.id=1;
|
||||
END ^
|
||||
SET TERM ;^
|
||||
commit;
|
||||
"""
|
||||
|
||||
db = db_factory(init=init_script)
|
||||
|
||||
test_script = """
|
||||
ALTER TRIGGER tg ACTIVE;
|
||||
SHOW TRIGGER tg;
|
||||
"""
|
||||
|
||||
act = isql_act('db', test_script, substitutions=[('\\+.*',''),('\\=.*',''),('Trigger text.*','')])
|
||||
|
||||
expected_stdout = """
|
||||
Triggers on Table TEST:
|
||||
TG, Sequence: 0, Type: BEFORE INSERT, Active
|
||||
AS
|
||||
BEGIN
|
||||
new.id=1;
|
||||
END
|
||||
"""
|
||||
|
||||
@pytest.mark.version('>=3.0')
|
||||
def test_1(act: Action):
|
||||
act.expected_stdout = expected_stdout
|
||||
act.execute()
|
||||
assert act.clean_stdout == act.clean_expected_stdout
|
49
tests/functional/trigger/table/test_alter_02.py
Normal file
49
tests/functional/trigger/table/test_alter_02.py
Normal file
@ -0,0 +1,49 @@
|
||||
#coding:utf-8
|
||||
|
||||
"""
|
||||
ID: trigger.table.alter-02
|
||||
TITLE: ALTER TRIGGER - INACTIVE
|
||||
DESCRIPTION:
|
||||
FBTEST: functional.trigger.table.alter_02
|
||||
"""
|
||||
|
||||
import pytest
|
||||
from firebird.qa import *
|
||||
|
||||
init_script = """
|
||||
CREATE TABLE test( id INTEGER NOT NULL CONSTRAINT unq UNIQUE,
|
||||
text VARCHAR(32));
|
||||
commit;
|
||||
SET TERM ^;
|
||||
CREATE TRIGGER tg FOR test BEFORE INSERT
|
||||
AS
|
||||
BEGIN
|
||||
new.id=1;
|
||||
END ^
|
||||
SET TERM ;^
|
||||
commit;
|
||||
"""
|
||||
|
||||
db = db_factory(init=init_script)
|
||||
|
||||
test_script = """
|
||||
ALTER TRIGGER tg INACTIVE;
|
||||
SHOW TRIGGER tg;
|
||||
"""
|
||||
|
||||
act = isql_act('db', test_script, substitutions=[('\\+.*',''),('\\=.*',''),('Trigger text.*','')])
|
||||
|
||||
expected_stdout = """
|
||||
Triggers on Table TEST:
|
||||
TG, Sequence: 0, Type: BEFORE INSERT, Inactive
|
||||
AS
|
||||
BEGIN
|
||||
new.id=1;
|
||||
END
|
||||
"""
|
||||
|
||||
@pytest.mark.version('>=3.0')
|
||||
def test_1(act: Action):
|
||||
act.expected_stdout = expected_stdout
|
||||
act.execute()
|
||||
assert act.clean_stdout == act.clean_expected_stdout
|
46
tests/functional/trigger/table/test_alter_03.py
Normal file
46
tests/functional/trigger/table/test_alter_03.py
Normal file
@ -0,0 +1,46 @@
|
||||
#coding:utf-8
|
||||
|
||||
"""
|
||||
ID: trigger.table.alter-03
|
||||
TITLE: ALTER TRIGGER - BEFORE DELETE
|
||||
DESCRIPTION:
|
||||
FBTEST: functional.trigger.table.alter_03
|
||||
"""
|
||||
|
||||
import pytest
|
||||
from firebird.qa import *
|
||||
|
||||
init_script = """
|
||||
CREATE TABLE test( id INTEGER NOT NULL CONSTRAINT unq UNIQUE,
|
||||
text VARCHAR(32));
|
||||
SET TERM ^;
|
||||
CREATE TRIGGER tg FOR test AFTER UPDATE
|
||||
AS
|
||||
BEGIN
|
||||
END ^
|
||||
SET TERM ;^
|
||||
commit;
|
||||
"""
|
||||
|
||||
db = db_factory(init=init_script)
|
||||
|
||||
test_script = """
|
||||
ALTER TRIGGER tg BEFORE DELETE;
|
||||
SHOW TRIGGER tg;
|
||||
"""
|
||||
|
||||
act = isql_act('db', test_script, substitutions=[('\\+.*',''),('\\=.*',''),('Trigger text.*','')])
|
||||
|
||||
expected_stdout = """
|
||||
Triggers on Table TEST:
|
||||
TG, Sequence: 0, Type: BEFORE DELETE, Active
|
||||
AS
|
||||
BEGIN
|
||||
END
|
||||
"""
|
||||
|
||||
@pytest.mark.version('>=3.0')
|
||||
def test_1(act: Action):
|
||||
act.expected_stdout = expected_stdout
|
||||
act.execute()
|
||||
assert act.clean_stdout == act.clean_expected_stdout
|
46
tests/functional/trigger/table/test_alter_04.py
Normal file
46
tests/functional/trigger/table/test_alter_04.py
Normal file
@ -0,0 +1,46 @@
|
||||
#coding:utf-8
|
||||
|
||||
"""
|
||||
ID: trigger.table.alter-04
|
||||
TITLE: ALTER TRIGGER - BEFORE INSERT
|
||||
DESCRIPTION:
|
||||
FBTEST: functional.trigger.table.alter_04
|
||||
"""
|
||||
|
||||
import pytest
|
||||
from firebird.qa import *
|
||||
|
||||
init_script = """
|
||||
CREATE TABLE test( d INTEGER NOT NULL CONSTRAINT unq UNIQUE,
|
||||
text VARCHAR(32));
|
||||
SET TERM ^;
|
||||
CREATE TRIGGER tg FOR test AFTER UPDATE
|
||||
AS
|
||||
BEGIN
|
||||
END ^
|
||||
SET TERM ;^
|
||||
commit;
|
||||
"""
|
||||
|
||||
db = db_factory(init=init_script)
|
||||
|
||||
test_script = """
|
||||
ALTER TRIGGER tg BEFORE INSERT;
|
||||
SHOW TRIGGER tg;
|
||||
"""
|
||||
|
||||
act = isql_act('db', test_script, substitutions=[('\\+.*',''),('\\=.*',''),('Trigger text.*','')])
|
||||
|
||||
expected_stdout = """
|
||||
Triggers on Table TEST:
|
||||
TG, Sequence: 0, Type: BEFORE INSERT, Active
|
||||
AS
|
||||
BEGIN
|
||||
END
|
||||
"""
|
||||
|
||||
@pytest.mark.version('>=3.0')
|
||||
def test_1(act: Action):
|
||||
act.expected_stdout = expected_stdout
|
||||
act.execute()
|
||||
assert act.clean_stdout == act.clean_expected_stdout
|
46
tests/functional/trigger/table/test_alter_05.py
Normal file
46
tests/functional/trigger/table/test_alter_05.py
Normal file
@ -0,0 +1,46 @@
|
||||
#coding:utf-8
|
||||
|
||||
"""
|
||||
ID: trigger.table.alter-05
|
||||
TITLE: ALTER TRIGGER - BEFORE UPDATE
|
||||
DESCRIPTION:
|
||||
FBTEST: functional.trigger.table.alter_05
|
||||
"""
|
||||
|
||||
import pytest
|
||||
from firebird.qa import *
|
||||
|
||||
init_script = """
|
||||
CREATE TABLE test( id INTEGER NOT NULL CONSTRAINT unq UNIQUE,
|
||||
text VARCHAR(32));
|
||||
SET TERM ^;
|
||||
CREATE TRIGGER tg FOR test AFTER INSERT
|
||||
AS
|
||||
BEGIN
|
||||
END ^
|
||||
SET TERM ;^
|
||||
commit;
|
||||
"""
|
||||
|
||||
db = db_factory(init=init_script)
|
||||
|
||||
test_script = """
|
||||
ALTER TRIGGER tg BEFORE UPDATE;
|
||||
SHOW TRIGGER tg;
|
||||
"""
|
||||
|
||||
act = isql_act('db', test_script, substitutions=[('\\+.*',''),('\\=.*',''),('Trigger text.*','')])
|
||||
|
||||
expected_stdout = """
|
||||
Triggers on Table TEST:
|
||||
TG, Sequence: 0, Type: BEFORE UPDATE, Active
|
||||
AS
|
||||
BEGIN
|
||||
END
|
||||
"""
|
||||
|
||||
@pytest.mark.version('>=3.0')
|
||||
def test_1(act: Action):
|
||||
act.expected_stdout = expected_stdout
|
||||
act.execute()
|
||||
assert act.clean_stdout == act.clean_expected_stdout
|
46
tests/functional/trigger/table/test_alter_06.py
Normal file
46
tests/functional/trigger/table/test_alter_06.py
Normal file
@ -0,0 +1,46 @@
|
||||
#coding:utf-8
|
||||
|
||||
"""
|
||||
ID: trigger.table.alter-06
|
||||
TITLE: ALTER TRIGGER - AFTER DELETE
|
||||
DESCRIPTION:
|
||||
FBTEST: functional.trigger.table.alter_06
|
||||
"""
|
||||
|
||||
import pytest
|
||||
from firebird.qa import *
|
||||
|
||||
init_script = """
|
||||
CREATE TABLE test( id INTEGER NOT NULL CONSTRAINT unq UNIQUE,
|
||||
text VARCHAR(32));
|
||||
SET TERM ^;
|
||||
CREATE TRIGGER tg FOR test BEFORE UPDATE
|
||||
AS
|
||||
BEGIN
|
||||
END ^
|
||||
SET TERM ;^
|
||||
commit;
|
||||
"""
|
||||
|
||||
db = db_factory(init=init_script)
|
||||
|
||||
test_script = """
|
||||
ALTER TRIGGER tg AFTER DELETE;
|
||||
SHOW TRIGGER tg;
|
||||
"""
|
||||
|
||||
act = isql_act('db', test_script, substitutions=[('\\+.*',''),('\\=.*',''),('Trigger text.*','')])
|
||||
|
||||
expected_stdout = """
|
||||
Triggers on Table TEST:
|
||||
TG, Sequence: 0, Type: AFTER DELETE, Active
|
||||
AS
|
||||
BEGIN
|
||||
END
|
||||
"""
|
||||
|
||||
@pytest.mark.version('>=3.0')
|
||||
def test_1(act: Action):
|
||||
act.expected_stdout = expected_stdout
|
||||
act.execute()
|
||||
assert act.clean_stdout == act.clean_expected_stdout
|
80
tests/functional/trigger/table/test_alter_07.py
Normal file
80
tests/functional/trigger/table/test_alter_07.py
Normal file
@ -0,0 +1,80 @@
|
||||
#coding:utf-8
|
||||
|
||||
"""
|
||||
ID: trigger.table.alter-07
|
||||
TITLE: ALTER TRIGGER - AFTER INSERT
|
||||
DESCRIPTION:
|
||||
FBTEST: functional.trigger.table.alter_07
|
||||
"""
|
||||
|
||||
import pytest
|
||||
from firebird.qa import *
|
||||
|
||||
init_script = """
|
||||
CREATE TABLE test( id INTEGER NOT NULL CONSTRAINT unq UNIQUE, text VARCHAR(32));
|
||||
SET TERM ^;
|
||||
CREATE TRIGGER tg FOR test BEFORE UPDATE
|
||||
AS
|
||||
BEGIN
|
||||
new.id=1;
|
||||
END ^
|
||||
SET TERM ;^
|
||||
commit;
|
||||
"""
|
||||
|
||||
db = db_factory(init=init_script)
|
||||
|
||||
test_script = """
|
||||
ALTER TRIGGER tg AFTER INSERT;
|
||||
SHOW TRIGGER tg;
|
||||
"""
|
||||
|
||||
act = isql_act('db', test_script, substitutions=[('\\+.*',''),('\\=.*',''),('Trigger text.*','')])
|
||||
|
||||
expected_stdout_fb3 = """
|
||||
Triggers on Table TEST:
|
||||
=============================================================================
|
||||
TG, Sequence: 0, Type: BEFORE UPDATE, Active
|
||||
Trigger text:
|
||||
=============================================================================
|
||||
AS
|
||||
BEGIN
|
||||
new.id=1;
|
||||
END
|
||||
=============================================================================
|
||||
"""
|
||||
|
||||
expected_stderr_fb3 = """
|
||||
Statement failed, SQLSTATE = 2F000
|
||||
Error while parsing trigger TG's BLR
|
||||
-attempted update of read-only column
|
||||
-ID
|
||||
"""
|
||||
|
||||
expected_stdout_fb4 = """
|
||||
Triggers on Table TEST:
|
||||
TG, Sequence: 0, Type: BEFORE UPDATE, Active
|
||||
AS
|
||||
BEGIN
|
||||
new.id=1;
|
||||
END
|
||||
"""
|
||||
expected_stderr_fb4 = """
|
||||
Statement failed, SQLSTATE
|
||||
Error while parsing trigger TG's BLR
|
||||
-attempted update of read-only column TEST.ID
|
||||
"""
|
||||
|
||||
@pytest.mark.version('>=3.0')
|
||||
def test_1(act: Action):
|
||||
if act.is_version('>=4.0'):
|
||||
act.expected_stderr = expected_stderr_fb4
|
||||
act.expected_stdout = expected_stdout_fb4
|
||||
else:
|
||||
act.expected_stderr = expected_stderr_fb3
|
||||
act.expected_stdout = expected_stdout_fb3
|
||||
|
||||
act.execute()
|
||||
|
||||
assert act.clean_stdout == act.clean_expected_stdout
|
||||
assert act.clean_stderr == act.clean_expected_stderr
|
47
tests/functional/trigger/table/test_alter_08.py
Normal file
47
tests/functional/trigger/table/test_alter_08.py
Normal file
@ -0,0 +1,47 @@
|
||||
#coding:utf-8
|
||||
|
||||
"""
|
||||
ID: trigger.table.alter-08
|
||||
TITLE: ALTER TRIGGER - POSITION
|
||||
DESCRIPTION:
|
||||
FBTEST: functional.trigger.table.alter_08
|
||||
"""
|
||||
|
||||
import pytest
|
||||
from firebird.qa import *
|
||||
|
||||
init_script = """
|
||||
CREATE TABLE test( id INTEGER NOT NULL CONSTRAINT unq UNIQUE, text VARCHAR(32));
|
||||
SET TERM ^;
|
||||
CREATE TRIGGER tg FOR test BEFORE UPDATE
|
||||
AS
|
||||
BEGIN
|
||||
new.id=1;
|
||||
END ^
|
||||
SET TERM ;^
|
||||
commit;
|
||||
"""
|
||||
|
||||
db = db_factory(init=init_script)
|
||||
|
||||
test_script = """
|
||||
ALTER TRIGGER tg POSITION 20;
|
||||
SHOW TRIGGER tg;
|
||||
"""
|
||||
|
||||
act = isql_act('db', test_script, substitutions=[('\\+.*',''),('\\=.*',''),('Trigger text.*','')])
|
||||
|
||||
expected_stdout = """
|
||||
Triggers on Table TEST:
|
||||
TG, Sequence: 20, Type: BEFORE UPDATE, Active
|
||||
AS
|
||||
BEGIN
|
||||
new.id=1;
|
||||
END
|
||||
"""
|
||||
|
||||
@pytest.mark.version('>=3.0')
|
||||
def test_1(act: Action):
|
||||
act.expected_stdout = expected_stdout
|
||||
act.execute()
|
||||
assert act.clean_stdout == act.clean_expected_stdout
|
53
tests/functional/trigger/table/test_alter_09.py
Normal file
53
tests/functional/trigger/table/test_alter_09.py
Normal file
@ -0,0 +1,53 @@
|
||||
#coding:utf-8
|
||||
|
||||
"""
|
||||
ID: trigger.table.alter-09
|
||||
TITLE: ALTER TRIGGER - POSITION
|
||||
DESCRIPTION: Test by checking trigger seqeunce
|
||||
FBTEST: functional.trigger.table.alter_09
|
||||
"""
|
||||
|
||||
import pytest
|
||||
from firebird.qa import *
|
||||
|
||||
init_script = """
|
||||
CREATE TABLE test( id INTEGER NOT NULL CONSTRAINT unq UNIQUE,
|
||||
text VARCHAR(32));
|
||||
SET TERM ^;
|
||||
CREATE TRIGGER tg1 FOR test BEFORE INSERT POSITION 1
|
||||
AS
|
||||
BEGIN
|
||||
new.text=new.text||'tg1 ';
|
||||
END ^
|
||||
|
||||
CREATE TRIGGER tg2 FOR test BEFORE INSERT POSITION 10
|
||||
AS
|
||||
BEGIN
|
||||
new.text=new.text||'tg2 ';
|
||||
END ^
|
||||
SET TERM ;^
|
||||
commit;
|
||||
"""
|
||||
|
||||
db = db_factory(init=init_script)
|
||||
|
||||
test_script = """
|
||||
ALTER TRIGGER tg2 POSITION 0;
|
||||
INSERT INTO test VALUES(0,'');
|
||||
COMMIT;
|
||||
SELECT text FROM test;
|
||||
"""
|
||||
|
||||
act = isql_act('db', test_script, substitutions=[('\\=.*','')])
|
||||
|
||||
expected_stdout = """
|
||||
TEXT
|
||||
=======
|
||||
tg2 tg1
|
||||
"""
|
||||
|
||||
@pytest.mark.version('>=3.0')
|
||||
def test_1(act: Action):
|
||||
act.expected_stdout = expected_stdout
|
||||
act.execute()
|
||||
assert act.clean_stdout == act.clean_expected_stdout
|
54
tests/functional/trigger/table/test_alter_10.py
Normal file
54
tests/functional/trigger/table/test_alter_10.py
Normal file
@ -0,0 +1,54 @@
|
||||
#coding:utf-8
|
||||
|
||||
"""
|
||||
ID: trigger.table.alter-10
|
||||
TITLE: ALTER TRIGGER - AS
|
||||
DESCRIPTION:
|
||||
FBTEST: functional.trigger.table.alter_10
|
||||
"""
|
||||
|
||||
import pytest
|
||||
from firebird.qa import *
|
||||
|
||||
init_script = """
|
||||
CREATE TABLE test( id INTEGER NOT NULL CONSTRAINT unq UNIQUE,
|
||||
text VARCHAR(32));
|
||||
SET TERM ^;
|
||||
CREATE TRIGGER tg FOR test BEFORE INSERT POSITION 1
|
||||
AS
|
||||
BEGIN
|
||||
new.text=new.text||'tg1 ';
|
||||
END ^
|
||||
SET TERM ;^
|
||||
commit;
|
||||
"""
|
||||
|
||||
db = db_factory(init=init_script)
|
||||
|
||||
test_script = """
|
||||
SET TERM ^;
|
||||
ALTER TRIGGER tg AS
|
||||
BEGIN
|
||||
new.text='altered trigger';
|
||||
END ^
|
||||
|
||||
SET TERM ;^
|
||||
SHOW TRIGGER tg;
|
||||
"""
|
||||
|
||||
act = isql_act('db', test_script, substitutions=[('\\+.*',''),('\\=.*',''),('Trigger text.*','')])
|
||||
|
||||
expected_stdout = """
|
||||
Triggers on Table TEST:
|
||||
TG, Sequence: 1, Type: BEFORE INSERT, Active
|
||||
AS
|
||||
BEGIN
|
||||
new.text='altered trigger';
|
||||
END
|
||||
"""
|
||||
|
||||
@pytest.mark.version('>=3.0')
|
||||
def test_1(act: Action):
|
||||
act.expected_stdout = expected_stdout
|
||||
act.execute()
|
||||
assert act.clean_stdout == act.clean_expected_stdout
|
53
tests/functional/trigger/table/test_alter_11.py
Normal file
53
tests/functional/trigger/table/test_alter_11.py
Normal file
@ -0,0 +1,53 @@
|
||||
#coding:utf-8
|
||||
|
||||
"""
|
||||
ID: trigger.table.alter-11
|
||||
TITLE: ALTER TRIGGER - AS
|
||||
DESCRIPTION: Test by insert data
|
||||
FBTEST: functional.trigger.table.alter_11
|
||||
"""
|
||||
|
||||
import pytest
|
||||
from firebird.qa import *
|
||||
|
||||
init_script = """
|
||||
CREATE TABLE test( id INTEGER NOT NULL CONSTRAINT unq UNIQUE,
|
||||
text VARCHAR(32));
|
||||
SET TERM ^;
|
||||
CREATE TRIGGER tg FOR test BEFORE INSERT POSITION 1
|
||||
AS
|
||||
BEGIN
|
||||
new.text=new.text||'tg1 ';
|
||||
END ^
|
||||
SET TERM ;^
|
||||
commit;
|
||||
"""
|
||||
|
||||
db = db_factory(init=init_script)
|
||||
|
||||
test_script = """
|
||||
SET TERM ^;
|
||||
ALTER TRIGGER tg AS
|
||||
BEGIN
|
||||
new.text='altered trigger';
|
||||
END ^
|
||||
|
||||
SET TERM ;^
|
||||
INSERT INTO test VALUES(0,null);
|
||||
SELECT text FROM test;
|
||||
"""
|
||||
|
||||
act = isql_act('db', test_script, substitutions=[('\\=.*','')])
|
||||
|
||||
expected_stdout = """
|
||||
TEXT
|
||||
================================
|
||||
|
||||
altered trigger
|
||||
"""
|
||||
|
||||
@pytest.mark.version('>=3.0')
|
||||
def test_1(act: Action):
|
||||
act.expected_stdout = expected_stdout
|
||||
act.execute()
|
||||
assert act.clean_stdout == act.clean_expected_stdout
|
@ -1,7 +1,7 @@
|
||||
#coding:utf-8
|
||||
|
||||
"""
|
||||
ID: trigger.table.alter-01
|
||||
ID: trigger.table.alter-12
|
||||
TITLE: ALTER TRIGGER - AS
|
||||
DESCRIPTION:
|
||||
Try use old prefix in INSERT trigger
|
||||
|
@ -1,7 +1,7 @@
|
||||
#coding:utf-8
|
||||
|
||||
"""
|
||||
ID: trigger.table.alter-02
|
||||
ID: trigger.table.alter-13
|
||||
TITLE: ALTER TRIGGER - AS
|
||||
DESCRIPTION:
|
||||
Try use new prefix in DELETE trigger
|
||||
|
Loading…
Reference in New Issue
Block a user