Skip to content

Commit f3ae359

Browse files
authored
Test boolean (#11)
* Fix import modules for test * Including the BOOLEAN field type in the InterBase field types list * Adding tests for the BOOLEAN type
1 parent 0998fcf commit f3ae359

22 files changed

+63
-42
lines changed

Diff for: interbase/schema.py

+3-1
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
IBT_SQL_TIME = 13
5151
IBT_SQL_TIMESTAMP = 35
5252
IBT_BIGINT = 16
53+
IBT_BOOLEAN = 17
5354

5455
MAX_INTSUBTYPES = 2
5556
MAX_BLOBSUBTYPES = 8
@@ -72,7 +73,8 @@
7273
IBT_SQL_TIME: 'TIME',
7374
IBT_SQL_DATE: 'DATE',
7475
IBT_SQL_TIMESTAMP: 'TIMESTAMP',
75-
IBT_BIGINT: 'BIGINT'
76+
IBT_BIGINT: 'BIGINT',
77+
IBT_BOOLEAN: 'BOOLEAN',
7678
}
7779
INTEGRAL_SUBTYPES = ('UNKNOWN', 'NUMERIC', 'DECIMAL')
7880
BLOB_SUBTYPES = ('BINARY', 'TEXT', 'BLR', 'ACL', 'RANGES', 'SUMMARY',

Diff for: interbase/test/files/create-test-db-dialect-1.sql

+2-1
Original file line numberDiff line numberDiff line change
@@ -612,7 +612,8 @@ CREATE TABLE T2
612612
C13 DOUBLE PRECISION,
613613
C14 DECIMAL(8, 4),
614614
C15 DECIMAL(8, 4),
615-
C16 BLOB SUB_TYPE 0 SEGMENT SIZE 80
615+
C16 BLOB SUB_TYPE 0 SEGMENT SIZE 80,
616+
C17 BOOLEAN DEFAULT FALSE
616617
);
617618

618619
/* Table: T3, Owner: SYSDBA */

Diff for: interbase/test/files/create-test-db.bat

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
del test2020v4.ib
2-
"C:\Program Files (x86)\Embarcadero\InterBase\bin\isql" -i create-test-db.sql
2+
"C:\Program Files\Embarcadero\InterBase\bin\isql" -i create-test-db.sql

Diff for: interbase/test/files/create-test-db.sql

+3-1
Original file line numberDiff line numberDiff line change
@@ -340,6 +340,7 @@ CREATE TABLE JOB
340340
MAX_SALARY SALARY NOT NULL,
341341
JOB_REQUIREMENT BLOB SUB_TYPE TEXT SEGMENT SIZE 80,
342342
LANGUAGE_REQ VARCHAR(255)[5],
343+
IS_TEMPORARY BOOLEAN DEFAULT FALSE,
343344
CONSTRAINT RDB$PRIMARY2 PRIMARY KEY (JOB_CODE, JOB_GRADE, JOB_COUNTRY)
344345
);
345346

@@ -611,7 +612,8 @@ CREATE TABLE T2
611612
C13 DOUBLE PRECISION,
612613
C14 DECIMAL(8, 4),
613614
C15 DECIMAL(8, 4),
614-
C16 BLOB SUB_TYPE 0 SEGMENT SIZE 80
615+
C16 BLOB SUB_TYPE 0 SEGMENT SIZE 80,
616+
C17 BOOLEAN DEFAULT FALSE
615617
);
616618

617619
/* Table: T3, Owner: SYSDBA */

Diff for: interbase/test/test_arrays.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828
import datetime
2929
import decimal
3030

31-
from core import InterBaseTestBase
32-
from constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB_PATH, IBTEST_SQL_DIALECT,\
31+
from .core import InterBaseTestBase
32+
from .constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB_PATH, IBTEST_SQL_DIALECT,\
3333
IBTEST_SERVER_PUBLIC_FILE
3434

3535

Diff for: interbase/test/test_bugs.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
import datetime
3030

3131
from io import BytesIO
32-
from core import InterBaseTestBase
33-
from constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB_DIR_PATH, IBTEST_DB_PATH,\
32+
from .core import InterBaseTestBase
33+
from .constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB_DIR_PATH, IBTEST_DB_PATH,\
3434
IBTEST_SQL_DIALECT, IBTEST_SERVER_PUBLIC_FILE
3535

3636

Diff for: interbase/test/test_change_views.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828
import interbase
2929
import time
3030

31-
from core import InterBaseTestBase
32-
from constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB_PATH, IBTEST_SQL_DIALECT,\
31+
from .core import InterBaseTestBase
32+
from .constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB_PATH, IBTEST_SQL_DIALECT,\
3333
IBTEST_SERVER_PUBLIC_FILE
3434

3535

Diff for: interbase/test/test_charset_conversion.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626

2727
import interbase
2828

29-
from core import InterBaseTestBase
30-
from constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB_PATH, IBTEST_SQL_DIALECT,\
29+
from .core import InterBaseTestBase
30+
from .constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB_PATH, IBTEST_SQL_DIALECT,\
3131
IBTEST_SERVER_PUBLIC_FILE
3232

3333

Diff for: interbase/test/test_connection.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@
2929

3030
from unittest import skipUnless
3131
from sys import platform
32-
from core import InterBaseTestBase
32+
from .core import InterBaseTestBase
3333
from contextlib import closing
34-
from constants import IBTEST_PASSWORD, IBTEST_USER, IBTEST_DB_PATH, IBTEST_HOST,\
34+
from .constants import IBTEST_PASSWORD, IBTEST_USER, IBTEST_DB_PATH, IBTEST_HOST,\
3535
IBTEST_USE_EMBEDDED, IBTEST_SQL_DIALECT, IBTEST_SERVER_PUBLIC_FILE
3636

3737
class TestConnection(InterBaseTestBase):

Diff for: interbase/test/test_create.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,9 @@
2727
import os
2828
import interbase
2929

30-
from core import InterBaseTestBase
30+
from .core import InterBaseTestBase
3131
from contextlib import closing
32-
from constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB_DIR_PATH,\
32+
from .constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB_DIR_PATH,\
3333
IBTEST_SQL_DIALECT, IBTEST_SERVER_PUBLIC_FILE
3434

3535

Diff for: interbase/test/test_cursor.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626

2727
import interbase
2828

29-
from core import InterBaseTestBase
30-
from constants import IBTEST_PASSWORD, IBTEST_USER, IBTEST_HOST, \
29+
from .core import InterBaseTestBase
30+
from .constants import IBTEST_PASSWORD, IBTEST_USER, IBTEST_HOST, \
3131
IBTEST_DB_PATH, IBTEST_USE_EMBEDDED, IBTEST_SQL_DIALECT, IBTEST_SERVER_PUBLIC_FILE
3232

3333

@@ -136,7 +136,8 @@ def test_description(self):
136136
"('MAX_SALARY', <class 'decimal.Decimal'>, " +
137137
("20, 8, 10" if IBTEST_SQL_DIALECT == 3 else "17, 8, None") + ", -2, False), "
138138
"('JOB_REQUIREMENT', <class 'str'>, 0, 8, 0, 1, True), "
139-
"('LANGUAGE_REQ', <class 'list'>, -1, 8, 0, 0, True))"
139+
"('LANGUAGE_REQ', <class 'list'>, -1, 8, 0, 0, True), "
140+
"('IS_TEMPORARY', <class 'bool'>, 5, 2, 0, 0, True))"
140141
)
141142

142143
cursor.execute('select * from proj_dept_budget')

Diff for: interbase/test/test_dbapi20.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
from unittest import skip, skipUnless
2121

2222
import interbase
23-
from constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB, IBTEST_SERVER_PUBLIC_FILE
23+
from .constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB, IBTEST_SERVER_PUBLIC_FILE
2424

2525
if sys.version[0] >= '3': #python 3.x
2626
_BaseException = Exception

Diff for: interbase/test/test_distributed_transaction.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,8 @@
2727
import os
2828
import interbase
2929

30-
from core import InterBaseTestBase
31-
from constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB_DIR_PATH,\
30+
from .core import InterBaseTestBase
31+
from .constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB_DIR_PATH,\
3232
IBTEST_SQL_DIALECT, IBTEST_SERVER_PUBLIC_FILE
3333
from unittest import skip
3434

Diff for: interbase/test/test_encryption.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828
import interbase
2929
import time
3030

31-
from core import InterBaseTestBase
32-
from constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB_DIR_PATH, \
31+
from .core import InterBaseTestBase
32+
from .constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB_DIR_PATH, \
3333
IBTEST_SQL_DIALECT, IBTEST_SERVER_PUBLIC_FILE
3434

3535

Diff for: interbase/test/test_events.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@
3030
import threading
3131

3232
from unittest import skip
33-
from core import InterBaseTestBase
34-
from constants import IBTEST_DB_DIR_PATH, IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_SQL_DIALECT,\
33+
from .core import InterBaseTestBase
34+
from .constants import IBTEST_DB_DIR_PATH, IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_SQL_DIALECT,\
3535
IBTEST_SERVER_PUBLIC_FILE
3636

3737

Diff for: interbase/test/test_insert_data.py

+16-2
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@
2828
import decimal
2929
import datetime
3030

31-
from core import InterBaseTestBase
32-
from constants import IBTEST_USER, IBTEST_HOST, IBTEST_PASSWORD, IBTEST_DB_PATH, IBTEST_SQL_DIALECT,\
31+
from .core import InterBaseTestBase
32+
from .constants import IBTEST_USER, IBTEST_HOST, IBTEST_PASSWORD, IBTEST_DB_PATH, IBTEST_SQL_DIALECT,\
3333
IBTEST_SERVER_PUBLIC_FILE
3434

3535

@@ -226,3 +226,17 @@ def test_insert_numeric_decimal(self):
226226
]
227227
)
228228

229+
def test_insert_boolean(self):
230+
cur = self.con.cursor()
231+
cur.execute('insert into T2 (C1, C17) values (?, ?)', (0, False))
232+
cur.execute('insert into T2 (C1, C17) values (?, ?)', (1, True))
233+
self.con.commit()
234+
235+
cur.execute('select C1, C17 from T2 where C17 = ?', (False,))
236+
row = cur.fetchone()
237+
self.assertFalse(row is None or len(row) != 2)
238+
self.assertEqual(row[1], False)
239+
240+
cur.execute('select C1, C17 from T2 where C17 = ?', (True,))
241+
rows = cur.fetchall()
242+
self.assertListEqual(rows, [(1, True)])

Diff for: interbase/test/test_prepared_statement.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626

2727
import interbase
2828

29-
from core import InterBaseTestBase
30-
from constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB_PATH, IBTEST_SQL_DIALECT,\
29+
from .core import InterBaseTestBase
30+
from .constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB_PATH, IBTEST_SQL_DIALECT,\
3131
IBTEST_SERVER_PUBLIC_FILE
3232

3333

Diff for: interbase/test/test_schema.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,8 @@
2929
from unittest import skip
3030
from interbase import schema as sm
3131
from contextlib import closing
32-
from core import InterBaseTestBase, SchemaVisitor
33-
from constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB_PATH, IBTEST_SQL_DIALECT,\
32+
from .core import InterBaseTestBase, SchemaVisitor
33+
from .constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB_PATH, IBTEST_SQL_DIALECT,\
3434
IBTEST_SERVER_PUBLIC_FILE
3535

3636

@@ -152,7 +152,7 @@ def testSchemaFromConnection(self):
152152
self.assertEqual(len(s.generators),2)
153153
self.assertEqual(len(s.sysgenerators),10)
154154
self.assertEqual(len(s.domains),15)
155-
self.assertEqual(len(s.sysdomains), 256)
155+
self.assertEqual(len(s.sysdomains), 258)
156156
self.assertEqual(len(s.indices),28)
157157
self.assertEqual(len(s.sysindices),77)
158158
self.assertEqual(len(s.tables),15)
@@ -1006,7 +1006,7 @@ def testProcedureParameter(self):
10061006
#
10071007
self.assertEqual(c.procedure.name,'GET_EMP_PROJ')
10081008
self.assertEqual(c.sequence,0)
1009-
self.assertEqual(c.domain.name,'RDB$94')
1009+
self.assertEqual(c.domain.name,'RDB$96')
10101010
self.assertEqual(c.datatype,'SMALLINT')
10111011
self.assertEqual(c.type_from,interbase.schema.PROCPAR_DATATYPE)
10121012
self.assertIsNone(c.default)
@@ -2337,6 +2337,7 @@ def testVisitor(self):
23372337
"MAX_SALARY SALARY NOT NULL,\n " \
23382338
"JOB_REQUIREMENT BLOB SUB_TYPE TEXT SEGMENT SIZE 80,\n " \
23392339
"LANGUAGE_REQ VARCHAR(255)[5],\n " \
2340+
"IS_TEMPORARY BOOLEAN DEFAULT FALSE,\n " \
23402341
"CONSTRAINT RDB$PRIMARY2\n PRIMARY KEY (JOB_CODE,JOB_GRADE,JOB_COUNTRY)\n)\n" \
23412342
"CREATE PROCEDURE SHOW_LANGS (\n CODE VARCHAR(5),\n " \
23422343
"GRADE SMALLINT,\n CTY VARCHAR(15)\n)\nRETURNS (LANGUAGES VARCHAR(15))\nAS\n\n" \

Diff for: interbase/test/test_services.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,9 @@
3030

3131
from sys import platform
3232
from unittest import skipUnless, skip
33-
from core import InterBaseTestBase
33+
from .core import InterBaseTestBase
3434
from contextlib import closing
35-
from constants import IBTEST_HOST, IBTEST_PASSWORD, IBTEST_DB_PATH, \
35+
from .constants import IBTEST_HOST, IBTEST_PASSWORD, IBTEST_DB_PATH, \
3636
IBTEST_USER, IBTEST_DB_DIR_PATH, IBTEST_USE_EMBEDDED, IBTEST_SQL_DIALECT, IBTEST_SERVER_PUBLIC_FILE
3737

3838

Diff for: interbase/test/test_stored_proc.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,9 @@
2626

2727
import interbase
2828

29-
from core import InterBaseTestBase
29+
from .core import InterBaseTestBase
3030
from decimal import Decimal
31-
from constants import IBTEST_USER, IBTEST_HOST, IBTEST_PASSWORD, IBTEST_DB_PATH, IBTEST_SQL_DIALECT,\
31+
from .constants import IBTEST_USER, IBTEST_HOST, IBTEST_PASSWORD, IBTEST_DB_PATH, IBTEST_SQL_DIALECT,\
3232
IBTEST_SERVER_PUBLIC_FILE
3333

3434

Diff for: interbase/test/test_stream_blobs.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,9 @@
2828
import interbase
2929

3030
from io import StringIO
31-
from core import InterBaseTestBase
31+
from .core import InterBaseTestBase
3232
from contextlib import closing
33-
from constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB_PATH, IBTEST_SQL_DIALECT,\
33+
from .constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB_PATH, IBTEST_SQL_DIALECT,\
3434
IBTEST_SERVER_PUBLIC_FILE
3535

3636

Diff for: interbase/test/test_transaction.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@
2626

2727
import interbase
2828

29-
from core import InterBaseTestBase
30-
from constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB_PATH, IBTEST_SQL_DIALECT,\
29+
from .core import InterBaseTestBase
30+
from .constants import IBTEST_HOST, IBTEST_USER, IBTEST_PASSWORD, IBTEST_DB_PATH, IBTEST_SQL_DIALECT,\
3131
IBTEST_SERVER_PUBLIC_FILE
3232

3333

0 commit comments

Comments
 (0)