1
+ from sqlalchemy import Column , ForeignKey , Integer , String
2
+ from sqlalchemy .ext .declarative import declarative_base
3
+ from sqlalchemy .orm import relationship
4
+
1
5
from strawberry_sqlalchemy_mapper import StrawberrySQLAlchemyLoader
2
6
7
+
3
8
def test_loader_init ():
4
9
loader = StrawberrySQLAlchemyLoader (bind = None )
5
10
assert loader .bind is None
6
11
assert loader ._loaders == {}
7
12
13
+
8
14
def test_loader_for ():
9
- pass
15
+ Base = declarative_base ()
16
+
17
+ class Employee (Base ):
18
+ __tablename__ = "employee"
19
+ id = Column (Integer , autoincrement = True , primary_key = True )
20
+ name = Column (String , nullable = False )
21
+ department_id = Column (Integer , ForeignKey ("department.id" ))
22
+ department = relationship ("Department" , back_populates = "employees" )
23
+
24
+ class Department (Base ):
25
+ __tablename__ = "department"
26
+ id = Column (Integer , autoincrement = True , primary_key = True )
27
+ name = Column (String , nullable = False )
28
+ employees = relationship ("Employee" , back_populates = "department" )
29
+
30
+ base_loader = StrawberrySQLAlchemyLoader (bind = None )
31
+ loader = base_loader .loader_for (Employee .department .property )
32
+ assert loader .max_batch_size is None
33
+ assert loader .cache is True
34
+ assert loader .cache_map == {}
35
+ assert loader ._loop is None
36
+ assert loader .load_fn is not None
0 commit comments