Ejemplo n.º 1
0
    def test_date_dim_with_weekly_interval_no_interval_on_reference(self):
        queries = (
            mock_dataset.query.widget(
                f.HighCharts().axis(f.HighCharts.LineSeries(mock_dataset.fields.votes))
            )
            .dimension(f.week(mock_dataset.fields.timestamp))
            .reference(f.DayOverDay(mock_dataset.fields.timestamp))
            .sql
        )

        self.assertEqual(2, len(queries))

        with self.subTest("base query is same as without reference"):
            self.assertEqual(
                "SELECT "
                'TRUNC("timestamp",\'IW\') "$timestamp",'
                'SUM("votes") "$votes" '
                'FROM "politics"."politician" '
                'GROUP BY "$timestamp" '
                'ORDER BY "$timestamp"',
                str(queries[0]),
            )

        with self.subTest(
            "reference query is same as base query with filter on reference dimension shifted"
        ):
            self.assertEqual(
                "SELECT "
                "TRUNC(TIMESTAMPADD('day',1,TRUNC(\"timestamp\",'IW')),'IW') \"$timestamp\","
                'SUM("votes") "$votes_dod" '
                'FROM "politics"."politician" '
                'GROUP BY "$timestamp" '
                'ORDER BY "$timestamp"',
                str(queries[1]),
            )
Ejemplo n.º 2
0
    def test_build_query_with_datetime_interval_weekly(self):
        queries = (mock_dataset.query().widget(
            f.ReactTable(mock_dataset.fields.votes)).dimension(
                f.week(mock_dataset.fields.timestamp)).sql)

        self.assertEqual(len(queries), 1)

        self.assertEqual(
            "SELECT "
            'TRUNC("timestamp",\'IW\') "$timestamp",'
            'SUM("votes") "$votes" '
            'FROM "politics"."politician" '
            'GROUP BY "$timestamp" '
            'ORDER BY "$timestamp" '
            'LIMIT 200000',
            str(queries[0]),
        )
Ejemplo n.º 3
0
 def test_date_value_with_week_interval_is_returned_as_date_string_to_the_year_and_week_number(
     self, ):
     for d in (date(2019, 2, 25), datetime(2019, 2, 25, 12, 30, 2)):
         with self.subTest("with " + d.__class__.__name__):
             self.assertEqual("W08 2019-02-25",
                              formats.display_value(d, week(date_field)))