MCPcopy
hub / github.com/sqlalchemy/sqlalchemy / test_python_scalar_default

Method test_python_scalar_default

test/sql/test_insert.py:1822–1893  ·  view source on GitHub ↗
(self, key_type)

Source from the content-addressed store, hash-verified

1820
1821 @testing.combinations(("strings",), ("columns",), ("inspectables",))
1822 def test_python_scalar_default(self, key_type):
1823 metadata = MetaData()
1824 table = Table(
1825 "sometable",
1826 metadata,
1827 Column("id", Integer, primary_key=True),
1828 Column("data", String),
1829 Column("foo", Integer, default=10),
1830 )
1831
1832 if key_type == "strings":
1833 id_, data, foo = "id", "data", "foo"
1834 elif key_type == "columns":
1835 id_, data, foo = table.c.id, table.c.data, table.c.foo
1836 elif key_type == "inspectables":
1837 id_, data, foo = (
1838 ORMExpr(table.c.id),
1839 ORMExpr(table.c.data),
1840 ORMExpr(table.c.foo),
1841 )
1842 else:
1843 assert False
1844
1845 values = [
1846 {id_: 1, data: "data1"},
1847 {id_: 2, data: "data2", foo: 15},
1848 {id_: 3, data: "data3"},
1849 ]
1850
1851 checkparams = {
1852 "id_m0": 1,
1853 "id_m1": 2,
1854 "id_m2": 3,
1855 "data_m0": "data1",
1856 "data_m1": "data2",
1857 "data_m2": "data3",
1858 "foo": None, # evaluated later
1859 "foo_m1": 15,
1860 "foo_m2": None, # evaluated later
1861 }
1862
1863 stmt = table.insert().values(values)
1864
1865 eq_(
1866 {
1867 k: v.type._type_affinity
1868 for (k, v) in stmt.compile(
1869 dialect=postgresql.dialect()
1870 ).binds.items()
1871 },
1872 {
1873 "foo": Integer,
1874 "data_m2": String,
1875 "id_m0": Integer,
1876 "id_m2": Integer,
1877 "foo_m1": Integer,
1878 "data_m1": String,
1879 "id_m1": Integer,

Callers

nothing calls this directly

Calls 11

MetaDataClass · 0.90
TableClass · 0.90
ColumnClass · 0.90
eq_Function · 0.90
ORMExprClass · 0.85
assert_compileMethod · 0.80
valuesMethod · 0.45
insertMethod · 0.45
itemsMethod · 0.45
compileMethod · 0.45
dialectMethod · 0.45

Tested by

no test coverage detected