Skip to content

Commit 08f774f

Browse files
committed
add basic test cases
1 parent 0f73818 commit 08f774f

File tree

2 files changed

+71
-0
lines changed

2 files changed

+71
-0
lines changed

tests/test_loader.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
from strawberry_sqlalchemy_mapper import StrawberrySQLAlchemyLoader
2+
3+
def test_loader_init():
4+
loader = StrawberrySQLAlchemyLoader(bind=None)
5+
assert loader.bind is None
6+
assert loader._loaders == {}
7+
8+
def test_loader_for():
9+
pass

tests/test_mapper.py

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
from strawberry_sqlalchemy_mapper import StrawberrySQLAlchemyMapper
2+
from sqlalchemy.ext.declarative import declarative_base
3+
from sqlalchemy import Column, Integer, String
4+
5+
def _create_employee_table():
6+
# todo: use pytest fixtures
7+
Base = declarative_base()
8+
class Employee(Base):
9+
__tablename__ = "employee"
10+
id = Column(Integer, autoincrement=True, primary_key=True)
11+
name = Column(String, nullable=False)
12+
return Employee
13+
14+
def _create_polymorphic_employee_table():
15+
Base = declarative_base()
16+
class Employee(Base):
17+
__tablename__ = "employee"
18+
id = Column(Integer, autoincrement=True, primary_key=True)
19+
type = Column(String(50))
20+
21+
__mapper_args__ = {
22+
'polymorphic_identity':'employee',
23+
'polymorphic_on':type
24+
}
25+
return Employee
26+
27+
28+
def test_mapper_default_model_to_type_name():
29+
Employee = _create_employee_table()
30+
assert StrawberrySQLAlchemyMapper._default_model_to_type_name(Employee) == "Employee"
31+
32+
def test_default_model_to_interface_name():
33+
Employee = _create_employee_table()
34+
assert StrawberrySQLAlchemyMapper._default_model_to_interface_name(Employee) == "EmployeeInterface"
35+
36+
def test_model_is_interface_fails():
37+
Employee = _create_employee_table()
38+
strawberry_sqlalchemy_mapper = StrawberrySQLAlchemyMapper()
39+
assert strawberry_sqlalchemy_mapper.model_is_interface(Employee)is False
40+
41+
def test_model_is_interface_succeeds():
42+
strawberry_sqlalchemy_mapper = StrawberrySQLAlchemyMapper()
43+
Employee = _create_polymorphic_employee_table()
44+
assert strawberry_sqlalchemy_mapper.model_is_interface(Employee) is True
45+
46+
def test_is_model_polymorphic():
47+
strawberry_sqlalchemy_mapper = StrawberrySQLAlchemyMapper()
48+
Employee = _create_polymorphic_employee_table()
49+
assert strawberry_sqlalchemy_mapper._is_model_polymorphic(Employee) is True
50+
51+
def test_edge_type_for():
52+
strawberry_sqlalchemy_mapper = StrawberrySQLAlchemyMapper()
53+
employee_edge_class = strawberry_sqlalchemy_mapper._edge_type_for("Employee")
54+
assert employee_edge_class.__name__ == "EmployeeEdge"
55+
assert employee_edge_class._generated_field_keys == ['node']
56+
57+
def test_connection_type_for():
58+
strawberry_sqlalchemy_mapper = StrawberrySQLAlchemyMapper()
59+
employee_connection_class = strawberry_sqlalchemy_mapper._connection_type_for("Employee")
60+
assert employee_connection_class.__name__ == "EmployeeConnection"
61+
assert employee_connection_class._generated_field_keys == ['edges']
62+
assert employee_connection_class._is_generated_connection_type is True

0 commit comments

Comments
 (0)