def test_no_selects(self):
        """Ensure that render select can handle being passed no selects."""
        from bigquery.query_builder import _render_select

        result = _render_select({})

        self.assertEqual(result, 'SELECT *')
    def test_no_selects(self):
        """Ensure that render select can handle being passed no selects."""
        from bigquery.query_builder import _render_select

        result = _render_select({})

        self.assertEqual(result, 'SELECT *')
    def test_casting(self):
        """Ensure that render select can handle custom casting."""
        from bigquery.query_builder import _render_select

        result = _render_select({
            'start_time': {'alias': 'TimeStamp', 'format':
                'SEC_TO_MICRO-INTEGER-FORMAT_UTC_USEC'}
        })

        self.assertEqual(
            result,
            'SELECT FORMAT_UTC_USEC(INTEGER(start_time*1000000)) as TimeStamp')
Exemplo n.º 4
0
    def test_multiple_formatting_with_if(self):
        """
        Ensure that if we wrap an if statement in another formatter, that syntax
        is correctly generated.
        """

        result_select = _render_select({
            'start_time': {
                'format': 'IF:start_time != null,1,2-MAX'
            }})
        expected_select = 'SELECT MAX(IF(start_time != null, 1, 2))'
        self.assertEqual(expected_select, result_select)
Exemplo n.º 5
0
    def test_formatting_if_statement_works_correctly(self):
        """
        Ensure that if we pass an IF formatter, the library generates correct
        BigQuery. 
        """

        result_select = _render_select({
            'start_time': {
                'format': 'IF:start_time != null,1,2'
            }})
        expected_select = 'SELECT IF(start_time != null, 1, 2)'
        self.assertEqual(expected_select, result_select)
Exemplo n.º 6
0
    def test_aggregation_within_record_no_alias(self):
        """
        Ensure that aggregation within a query works when there is no alias for
        that field.
        """

        result_select = _render_select({
            'start_time': {
                'aggregation_level': 'RECORD',
                'format': 'MAX'
            }})
        expected_select = 'SELECT MAX(start_time) WITHIN RECORD'
        self.assertEqual(expected_select, result_select)
    def test_casting(self):
        """Ensure that render select can handle custom casting."""
        from bigquery.query_builder import _render_select

        result = _render_select({
            'start_time': {
                'alias': 'TimeStamp',
                'format': 'SEC_TO_MICRO-INTEGER-FORMAT_UTC_USEC'
            }
        })

        self.assertEqual(
            result,
            'SELECT FORMAT_UTC_USEC(INTEGER(start_time*1000000)) as TimeStamp')
    def test_multiple_selects(self):
        """Ensure that render select can handle multiple selects."""
        from bigquery.query_builder import _render_select

        result = _render_select({
            'start_time': {'alias': 'TimeStamp'},
            'max_log_level': {'alias': 'MaxLogLevel'},
            'user': {'alias': 'User'},
            'status': {'alias': 'Status'},
            'resource': {'alias': 'URL'},
            'version_id': {'alias': 'Version'},
            'latency': {'alias': 'Latency'},
            'ip': {'alias': 'IP'},
            'app_logs': {'alias': 'AppLogs'}})

        expected = 'SELECT status as Status, latency as Latency, ' \
                   'max_log_level as MaxLogLevel, resource as URL, user as ' \
                   'User, ip as IP, start_time as TimeStamp, version_id as ' \
                   'Version, app_logs as AppLogs'
        self.assertEqual(expected, result)
Exemplo n.º 9
0
    def test_multiple_selects(self):
        """Ensure that render select can handle multiple selects."""

        result = _render_select({
            'start_time': {'alias': 'TimeStamp'},
            'max_log_level': {'alias': 'MaxLogLevel'},
            'user': {'alias': 'User'},
            'status': {'alias': 'Status'},
            'resource': {'alias': 'URL'},
            'version_id': {'alias': 'Version'},
            'latency': {'alias': 'Latency'},
            'ip': {'alias': 'IP'},
            'app_logs': {'alias': 'AppLogs'}})

        expected = ('SELECT status as Status, latency as Latency, '
                    'max_log_level as MaxLogLevel, resource as URL, user as '
                    'User, ip as IP, start_time as TimeStamp, version_id as '
                    'Version, app_logs as AppLogs')
        six.assertCountEqual(
            self, sorted(expected[len('SELECT '):].split(', ')),
            sorted(result[len('SELECT '):].split(', ')))
    def test_multiple_selects(self):
        """Ensure that render select can handle multiple selects."""
        from bigquery.query_builder import _render_select

        result = _render_select({
            'start_time': {
                'alias': 'TimeStamp'
            },
            'max_log_level': {
                'alias': 'MaxLogLevel'
            },
            'user': {
                'alias': 'User'
            },
            'status': {
                'alias': 'Status'
            },
            'resource': {
                'alias': 'URL'
            },
            'version_id': {
                'alias': 'Version'
            },
            'latency': {
                'alias': 'Latency'
            },
            'ip': {
                'alias': 'IP'
            },
            'app_logs': {
                'alias': 'AppLogs'
            }
        })

        expected = 'SELECT status as Status, latency as Latency, ' \
                   'max_log_level as MaxLogLevel, resource as URL, user as ' \
                   'User, ip as IP, start_time as TimeStamp, version_id as ' \
                   'Version, app_logs as AppLogs'
        self.assertEqual(expected, result)
Exemplo n.º 11
0
    def test_no_selects(self):
        """Ensure that render select can handle being passed no selects."""

        result = _render_select({})

        self.assertEqual(result, 'SELECT *')