@@ -0,0 +1,1784 @@
+from __future__ import absolute_import, print_function, division%0A%0Aimport re%0A%0Afrom getpass import getuser%0A%0Aimport pytest%0A%0Asa = pytest.importorskip('sqlalchemy')%0Apytest.importorskip('pymysql')%0A%0Afrom odo import odo, drop, discover%0A%0Aimport pandas as pd%0A%0Afrom blaze import symbol, compute%0Afrom blaze.utils import example%0A%0A%0Adef normalize(s):%0A    s = ' '.join(s.strip().split()).lower()%0A    s = re.sub(r'(alias)_?%5Cd*', r'%5C1', s)%0A    return re.sub(r'__(%5BA-Za-z_%5D%5BA-Za-z_0-9%5D*)', r'%5C1', s)%0A%0A%0A@pytest.yield_fixture(scope='module')%0Adef data():%0A    try:%0A        t = odo(%0A            example('nyc.csv'),%0A            'mysql+pymysql://%25s@localhost/test::nyc' %25 getuser()%0A        )%0A    except sa.exc.OperationalError as e:%0A        pytest.skip(str(e))%0A    else:%0A        try:%0A            yield t.bind%0A        finally:%0A            drop(t)%0A%0A%0A@pytest.fixture%0Adef db(data):%0A    return symbol('test', discover(data))%0A%0A%0Adef test_agg_sql(db, data):%0A    subset = db.nyc%5B%5B'pickup_datetime', 'dropoff_datetime', 'passenger_count'%5D%5D%0A    expr = subset%5Bsubset.passenger_count %3C 4%5D.passenger_count.min()%0A    result = compute(expr, data)%0A    expected = %22%22%22%0A    select%0A        min(alias.passenger_count) as passenger_count_min%0A    from%0A        (select%0A            nyc.passenger_count as passenger_count%0A         from%0A            nyc%0A         where nyc.passenger_count %3C %25s) as alias%0A    %22%22%22%0A    assert normalize(str(result)) == normalize(expected)%0A%0A%0Adef test_agg_compute(db, data):%0A    subset = db.nyc%5B%5B'pickup_datetime', 'dropoff_datetime', 'passenger_count'%5D%5D%0A    expr = subset%5Bsubset.passenger_count %3C 4%5D.passenger_count.min()%0A    result = compute(expr, data)%0A    passenger_count = odo(compute(db.nyc.passenger_count, %7Bdb: data%7D), pd.Series)%0A    assert passenger_count%5Bpassenger_count %3C 4%5D.min() == result.scalar()%0A

Add some mysql tests