|
| 1 | + |
| 2 | +from unittest import TestCase |
| 3 | +from mock import Mock |
| 4 | + |
| 5 | +from sqlalchemy.exc import InvalidRequestError |
| 6 | + |
| 7 | +from sqlalchemy_pervasive import base |
| 8 | + |
| 9 | + |
| 10 | +class PervasiveCompilerTests(TestCase): |
| 11 | + |
| 12 | + def compiler(self): |
| 13 | + return base.PervasiveCompiler(dialect=Mock(paramstyle='named'), statement=Mock()) |
| 14 | + |
| 15 | + def test_get_select_precolumns(self): |
| 16 | + compiler = self.compiler() |
| 17 | + |
| 18 | + select = Mock(_distinct=None, _limit=None, _offset=None) |
| 19 | + self.assertEqual(compiler.get_select_precolumns(select), '') |
| 20 | + |
| 21 | + select._distinct = True |
| 22 | + self.assertEqual(compiler.get_select_precolumns(select), 'DISTINCT ') |
| 23 | + |
| 24 | + select._distinct = False |
| 25 | + select._limit = 10 |
| 26 | + self.assertEqual(compiler.get_select_precolumns(select), 'TOP 10 ') |
| 27 | + |
| 28 | + select._limit = None |
| 29 | + select._offset = 10 |
| 30 | + self.assertRaises(InvalidRequestError, compiler.get_select_precolumns, select) |
| 31 | + |
| 32 | + def test_limit_clause(self): |
| 33 | + compiler = self.compiler() |
| 34 | + self.assertEqual(compiler.limit_clause(Mock()), '') |
| 35 | + |
| 36 | + def test_visit_true(self): |
| 37 | + compiler = self.compiler() |
| 38 | + self.assertEqual(compiler.visit_true(Mock()), '1') |
| 39 | + |
| 40 | + def test_visit_false(self): |
| 41 | + compiler = self.compiler() |
| 42 | + self.assertEqual(compiler.visit_false(Mock()), '0') |
0 commit comments