diff options
| author | mike bayer <mike_mp@zzzcomputing.com> | 2019-09-30 15:32:18 +0000 |
|---|---|---|
| committer | Gerrit Code Review <gerrit@bbpush.zzzcomputing.com> | 2019-09-30 15:32:18 +0000 |
| commit | ff1124444e88260184ea807a7cbb16a1f6ee0ff4 (patch) | |
| tree | 30b9afc4875cead27be166669ca4a0de5bd3e908 /test | |
| parent | 9f3539b1745cbb287a1338812872d27cde4ebf24 (diff) | |
| parent | 6ddb62a8ba66b19afd41b967911ce5982250856e (diff) | |
| download | sqlalchemy-ff1124444e88260184ea807a7cbb16a1f6ee0ff4.tar.gz | |
Merge "Simplify _ColumnEntity, related"
Diffstat (limited to 'test')
| -rw-r--r-- | test/aaa_profiling/test_orm.py | 4 | ||||
| -rw-r--r-- | test/orm/inheritance/test_single.py | 2 | ||||
| -rw-r--r-- | test/orm/test_composites.py | 16 | ||||
| -rw-r--r-- | test/orm/test_froms.py | 14 | ||||
| -rw-r--r-- | test/orm/test_query.py | 30 | ||||
| -rw-r--r-- | test/orm/test_subquery_relations.py | 3 | ||||
| -rw-r--r-- | test/orm/test_utils.py | 19 | ||||
| -rw-r--r-- | test/profiles.txt | 48 |
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 |
