Source code for sqlobject.tests.test_mysql
import pytest
from sqlobject import SQLObject, IntCol
from sqlobject.sqlbuilder import Select, ANY
from sqlobject.tests.dbtest import getConnection, setupClass
try:
connection = getConnection()
except (AttributeError, NameError):
# The module was imported during documentation building
pass
else:
if connection.dbName != "mysql":
pytestmark = pytest.mark.skip("These tests require MySQL")
[docs]class SOTestSOListMySQL(SQLObject):
pass
[docs]def test_list_databases():
assert connection.db in connection.listDatabases()
[docs]def test_list_tables():
setupClass(SOTestSOListMySQL)
assert SOTestSOListMySQL.sqlmeta.table in connection.listTables()
[docs]class SOTestANY(SQLObject):
value = IntCol()
[docs]def test_ANY():
setupClass(SOTestANY)
SOTestANY(value=10)
SOTestANY(value=20)
SOTestANY(value=30)
assert len(list(SOTestANY.select(
SOTestANY.q.value > ANY(Select([SOTestANY.q.value]))))) == 2
[docs]class SOTestMySQLidSize(SQLObject):
class sqlmeta:
idSize = 'BIG'
[docs]def test_idSize():
assert 'id BIGINT PRIMARY KEY AUTO_INCREMENT' \
in SOTestMySQLidSize.createTableSQL(connection=connection)[0]