def test_select_from(self): """Test the SELECT <columns> FROM part of DBSelect""" select = DBSelect('a') sql = re.sub(r'\s+', ' ', select.render()) self.assertEqual(sql, 'SELECT "a".* FROM "a"') select.set_from('b', ()) sql = re.sub(r'\s+', ' ', select.render()) self.assertEqual(sql, 'SELECT "a".* FROM "b" INNER JOIN "a"') select.set_from('c', ('d', 'e')) sql = re.sub(r'\s+', ' ', select.render()) self.assertEqual( sql, 'SELECT "a".*, "c"."d", "c"."e" ' + 'FROM "c" INNER JOIN "b" INNER JOIN "a"' ) count = self._helper.query( DBSelect('test_table', {'count': 'COUNT(*)'}).render() ).fetchone() self.assertTrue(type(count['count']) == int) self.assertTrue(count['count'] >= 0)