File tree Expand file tree Collapse file tree 2 files changed +44
-0
lines changed
Expand file tree Collapse file tree 2 files changed +44
-0
lines changed Original file line number Diff line number Diff line change 1+ import pytest
2+ from sqlalchemy import create_engine
3+ from sqlalchemy .orm import sessionmaker , clear_mappers
4+
5+ from orm import metadata , start_mappers
6+
7+
8+ @pytest .fixture
9+ def in_memory_db ():
10+ engine = create_engine ("sqlite:///:memory:" )
11+ metadata .create_all (engine )
12+ return engine
13+
14+
15+ @pytest .fixture
16+ def session (in_memory_db ):
17+ start_mappers ()
18+ yield sessionmaker (bind = in_memory_db )()
19+ clear_mappers ()
Original file line number Diff line number Diff line change 1+ import model
2+
3+
4+ def test_orderline_mapper_can_load_lines (session ):
5+ session .execute (
6+ "INSERT INTO order_lines (orderid, sku, qty) VALUES "
7+ '("order1", "RED-CHAIR", 12),'
8+ '("order1", "RED-TABLE", 13),'
9+ '("order2", "BLUE-LIPSTICK", 14)'
10+ )
11+ expected = [
12+ model .OrderLine ("order1" , "RED-CHAIR" , 12 ),
13+ model .OrderLine ("order1" , "RED-TABLE" , 13 ),
14+ model .OrderLine ("order2" , "BLUE-LIPSTICK" , 14 ),
15+ ]
16+ assert session .query (model .OrderLine ).all () == expected
17+
18+
19+ def test_orderline_mapper_can_save_lines (session ):
20+ new_line = model .OrderLine ("order1" , "DECORATIVE-WIDGET" , 12 )
21+ session .add (new_line )
22+ session .commit ()
23+
24+ rows = list (session .execute ('SELECT orderid, sku, qty FROM "order_lines"' ))
25+ assert rows == [("order1" , "DECORATIVE-WIDGET" , 12 )]
You can’t perform that action at this time.
0 commit comments