def test_one_table_overridden_underscore_named_field(generate_traps): assert generate_traps([ dbscheme.Table(name="foos", columns=[dbscheme.Column("whatever_", "bar")]), ]) == [ cpp.Trap("foos", name="Foos", fields=[cpp.Field("whatever", "bar")]), ]
def test_one_table_with_id(generate_traps): assert generate_traps([ dbscheme.Table(name="foos", columns=[ dbscheme.Column("bla", "int", binding=True)]), ]) == [ cpp.Trap("foos", name="Foos", fields=[cpp.Field( "bla", "int")], id=cpp.Field("bla", "int")), ]
def test_trap_has_first_field_marked(): fields = [ cpp.Field("a", "x"), cpp.Field("b", "y"), cpp.Field("c", "z"), ] expected = deepcopy(fields) expected[0].first = True t = cpp.Trap("table_name", "name", fields) assert t.fields == expected
def get_trap(t: dbscheme.Table): id = get_binding_column(t) if id: id = get_field(id) return cpp.Trap( table_name=t.name, name=inflection.camelize(t.name), fields=[get_field(c) for c in t.columns], id=id, )
def test_one_table_with_two_binding_first_is_id(generate_traps): assert generate_traps([ dbscheme.Table(name="foos", columns=[ dbscheme.Column("x", "a", binding=True), dbscheme.Column("y", "b", binding=True), ]), ]) == [ cpp.Trap("foos", name="Foos", fields=[ cpp.Field("x", "a"), cpp.Field("y", "b"), ], id=cpp.Field("x", "a")), ]
def test_one_table(generate_traps): assert generate_traps([ dbscheme.Table(name="foos", columns=[dbscheme.Column("bla", "int")]), ]) == [ cpp.Trap("foos", name="Foos", fields=[cpp.Field("bla", "int")]), ]
def test_one_table_overridden_unsigned_field(generate_traps, name): assert generate_traps([ dbscheme.Table(name="foos", columns=[dbscheme.Column(name, "bar")]), ]) == [ cpp.Trap("foos", name="Foos", fields=[cpp.Field(name, "unsigned")]), ]
def test_one_table_special_types(generate_traps, column, field): assert generate_traps([ dbscheme.Table(name="foos", columns=[column]), ]) == [ cpp.Trap("foos", name="Foos", fields=[field]), ]