Skip to content

Commit 9c904da

Browse files
committed
test: Fix tests and add test for NoSessionError exception
1 parent 86a85e1 commit 9c904da

9 files changed

Lines changed: 37 additions & 31 deletions

tests/test_active_record.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ def setUpClass(cls):
5151
def tearDownClass(cls):
5252
if hasattr(cls, 'conn'):
5353
logger.info('Closing DB connection...')
54-
asyncio.run(cls.conn.close(BaseModel))
54+
asyncio.run(cls.conn.close())
5555

5656
async def test_context_manager(self):
5757
"""Test for ``__enter__`` and ``__exit__`` methods."""

tests/test_async_query.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def setUpClass(cls):
2626
def tearDownClass(cls):
2727
if hasattr(cls, 'conn'):
2828
logger.info('Closing DB connection...')
29-
asyncio.run(cls.conn.close(BaseModel))
29+
asyncio.run(cls.conn.close())
3030

3131
async def test_init(self):
3232
"""Test for ``fill`` function."""

tests/test_db_connection.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,15 @@
11
import unittest
22

3+
from sqlalchemy.exc import UnboundExecutionError
4+
35
from sqlactive.base_model import ActiveRecordBaseModel
4-
from sqlactive.conn import DBConnection
6+
# from sqlactive.conn import DBConnection
57

68
from ._logger import logger
7-
from ._models import BaseModel
9+
# from ._models import BaseModel
10+
from ._models import BaseModel, User
11+
from sqlalchemy.sql import func, select
12+
from sqlactive.conn import DBConnection, execute
813

914

1015
class TestDBConnection(unittest.IsolatedAsyncioTestCase):
@@ -24,4 +29,8 @@ async def test_all(self):
2429
self.assertIsNotNone(BaseModel._session)
2530

2631
logger.info('Testing "close" function...')
27-
await conn.close(BaseModel)
32+
await conn.close()
33+
34+
with self.assertRaises(UnboundExecutionError):
35+
query = select(User.age, func.count(User.id)).group_by(User.age)
36+
await execute(conn.async_scoped_session, query)

tests/test_execute.py

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -29,33 +29,13 @@ def setUpClass(cls):
2929
def tearDownClass(cls):
3030
if hasattr(cls, 'conn'):
3131
logger.info('Closing DB connection...')
32-
asyncio.run(cls.conn.close(BaseModel))
32+
asyncio.run(cls.conn.close())
3333

3434
async def test_execute(self):
3535
"""Test for ``sqlactive.conn.execute`` function."""
3636
logger.info('Testing "execute" function...')
3737
query = select(User.age, func.count(User.id)).group_by(User.age)
38-
result = await execute(query, BaseModel)
39-
self.assertEqual((19, 1), next(result))
40-
self.assertEqual((24, 1), next(result))
41-
self.assertEqual((25, 2), next(result))
42-
self.assertEqual((26, 2), next(result))
43-
self.assertEqual((27, 3), next(result))
44-
with self.assertRaises(NoSessionError):
45-
query = select(User.age, func.count(User.id)).group_by(User.age)
46-
await execute(query)
47-
48-
async def test_execute_without_base_model(self):
49-
"""Test for ``sqlactive.conn.execute`` function
50-
without passing a base model.
51-
"""
52-
logger.info('Testing "execute" function without base model...')
53-
with self.assertRaises(NoSessionError):
54-
query = select(User.age, func.count(User.id)).group_by(User.age)
55-
await execute(query)
56-
ActiveRecordBaseModel.set_session(self.conn.async_scoped_session)
57-
query = select(User.age, func.count(User.id)).group_by(User.age)
58-
result = await execute(query)
38+
result = await execute(self.conn.async_scoped_session, query)
5939
self.assertEqual((19, 1), next(result))
6040
self.assertEqual((24, 1), next(result))
6141
self.assertEqual((25, 2), next(result))

tests/test_inspection.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ def setUpClass(cls):
2626
def tearDownClass(cls):
2727
if hasattr(cls, 'conn'):
2828
logger.info('Closing DB connection...')
29-
asyncio.run(cls.conn.close(BaseModel))
29+
asyncio.run(cls.conn.close())
3030

3131
async def test_repr(self):
3232
"""Test for ``__repr__`` function."""

tests/test_serialization.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def setUpClass(cls):
2727
def tearDownClass(cls):
2828
if hasattr(cls, 'conn'):
2929
logger.info('Closing DB connection...')
30-
asyncio.run(cls.conn.close(BaseModel))
30+
asyncio.run(cls.conn.close())
3131

3232
async def test_to_dict(self):
3333
"""Test for ``to_dict`` function."""

tests/test_session.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import unittest
2+
3+
from sqlactive.exceptions import NoSessionError
4+
from sqlactive.session import SessionMixin
5+
6+
7+
class TestModel(SessionMixin):
8+
pass
9+
10+
11+
class TestSessionMixin(unittest.IsolatedAsyncioTestCase):
12+
"""Tests for ``sqlactive.session.SessionMixin``."""
13+
14+
async def test_no_session_error(self):
15+
"""Test for ``NoSessionError`` exception."""
16+
with self.assertRaises(NoSessionError):
17+
TestModel.AsyncSession

tests/test_smart_query.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ def setUpClass(cls):
4141
def tearDownClass(cls):
4242
if hasattr(cls, 'conn'):
4343
logger.info('Closing DB connection...')
44-
asyncio.run(cls.conn.close(BaseModel))
44+
asyncio.run(cls.conn.close())
4545

4646
async def test_operators(self):
4747
"""Test for operators."""

tests/test_utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def setUpClass(cls):
3434
def tearDownClass(cls):
3535
if hasattr(cls, 'conn'):
3636
logger.info('Closing DB connection...')
37-
asyncio.run(cls.conn.close(BaseModel))
37+
asyncio.run(cls.conn.close())
3838

3939
def test_get_query_root_cls(self):
4040
"""Test for ``get_query_root_cls`` function."""

0 commit comments

Comments
 (0)