From d46a3cab31afa8e49e35eb1c1bebff23609de21d Mon Sep 17 00:00:00 2001 From: Cohen Karnell Date: Tue, 19 Nov 2019 10:43:23 -0500 Subject: [PATCH] Fix types and add test for concat --- sqlalchemy-stubs/sql/functions.pyi | 2 +- test/test-data/sqlalchemy-functions.test | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/sqlalchemy-stubs/sql/functions.pyi b/sqlalchemy-stubs/sql/functions.pyi index 6f5a5c3..ce3c584 100644 --- a/sqlalchemy-stubs/sql/functions.pyi +++ b/sqlalchemy-stubs/sql/functions.pyi @@ -112,7 +112,7 @@ class sum(ReturnTypeFromArgs[Any]): ... class now(GenericFunction[datetime]): ... -class concat(GenericFunction[Text]): ... +class concat(GenericFunction[Optional[Text]]): ... class char_length(GenericFunction[int]): ... diff --git a/test/test-data/sqlalchemy-functions.test b/test/test-data/sqlalchemy-functions.test index 90e7f46..3c321d0 100644 --- a/test/test-data/sqlalchemy-functions.test +++ b/test/test-data/sqlalchemy-functions.test @@ -16,3 +16,22 @@ users_table = Table( query = users_table.update().values(user=functions.concat(users_table.c.user, "@domain.com")) [out] + +[case testConcatFunctionNullableString] +from sqlalchemy.sql import functions + +from sqlalchemy import Column, Table +from sqlalchemy.types import Integer, String +from sqlalchemy import MetaData + +metadata = MetaData() + +users_table = Table( + "users", + metadata, + Column("id", Integer, primary_key=True, autoincrement=True), + Column("user", String(42), unique=True, nullable=True), +) + +query = users_table.update().values(user=functions.concat(users_table.c.user, "@domain.com")) +[out]