import nose

import pandas
from pandas.util.testing import network
from pandas.util.testing import assert_frame_equal
from numpy.testing.decorators import slow
from pandas.io.wb import search, download


@slow
@network
def test_wdi_search():
    raise nose.SkipTest("skipping for now")
    expected = {u('id'): {2634: u('GDPPCKD'),
                        4649: u('NY.GDP.PCAP.KD'),
                        4651: u('NY.GDP.PCAP.KN'),
                        4653: u('NY.GDP.PCAP.PP.KD')},
                u('name'): {2634: u('GDP per Capita, constant US$, '
                                             'millions'),
                          4649: u('GDP per capita (constant 2000 US$)'),
                          4651: u('GDP per capita (constant LCU)'),
                          4653: u('GDP per capita, PPP (constant 2005 '
                                      'international $)')}}
    result = search('gdp.*capita.*constant').ix[:, :2]
    expected = pandas.DataFrame(expected)
    expected.index = result.index
    assert_frame_equal(result, expected)


@slow
@network
def test_wdi_download():
    raise nose.SkipTest("skipping for now")
    expected = {'GDPPCKN': {(u('United States'), u('2003')): u('40800.0735367688'), (u('Canada'), u('2004')): u('37857.1261134552'), (u('United States'), u('2005')): u('42714.8594790102'), (u('Canada'), u('2003')): u('37081.4575704003'), (u('United States'), u('2004')): u('41826.1728310667'), (u('Mexico'), u('2003')): u('72720.0691255285'), (u('Mexico'), u('2004')): u('74751.6003347038'), (u('Mexico'), u('2005')): u('76200.2154469437'), (u('Canada'), u('2005')): u('38617.4563629611')}, 'GDPPCKD': {(u('United States'), u('2003')): u('40800.0735367688'), (u('Canada'), u('2004')): u('34397.055116118'), (u('United States'), u('2005')): u('42714.8594790102'), (u('Canada'), u('2003')): u('33692.2812368928'), (u('United States'), u('2004')): u('41826.1728310667'), (u('Mexico'), u('2003')): u('7608.43848670658'), (u('Mexico'), u('2004')): u('7820.99026814334'), (u('Mexico'), u('2005')): u('7972.55364129367'), (u('Canada'), u('2005')): u('35087.8925933298')}}
    expected = pandas.DataFrame(expected)
    result = download(country=['CA', 'MX', 'US', 'junk'], indicator=['GDPPCKD',
                                                                     'GDPPCKN', 'junk'], start=2003, end=2005)
    expected.index = result.index
    assert_frame_equal(result, pandas.DataFrame(expected))


if __name__ == '__main__':
    nose.runmodule(argv=[__file__, '-vvs', '-x', '--pdb', '--pdb-failure'],
                   exit=False)
