Skip to content

Commit 68fc014

Browse files
committed
TST: Remove explicit connectivity checks in test cases.
Instead, network decorator in pandas.util.testing checks for that instead. You have to opt into failing on tests by setting `pandas.util.testing._FORCE_NETWORK_ERROR` to `True`. CLN: Move imports and test skip to top of file
1 parent 2295ce6 commit 68fc014

File tree

4 files changed

+61
-168
lines changed

4 files changed

+61
-168
lines changed

pandas/io/tests/test_fred.py

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -26,22 +26,14 @@ def test_fred(self):
2626
start = datetime(2010, 1, 1)
2727
end = datetime(2013, 01, 27)
2828

29-
try:
30-
self.assertEquals(
31-
web.DataReader("GDP", "fred", start, end)['GDP'].tail(1),
32-
16004.5)
29+
self.assertEquals(
30+
web.DataReader("GDP", "fred", start, end)['GDP'].tail(1),
31+
16004.5)
3332

34-
self.assertRaises(
35-
Exception,
36-
lambda: web.DataReader("NON EXISTENT SERIES", 'fred',
37-
start, end))
38-
except urllib2.URLError:
39-
try:
40-
urllib2.urlopen('http://google.com')
41-
except urllib2.URLError:
42-
raise nose.SkipTest
43-
else:
44-
raise
33+
self.assertRaises(
34+
Exception,
35+
lambda: web.DataReader("NON EXISTENT SERIES", 'fred',
36+
start, end))
4537

4638
@slow
4739
@network

pandas/io/tests/test_ga.py

Lines changed: 9 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
1+
import os
12
import unittest
2-
import nose
33
from datetime import datetime
44

5+
import nose
56
import pandas as pd
6-
import pandas.core.common as com
77
from pandas import DataFrame
88
from pandas.util.testing import network, assert_frame_equal
99
from numpy.testing.decorators import slow
1010

11+
try:
12+
import httplib2
13+
from pandas.io.ga import GAnalytics, read_ga
14+
from pandas.io.auth import AuthenticationConfigError, reset_token_store
15+
from pandas.io import auth
16+
except ImportError:
17+
raise nose.SkipTest
1118

1219
class TestGoogle(unittest.TestCase):
1320

1421
_multiprocess_can_split_ = True
1522

1623
def test_remove_token_store(self):
17-
import os
18-
try:
19-
import pandas.io.auth as auth
20-
from pandas.io.ga import reset_token_store
21-
except ImportError:
22-
raise nose.SkipTest
23-
2424
auth.DEFAULT_TOKEN_FILE = 'test.dat'
2525
with open(auth.DEFAULT_TOKEN_FILE, 'w') as fh:
2626
fh.write('test')
@@ -31,13 +31,6 @@ def test_remove_token_store(self):
3131
@slow
3232
@network
3333
def test_getdata(self):
34-
try:
35-
import httplib2
36-
from pandas.io.ga import GAnalytics, read_ga
37-
from pandas.io.auth import AuthenticationConfigError
38-
except ImportError:
39-
raise nose.SkipTest
40-
4134
try:
4235
end_date = datetime.now()
4336
start_date = end_date - pd.offsets.Day() * 5
@@ -76,24 +69,10 @@ def test_getdata(self):
7669

7770
except AuthenticationConfigError:
7871
raise nose.SkipTest
79-
except httplib2.ServerNotFoundError:
80-
try:
81-
h = httplib2.Http()
82-
response, content = h.request("http://www.google.com")
83-
raise
84-
except httplib2.ServerNotFoundError:
85-
raise nose.SkipTest
8672

8773
@slow
8874
@network
8975
def test_iterator(self):
90-
try:
91-
import httplib2
92-
from pandas.io.ga import GAnalytics, read_ga
93-
from pandas.io.auth import AuthenticationConfigError
94-
except ImportError:
95-
raise nose.SkipTest
96-
9776
try:
9877
reader = GAnalytics()
9978

@@ -129,13 +108,6 @@ def test_iterator(self):
129108
@slow
130109
@network
131110
def test_segment(self):
132-
try:
133-
import httplib2
134-
from pandas.io.ga import GAnalytics, read_ga
135-
from pandas.io.auth import AuthenticationConfigError
136-
except ImportError:
137-
raise nose.SkipTest
138-
139111
try:
140112
end_date = datetime.now()
141113
start_date = end_date - pd.offsets.Day() * 5
@@ -186,16 +158,7 @@ def test_segment(self):
186158

187159
except AuthenticationConfigError:
188160
raise nose.SkipTest
189-
except httplib2.ServerNotFoundError:
190-
try:
191-
h = httplib2.Http()
192-
response, content = h.request("http://www.google.com")
193-
raise
194-
except httplib2.ServerNotFoundError:
195-
raise nose.SkipTest
196-
197161

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

pandas/io/tests/test_google.py

Lines changed: 38 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -13,111 +13,63 @@
1313

1414
class TestGoogle(unittest.TestCase):
1515

16-
@network
16+
@with_connectivity_check('http://www.google.com')
1717
def test_google(self):
1818
# asserts that google is minimally working and that it throws
19-
# an excecption when DataReader can't get a 200 response from
19+
# an exception when DataReader can't get a 200 response from
2020
# google
2121
start = datetime(2010, 1, 1)
2222
end = datetime(2013, 01, 27)
2323

24-
try:
25-
self.assertEquals(
26-
web.DataReader("F", 'google', start, end)['Close'][-1],
27-
13.68)
28-
except urllib2.URLError:
29-
try:
30-
urllib2.urlopen('http://www.google.com')
31-
except urllib2.URLError:
32-
raise nose.SkipTest
33-
else:
34-
raise
35-
36-
@network
37-
def test_google_non_existent(self):
38-
# asserts that google is minimally working and that it throws
39-
# an excecption when DataReader can't get a 200 response from
40-
# google
41-
start = datetime(2010, 1, 1)
42-
end = datetime(2013, 01, 27)
24+
self.assertEquals(
25+
web.DataReader("F", 'google', start, end)['Close'][-1],
26+
13.68)
4327

44-
try:
45-
self.assertRaises(
46-
Exception,
47-
lambda: web.DataReader("NON EXISTENT TICKER", 'google',
48-
start, end))
49-
except urllib2.URLError:
50-
try:
51-
urllib2.urlopen('http://www.google.com')
52-
except urllib2.URLError:
53-
raise nose.SkipTest
54-
else:
55-
raise
28+
self.assertRaises(
29+
Exception,
30+
lambda: web.DataReader("NON EXISTENT TICKER", 'google',
31+
start, end))
5632

5733

5834
@network
5935
def test_get_quote(self):
6036
self.assertRaises(NotImplementedError,
6137
lambda: web.get_quote_google(pd.Series(['GOOG', 'AAPL', 'GOOG'])))
6238

63-
@network
39+
@with_connectivity_check('http://www.google.com')
6440
def test_get_goog_volume(self):
65-
try:
66-
df = web.get_data_google('GOOG')
67-
assert df.Volume.ix['OCT-08-2010'] == 2863473
68-
except IOError:
69-
try:
70-
urllib2.urlopen('http://www.google.com')
71-
except IOError:
72-
raise nose.SkipTest
73-
else:
74-
raise
41+
df = web.get_data_google('GOOG')
42+
assert df.Volume.ix['OCT-08-2010'] == 2863473
7543

76-
@network
44+
@with_connectivity_check('http://www.google.com')
7745
def test_get_multi1(self):
78-
try:
79-
sl = ['AAPL', 'AMZN', 'GOOG']
80-
pan = web.get_data_google(sl, '2012')
81-
ts = pan.Close.GOOG.index[pan.Close.AAPL > pan.Close.GOOG]
82-
assert ts[0].dayofyear == 96
83-
except IOError:
84-
try:
85-
urllib2.urlopen('http://www.google.com')
86-
except IOError:
87-
raise nose.SkipTest
88-
else:
89-
raise
46+
sl = ['AAPL', 'AMZN', 'GOOG']
47+
pan = web.get_data_google(sl, '2012')
48+
ts = pan.Close.GOOG.index[pan.Close.AAPL > pan.Close.GOOG]
49+
assert ts[0].dayofyear == 96
9050

91-
@network
51+
@with_connectivity_check('http://www.google.com')
9252
def test_get_multi2(self):
93-
try:
94-
pan = web.get_data_google(['GE', 'MSFT', 'INTC'], 'JAN-01-12', 'JAN-31-12')
95-
expected = [19.02, 28.23, 25.39]
96-
result = pan.Close.ix['01-18-12'][['GE', 'MSFT', 'INTC']].tolist()
97-
assert result == expected
98-
99-
# sanity checking
100-
t= np.array(result)
101-
assert np.issubdtype(t.dtype, np.floating)
102-
assert t.shape == (3,)
103-
104-
expected = [[ 18.99, 28.4 , 25.18],
105-
[ 18.58, 28.31, 25.13],
106-
[ 19.03, 28.16, 25.52],
107-
[ 18.81, 28.82, 25.87]]
108-
result = pan.Open.ix['Jan-15-12':'Jan-20-12'][['GE', 'MSFT', 'INTC']].values
109-
assert (result == expected).all()
110-
111-
# sanity checking
112-
t= np.array(pan)
113-
assert np.issubdtype(t.dtype, np.floating)
114-
except IOError:
115-
try:
116-
urllib2.urlopen('http://www.google.com')
117-
except IOError:
118-
raise nose.SkipTest
119-
else:
120-
raise
53+
pan = web.get_data_google(['GE', 'MSFT', 'INTC'], 'JAN-01-12', 'JAN-31-12')
54+
expected = [19.02, 28.23, 25.39]
55+
result = pan.Close.ix['01-18-12'][['GE', 'MSFT', 'INTC']].tolist()
56+
assert result == expected
57+
58+
# sanity checking
59+
t= np.array(result)
60+
assert np.issubdtype(t.dtype, np.floating)
61+
assert t.shape == (3,)
62+
63+
expected = [[ 18.99, 28.4 , 25.18],
64+
[ 18.58, 28.31, 25.13],
65+
[ 19.03, 28.16, 25.52],
66+
[ 18.81, 28.82, 25.87]]
67+
result = pan.Open.ix['Jan-15-12':'Jan-20-12'][['GE', 'MSFT', 'INTC']].values
68+
assert (result == expected).all()
69+
70+
# sanity checking
71+
t= np.array(pan)
72+
assert np.issubdtype(t.dtype, np.floating)
12173

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

pandas/io/tests/test_yahoo.py

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,7 @@
44

55
import pandas as pd
66
import pandas.io.data as web
7-
from pandas.util.testing import (network, assert_frame_equal,
8-
assert_series_equal,
9-
assert_almost_equal)
10-
from numpy.testing.decorators import slow
11-
12-
import urllib2
7+
from pandas.util.testing import network, assert_series_equal
138

149

1510
class TestYahoo(unittest.TestCase):
@@ -22,23 +17,14 @@ def test_yahoo(self):
2217
start = datetime(2010, 1, 1)
2318
end = datetime(2013, 01, 27)
2419

25-
try:
26-
self.assertEquals(
27-
web.DataReader("F", 'yahoo', start, end)['Close'][-1],
28-
13.68)
20+
self.assertEquals(
21+
web.DataReader("F", 'yahoo', start, end)['Close'][-1],
22+
13.68)
2923

30-
self.assertRaises(
31-
Exception,
32-
lambda: web.DataReader("NON EXISTENT TICKER", 'yahoo',
24+
self.assertRaises(
25+
Exception,
26+
lambda: web.DataReader("NON EXISTENT TICKER", 'yahoo',
3327
start, end))
34-
except urllib2.URLError:
35-
try:
36-
urllib2.urlopen('http://www.google.com')
37-
except urllib2.URLError:
38-
raise nose.SkipTest
39-
else:
40-
raise
41-
4228

4329
@network
4430
def test_get_quote(self):

0 commit comments

Comments
 (0)