diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000000000000000000000000000000000000..c07ec39c990360dfa608b17dbdc575a86400f49d --- /dev/null +++ b/setup.cfg @@ -0,0 +1,7 @@ +[nosetests] +nocapture = 1 +cover-package = sqlalchemy_pervasive +cover-erase = 1 +cover-inclusive = 1 +cover-html = 1 +cover-html-dir = htmlcov diff --git a/tests/__init__.py b/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/tests/test_base.py b/tests/test_base.py new file mode 100644 index 0000000000000000000000000000000000000000..f93306cec2084f72fd1dfd221f8e4072a9819fcf --- /dev/null +++ b/tests/test_base.py @@ -0,0 +1,42 @@ + +from unittest import TestCase +from mock import Mock + +from sqlalchemy.exc import InvalidRequestError + +from sqlalchemy_pervasive import base + + +class PervasiveCompilerTests(TestCase): + + def compiler(self): + return base.PervasiveCompiler(dialect=Mock(paramstyle='named'), statement=Mock()) + + def test_get_select_precolumns(self): + compiler = self.compiler() + + select = Mock(_distinct=None, _limit=None, _offset=None) + self.assertEqual(compiler.get_select_precolumns(select), '') + + select._distinct = True + self.assertEqual(compiler.get_select_precolumns(select), 'DISTINCT ') + + select._distinct = False + select._limit = 10 + self.assertEqual(compiler.get_select_precolumns(select), 'TOP 10 ') + + select._limit = None + select._offset = 10 + self.assertRaises(InvalidRequestError, compiler.get_select_precolumns, select) + + def test_limit_clause(self): + compiler = self.compiler() + self.assertEqual(compiler.limit_clause(Mock()), '') + + def test_visit_true(self): + compiler = self.compiler() + self.assertEqual(compiler.visit_true(Mock()), '1') + + def test_visit_false(self): + compiler = self.compiler() + self.assertEqual(compiler.visit_false(Mock()), '0')