6
0
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:
Anton Zuev 2023-05-03 12:25:54 +03:00
parent 4cf87ec498
commit 7a3ea7e442
13 changed files with 571 additions and 2 deletions

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View 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

View File

@ -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

View File

@ -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