summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authormike bayer <mike_mp@zzzcomputing.com>2019-09-30 15:32:18 +0000
committerGerrit Code Review <gerrit@bbpush.zzzcomputing.com>2019-09-30 15:32:18 +0000
commitff1124444e88260184ea807a7cbb16a1f6ee0ff4 (patch)
tree30b9afc4875cead27be166669ca4a0de5bd3e908 /test
parent9f3539b1745cbb287a1338812872d27cde4ebf24 (diff)
parent6ddb62a8ba66b19afd41b967911ce5982250856e (diff)
downloadsqlalchemy-ff1124444e88260184ea807a7cbb16a1f6ee0ff4.tar.gz
Merge "Simplify _ColumnEntity, related"
Diffstat (limited to 'test')
-rw-r--r--test/aaa_profiling/test_orm.py4
-rw-r--r--test/orm/inheritance/test_single.py2
-rw-r--r--test/orm/test_composites.py16
-rw-r--r--test/orm/test_froms.py14
-rw-r--r--test/orm/test_query.py30
-rw-r--r--test/orm/test_subquery_relations.py3
-rw-r--r--test/orm/test_utils.py19
-rw-r--r--test/profiles.txt48
8 files changed, 86 insertions, 50 deletions
diff --git a/test/aaa_profiling/test_orm.py b/test/aaa_profiling/test_orm.py
index 4e52a7778..632f55937 100644
--- a/test/aaa_profiling/test_orm.py
+++ b/test/aaa_profiling/test_orm.py
@@ -560,6 +560,10 @@ class QueryTest(fixtures.MappedTest):
self._fixture()
sess = Session()
+ # warm up cache
+ for attr in [Parent.data1, Parent.data2, Parent.data3, Parent.data4]:
+ attr.__clause_element__()
+
@profiling.function_call_count()
def go():
for i in range(10):
diff --git a/test/orm/inheritance/test_single.py b/test/orm/inheritance/test_single.py
index 7b8d413a4..d0db76b21 100644
--- a/test/orm/inheritance/test_single.py
+++ b/test/orm/inheritance/test_single.py
@@ -287,7 +287,7 @@ class SingleInheritanceTest(testing.AssertsCompiledSQL, fixtures.MappedTest):
self.assert_compile(
sess.query(literal("1")).select_from(a1),
- "SELECT :param_1 AS param_1 FROM employees AS employees_1 "
+ "SELECT :param_1 AS anon_1 FROM employees AS employees_1 "
"WHERE employees_1.type IN (:type_1, :type_2)",
)
diff --git a/test/orm/test_composites.py b/test/orm/test_composites.py
index 7247c859a..0d679e6db 100644
--- a/test/orm/test_composites.py
+++ b/test/orm/test_composites.py
@@ -20,6 +20,8 @@ from sqlalchemy.testing.schema import Table
class PointTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
+ __dialect__ = "default"
+
@classmethod
def define_tables(cls, metadata):
Table(
@@ -311,6 +313,20 @@ class PointTest(fixtures.MappedTest, testing.AssertsCompiledSQL):
[(Point(3, 4), Point(5, 6))],
)
+ def test_cols_as_core_clauseelement(self):
+ Edge = self.classes.Edge
+ Point = self.classes.Point
+
+ start, end = Edge.start, Edge.end
+
+ stmt = select([start, end]).where(start == Point(3, 4))
+ self.assert_compile(
+ stmt,
+ "SELECT edges.x1, edges.y1, edges.x2, edges.y2 "
+ "FROM edges WHERE edges.x1 = :x1_1 AND edges.y1 = :y1_1",
+ checkparams={"x1_1": 3, "y1_1": 4},
+ )
+
def test_query_cols_labeled(self):
Edge = self.classes.Edge
Point = self.classes.Point
diff --git a/test/orm/test_froms.py b/test/orm/test_froms.py
index 498b68057..efa45affa 100644
--- a/test/orm/test_froms.py
+++ b/test/orm/test_froms.py
@@ -7,7 +7,6 @@ from sqlalchemy import exc as sa_exc
from sqlalchemy import exists
from sqlalchemy import ForeignKey
from sqlalchemy import func
-from sqlalchemy import inspect
from sqlalchemy import Integer
from sqlalchemy import literal_column
from sqlalchemy import select
@@ -2211,7 +2210,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
sess.expunge_all()
assert_raises(
- sa_exc.InvalidRequestError, sess.query(User).add_column, object()
+ sa_exc.ArgumentError, sess.query(User).add_column, object()
)
def test_add_multi_columns(self):
@@ -2270,7 +2269,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
.order_by(User.id)
)
q = sess.query(User)
- result = q.add_column("count").from_statement(s).all()
+ result = q.add_column(s.selected_columns.count).from_statement(s).all()
assert result == expected
def test_raw_columns(self):
@@ -2315,7 +2314,10 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
)
q = create_session().query(User)
result = (
- q.add_column("count").add_column("concat").from_statement(s).all()
+ q.add_column(s.selected_columns.count)
+ .add_column(s.selected_columns.concat)
+ .from_statement(s)
+ .all()
)
assert result == expected
@@ -2399,7 +2401,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
]:
q = s.query(crit)
mzero = q._entity_zero()
- is_(mzero.persist_selectable, q._query_entity_zero().selectable)
+ is_(mzero, q._query_entity_zero().entity_zero)
q = q.join(j)
self.assert_compile(q, exp)
@@ -2429,7 +2431,7 @@ class MixedEntitiesTest(QueryTest, AssertsCompiledSQL):
]:
q = s.query(crit)
mzero = q._entity_zero()
- is_(inspect(mzero).selectable, q._query_entity_zero().selectable)
+ is_(mzero, q._query_entity_zero().entity_zero)
q = q.join(j)
self.assert_compile(q, exp)
diff --git a/test/orm/test_query.py b/test/orm/test_query.py
index 4dff6fe56..bcd13e6e2 100644
--- a/test/orm/test_query.py
+++ b/test/orm/test_query.py
@@ -1005,14 +1005,14 @@ class InvalidGenerationsTest(QueryTest, AssertsCompiledSQL):
s = create_session()
q = s.query(User)
- assert_raises(sa_exc.InvalidRequestError, q.add_column, object())
+ assert_raises(sa_exc.ArgumentError, q.add_column, object())
def test_invalid_column_tuple(self):
User = self.classes.User
s = create_session()
q = s.query(User)
- assert_raises(sa_exc.InvalidRequestError, q.add_column, (1, 1))
+ assert_raises(sa_exc.ArgumentError, q.add_column, (1, 1))
def test_distinct(self):
"""test that a distinct() call is not valid before 'clauseelement'
@@ -2449,6 +2449,9 @@ class ComparatorTest(QueryTest):
def __clause_element__(self):
return self.expr
+ # this use case isn't exactly needed in this form, however it tests
+ # that we resolve for multiple __clause_element__() calls as is needed
+ # by systems like composites
sess = Session()
eq_(
sess.query(Comparator(User.id))
@@ -3398,11 +3401,11 @@ class SetOpsTest(QueryTest, AssertsCompiledSQL):
q3,
"SELECT anon_1.users_id AS anon_1_users_id, "
"anon_1.users_name AS anon_1_users_name, "
- "anon_1.param_1 AS anon_1_param_1 "
- "FROM (SELECT users.id AS users_id, users.name AS "
- "users_name, :param_1 AS param_1 "
- "FROM users UNION SELECT users.id AS users_id, "
- "users.name AS users_name, 'y' FROM users) AS anon_1",
+ "anon_1.anon_2 AS anon_1_anon_2 FROM "
+ "(SELECT users.id AS users_id, users.name AS users_name, "
+ ":param_1 AS anon_2 FROM users "
+ "UNION SELECT users.id AS users_id, users.name AS users_name, "
+ "'y' FROM users) AS anon_1",
)
def test_union_literal_expressions_results(self):
@@ -3410,7 +3413,8 @@ class SetOpsTest(QueryTest, AssertsCompiledSQL):
s = Session()
- q1 = s.query(User, literal("x"))
+ x_literal = literal("x")
+ q1 = s.query(User, x_literal)
q2 = s.query(User, literal_column("'y'"))
q3 = q1.union(q2)
@@ -3421,7 +3425,7 @@ class SetOpsTest(QueryTest, AssertsCompiledSQL):
eq_([x["name"] for x in q6.column_descriptions], ["User", "foo"])
for q in (
- q3.order_by(User.id, text("anon_1_param_1")),
+ q3.order_by(User.id, x_literal),
q6.order_by(User.id, "foo"),
):
eq_(
@@ -4231,12 +4235,14 @@ class TextTest(QueryTest, AssertsCompiledSQL):
User = self.classes.User
s = create_session()
- assert_raises(
- sa_exc.InvalidRequestError, s.query, User.id, text("users.name")
+
+ self.assert_compile(
+ s.query(User.id, text("users.name")),
+ "SELECT users.id AS users_id, users.name FROM users",
)
eq_(
- s.query(User.id, "name").order_by(User.id).all(),
+ s.query(User.id, literal_column("name")).order_by(User.id).all(),
[(7, "jack"), (8, "ed"), (9, "fred"), (10, "chuck")],
)
diff --git a/test/orm/test_subquery_relations.py b/test/orm/test_subquery_relations.py
index b32b6547f..03e17d291 100644
--- a/test/orm/test_subquery_relations.py
+++ b/test/orm/test_subquery_relations.py
@@ -3,6 +3,7 @@ from sqlalchemy import bindparam
from sqlalchemy import ForeignKey
from sqlalchemy import inspect
from sqlalchemy import Integer
+from sqlalchemy import literal_column
from sqlalchemy import select
from sqlalchemy import String
from sqlalchemy import testing
@@ -792,7 +793,7 @@ class EagerTest(_fixtures.FixtureTest, testing.AssertsCompiledSQL):
sess = create_session()
self.assert_compile(
- sess.query(User, "1"),
+ sess.query(User, literal_column("1")),
"SELECT users.id AS users_id, users.name AS users_name, "
"1 FROM users",
)
diff --git a/test/orm/test_utils.py b/test/orm/test_utils.py
index e47fc3f26..4bc2a5c88 100644
--- a/test/orm/test_utils.py
+++ b/test/orm/test_utils.py
@@ -210,7 +210,24 @@ class AliasedClassTest(fixtures.TestBase, AssertsCompiledSQL):
eq_(str(alias.x + 1), "point_1.x + :x_1")
eq_(str(alias.x_alone + 1), "point_1.x + :x_1")
- is_(Point.x_alone.__clause_element__(), Point.x.__clause_element__())
+ point_mapper = inspect(Point)
+
+ eq_(
+ Point.x_alone._annotations,
+ {
+ "parententity": point_mapper,
+ "parentmapper": point_mapper,
+ "orm_key": "x_alone",
+ },
+ )
+ eq_(
+ Point.x._annotations,
+ {
+ "parententity": point_mapper,
+ "parentmapper": point_mapper,
+ "orm_key": "x",
+ },
+ )
eq_(str(alias.x_alone == alias.x), "point_1.x = point_1.x")
diff --git a/test/profiles.txt b/test/profiles.txt
index 0750ab767..e4b99ba68 100644
--- a/test/profiles.txt
+++ b/test/profiles.txt
@@ -13,22 +13,22 @@
# TEST: test.aaa_profiling.test_compiler.CompileTest.test_insert
-test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mssql_pyodbc_dbapiunicode_cextensions 70,70
-test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mssql_pyodbc_dbapiunicode_nocextensions 70,70
-test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mysql_mysqldb_dbapiunicode_cextensions 70,70,70,70
-test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mysql_mysqldb_dbapiunicode_nocextensions 70,70,70,70
-test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mysql_pymysql_dbapiunicode_cextensions 70,70
-test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mysql_pymysql_dbapiunicode_nocextensions 70,70
-test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_oracle_cx_oracle_dbapiunicode_cextensions 70,70
-test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 70,70
+test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mssql_pyodbc_dbapiunicode_cextensions 66
+test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mssql_pyodbc_dbapiunicode_nocextensions 66
+test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mysql_mysqldb_dbapiunicode_cextensions 66
+test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mysql_mysqldb_dbapiunicode_nocextensions 66
+test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mysql_pymysql_dbapiunicode_cextensions 66
+test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_mysql_pymysql_dbapiunicode_nocextensions 66
+test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_oracle_cx_oracle_dbapiunicode_cextensions 66
+test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 66
test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_postgresql_psycopg2_dbapiunicode_cextensions 67
test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 67
test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_sqlite_pysqlite_dbapiunicode_cextensions 67
test.aaa_profiling.test_compiler.CompileTest.test_insert 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 67
-test.aaa_profiling.test_compiler.CompileTest.test_insert 3.7_mysql_mysqldb_dbapiunicode_cextensions 73,73,73,73
-test.aaa_profiling.test_compiler.CompileTest.test_insert 3.7_mysql_mysqldb_dbapiunicode_nocextensions 73,73,73,73
-test.aaa_profiling.test_compiler.CompileTest.test_insert 3.7_mysql_pymysql_dbapiunicode_cextensions 73,73
-test.aaa_profiling.test_compiler.CompileTest.test_insert 3.7_mysql_pymysql_dbapiunicode_nocextensions 73,73
+test.aaa_profiling.test_compiler.CompileTest.test_insert 3.7_mysql_mysqldb_dbapiunicode_cextensions 73
+test.aaa_profiling.test_compiler.CompileTest.test_insert 3.7_mysql_mysqldb_dbapiunicode_nocextensions 73
+test.aaa_profiling.test_compiler.CompileTest.test_insert 3.7_mysql_pymysql_dbapiunicode_cextensions 73
+test.aaa_profiling.test_compiler.CompileTest.test_insert 3.7_mysql_pymysql_dbapiunicode_nocextensions 73
test.aaa_profiling.test_compiler.CompileTest.test_insert 3.7_oracle_cx_oracle_dbapiunicode_cextensions 73
test.aaa_profiling.test_compiler.CompileTest.test_insert 3.7_oracle_cx_oracle_dbapiunicode_nocextensions 73
test.aaa_profiling.test_compiler.CompileTest.test_insert 3.7_postgresql_psycopg2_dbapiunicode_cextensions 72
@@ -523,24 +523,14 @@ test.aaa_profiling.test_orm.MergeTest.test_merge_no_load 3.7_sqlite_pysqlite_dba
# TEST: test.aaa_profiling.test_orm.QueryTest.test_query_cols
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_mssql_pyodbc_dbapiunicode_cextensions 6230
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_mssql_pyodbc_dbapiunicode_nocextensions 6780
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_mysql_mysqldb_dbapiunicode_cextensions 6290
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_mysql_mysqldb_dbapiunicode_nocextensions 6840
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_oracle_cx_oracle_dbapiunicode_cextensions 6360
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_oracle_cx_oracle_dbapiunicode_nocextensions 8190
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_postgresql_psycopg2_dbapiunicode_cextensions 6100
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 6641
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_sqlite_pysqlite_dbapiunicode_cextensions 6035
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_postgresql_psycopg2_dbapiunicode_cextensions 5900
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_postgresql_psycopg2_dbapiunicode_nocextensions 6441
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_sqlite_pysqlite_dbapiunicode_cextensions 5900
test.aaa_profiling.test_orm.QueryTest.test_query_cols 2.7_sqlite_pysqlite_dbapiunicode_nocextensions 6585
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.7_mysql_mysqldb_dbapiunicode_cextensions 6483
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.7_mysql_mysqldb_dbapiunicode_nocextensions 7143
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.7_oracle_cx_oracle_dbapiunicode_cextensions 6473
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.7_oracle_cx_oracle_dbapiunicode_nocextensions 7043
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.7_postgresql_psycopg2_dbapiunicode_cextensions 6464
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.7_postgresql_psycopg2_dbapiunicode_nocextensions 7034
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.7_sqlite_pysqlite_dbapiunicode_cextensions 6326
-test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.7_sqlite_pysqlite_dbapiunicode_nocextensions 6806
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.7_postgresql_psycopg2_dbapiunicode_cextensions 6138
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.7_postgresql_psycopg2_dbapiunicode_nocextensions 6800
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.7_sqlite_pysqlite_dbapiunicode_cextensions 6226
+test.aaa_profiling.test_orm.QueryTest.test_query_cols 3.7_sqlite_pysqlite_dbapiunicode_nocextensions 6506
# TEST: test.aaa_profiling.test_orm.SelectInEagerLoadTest.test_round_trip_results