# -*- coding: utf-8 -*- from unittest import TestCase from redash.query_runner import TYPE_DATETIME, TYPE_FLOAT, TYPE_INTEGER, TYPE_BOOLEAN, TYPE_STRING from redash.query_runner.drill import guess_type class TestGuessType(TestCase): def test_handles_unicode(self): self.assertEqual(guess_type(u'Текст'), TYPE_STRING) def test_detects_booleans(self): self.assertEqual(guess_type('true'), TYPE_BOOLEAN) self.assertEqual(guess_type('True'), TYPE_BOOLEAN) self.assertEqual(guess_type('TRUE'), TYPE_BOOLEAN) self.assertEqual(guess_type('false'), TYPE_BOOLEAN) self.assertEqual(guess_type('False'), TYPE_BOOLEAN) self.assertEqual(guess_type('FALSE'), TYPE_BOOLEAN) def test_detects_strings(self): self.assertEqual(guess_type(None), TYPE_STRING) self.assertEqual(guess_type(''), TYPE_STRING) self.assertEqual(guess_type('redash'), TYPE_STRING) def test_detects_integer(self): self.assertEqual(guess_type('42'), TYPE_INTEGER) def test_detects_float(self): self.assertEqual(guess_type('3.14'), TYPE_FLOAT) def test_detects_date(self): self.assertEqual(guess_type('2018-10-31'), TYPE_DATETIME)