From 3a314fcea8539133947d5ec8e42a6c86e30fdf9a Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Fri, 16 Jun 2017 09:58:03 -0400 Subject: Repair WithinGroup.get_children() Fixed AttributeError which would occur in :class:`.WithinGroup` construct during an iteration of the structure. Change-Id: I563882d93c8c32292463a605b636aa60c77e9406 Fixes: #4012 --- test/sql/test_generative.py | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'test') diff --git a/test/sql/test_generative.py b/test/sql/test_generative.py index 1a12a8b0e..9474560ff 100644 --- a/test/sql/test_generative.py +++ b/test/sql/test_generative.py @@ -8,6 +8,7 @@ from sqlalchemy.testing import fixtures, AssertsExecutionResults, \ from sqlalchemy import testing from sqlalchemy.sql.visitors import ClauseVisitor, CloningVisitor, \ cloned_traverse, ReplacingCloningVisitor +from sqlalchemy.sql import visitors from sqlalchemy import exc from sqlalchemy.sql import util as sql_util from sqlalchemy.testing import (eq_, @@ -594,6 +595,15 @@ class ClauseTest(fixtures.TestBase, AssertsCompiledSQL): expr2 = CloningVisitor().traverse(expr) assert str(expr) == str(expr2) + assert expr in visitors.iterate(expr, {}) + + def test_within_group(self): + expr = func.row_number().within_group(t1.c.col1) + expr2 = CloningVisitor().traverse(expr) + assert str(expr) == str(expr2) + + assert expr in visitors.iterate(expr, {}) + def test_funcfilter(self): expr = func.count(1).filter(t1.c.col1 > 1) expr2 = CloningVisitor().traverse(expr) -- cgit v1.2.1