1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
|
import textwrap
from strawberry.schema_codegen import codegen
def test_generates_used_interface_before():
schema = """
type Human implements Being {
id: ID!
name: String!
friends: [Human]
}
type Cat implements Being {
id: ID!
name: String!
livesLeft: Int
}
interface Being {
id: ID!
name: String!
}
"""
expected = textwrap.dedent(
"""
import strawberry
@strawberry.interface
class Being:
id: strawberry.ID
name: str
@strawberry.type
class Human(Being):
id: strawberry.ID
name: str
friends: list[Human | None] | None
@strawberry.type
class Cat(Being):
id: strawberry.ID
name: str
lives_left: int | None
"""
).strip()
assert codegen(schema).strip() == expected
|