Broken: use method generators to DRY tests · pandas-dev/pandas@a441448 (original) (raw)

`@@ -15,7 +15,14 @@

`

15

15

``

16

16

``

17

17

`class TestCompressedUrl(tm.TestCase):

`

18

``

-

``

18

+

``

19

`+

compression_to_extension = {

`

``

20

`+

'gzip': '.gz',

`

``

21

`+

'bz2': '.bz2',

`

``

22

`+

'zip': '.zip',

`

``

23

`+

'xz': '.xz',

`

``

24

`+

}

`

``

25

+

19

26

`def setUp(self):

`

20

27

`dirpath = tm.get_data_path()

`

21

28

`path = os.path.join(dirpath, 'salary.table.csv')

`

`@@ -27,51 +34,15 @@ def setUp(self):

`

27

34

`'pandas/io/tests/parser/data/salaries.csv')

`

28

35

``

29

36

`@tm.network

`

30

``

`-

def test_url_gz(self):

`

31

``

`-

url = self.base_url + '.gz'

`

32

``

`-

url_table = read_table(url, compression="gzip", engine="python")

`

33

``

`-

tm.assert_frame_equal(url_table, self.local_table)

`

34

``

-

35

``

`-

@tm.network

`

36

``

`-

def test_url_bz2(self):

`

37

``

`-

url = self.base_url + '.bz2'

`

38

``

`-

url_table = read_table(url, compression="bz2", engine="python")

`

39

``

`-

tm.assert_frame_equal(url_table, self.local_table)

`

40

``

-

41

``

`-

@tm.network

`

42

``

`-

def test_url_xz(self):

`

43

``

`-

url = self.base_url + '.xz'

`

44

``

`-

url_table = read_table(url, compression="zip", engine="python")

`

45

``

`-

tm.assert_frame_equal(url_table, self.local_table)

`

46

``

-

47

``

`-

@tm.network

`

48

``

`-

def test_url_zip(self):

`

49

``

`-

url = self.base_url + '.zip'

`

50

``

`-

url_table = read_table(url, compression="zip", engine="python")

`

51

``

`-

tm.assert_frame_equal(url_table, self.local_table)

`

``

37

`+

def test_compressed_urls(self):

`

``

38

`+

"""Test reading compressed tables from URL."""

`

``

39

`+

for compression, extension in self.compression_to_extension.items():

`

``

40

`+

url = self.base_url + extension

`

``

41

`+

yield self.check_table, url, compression

`

``

42

`+

yield self.check_table, url, 'infer'

`

52

43

``

53

``

`-

@tm.network

`

54

``

`-

def test_url_gz_infer(self):

`

55

``

`-

url = self.base_url + '.gz'

`

56

``

`-

url_table = read_table(url, compression="infer", engine="python")

`

57

``

`-

tm.assert_frame_equal(url_table, self.local_table)

`

58

``

-

59

``

`-

@tm.network

`

60

``

`-

def test_url_bz2_infer(self):

`

61

``

`-

url = self.base_url + '.bz2'

`

62

``

`-

url_table = read_table(url, compression="infer", engine="python")

`

63

``

`-

tm.assert_frame_equal(url_table, self.local_table)

`

64

``

-

65

``

`-

@tm.network

`

66

``

`-

def test_url_xz_infer(self):

`

67

``

`-

url = self.base_url + '.xz'

`

68

``

`-

url_table = read_table(url, compression="infer", engine="python")

`

69

``

`-

tm.assert_frame_equal(url_table, self.local_table)

`

70

``

-

71

``

`-

@tm.network

`

72

``

`-

def test_url_zip_infer(self):

`

73

``

`-

url = self.base_url + '.zip'

`

74

``

`-

url_table = read_table(url, compression="infer", engine="python")

`

``

44

`+

def check_table(url, compression, engine='python'):

`

``

45

`+

url_table = read_table(url, compression=compression, engine=engine)

`

75

46

`tm.assert_frame_equal(url_table, self.local_table)

`

76

47

``

77

48

``