コード例 #1
0
 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())
コード例 #2
0
    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))
コード例 #3
0
    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))
コード例 #4
0
    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),
        )
コード例 #5
0
 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())