def test_sql(self): phrases = [ Phrase('actor', { 'dims' : 'athlete' }, []), Phrase('actor', { 'dims' : 'country' }, []), Phrase('medals', { 'stats' : 'sum(gold_medals)' }, []), Phrase('medals', { 'stats' : 'sum(silver_medals)', 'limit' : '500' }, []), Phrase('most', { 'orderbys' : 'sum(gold_medals) desc', 'limit' : '300' }, []), Phrase('when', { 'conditions' : 'year = 2008' }, []), Phrase('what_sport', { 'conditions' : "sport = 'Swimming'" }, []) ] query = Query('medal_table', phrases) sql = "SELECT athlete, country, sum(gold_medals), sum(silver_medals) FROM medal_table WHERE year = 2008 AND sport = 'Swimming' GROUP BY athlete, country ORDER BY sum(gold_medals) desc LIMIT 300" self.assertEqual(query.get_sql(), sql)
def test_minimal_sql(self): query = Query('the_table', [ Phrase('t', { 'stats' : 'count(*)', 'limit' : '10' }, []) ]) self.assertEqual(query.get_sql(), 'SELECT count(*) FROM the_table LIMIT 10')