def test_range_then_rows_raises_attribute_error(self): with self.assertRaises(AttributeError): an.Sum(self.table_abc.fizz) \ .over(self.table_abc.foo) \ .orderby(self.table_abc.date) \ .range(an.Preceding()) \ .rows(an.Preceding())
def test_empty_over(self): query = Query.from_(self.table_abc).select( an.Sum(self.table_abc.fizz).over()) self.assertEqual('SELECT ' 'SUM("fizz") OVER() ' 'FROM "abc"', str(query))
def test_sum_rows_unbounded_preceeding(self): expr = an.Sum(self.table_abc.fizz) \ .over(self.table_abc.foo) \ .orderby(self.table_abc.date) \ .rows(an.Preceding()) q = Query.from_(self.table_abc).select(expr) self.assertEqual( 'SELECT ' 'SUM("fizz") ' 'OVER(' 'PARTITION BY "foo" ORDER BY "date" ' 'ROWS UNBOUNDED PRECEDING' ') ' 'FROM "abc"', str(q))
def test_sum_rows_unbounded_preceeding(self): expr = an.Sum(self.table_abc.fizz).over(self.table_abc.foo).orderby( self.table_abc.date).rows(an.Preceding()) q = Query.from_(self.table_abc).select(expr) self.assertEqual( "SELECT " 'SUM("fizz") ' "OVER(" 'PARTITION BY "foo" ORDER BY "date" ' "ROWS UNBOUNDED PRECEDING" ") " 'FROM "abc"', str(q), )
def test_range_called_twice_raises_attribute_error(self): with self.assertRaises(AttributeError): an.Sum(self.table_abc.fizz).over(self.table_abc.foo).orderby( self.table_abc.date).range(an.Preceding()).range( an.Preceding())