File: twc_kbdi_test.py

package info (click to toggle)
python-ulmo 0.8.5%2Bdfsg1-1
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 1,056 kB
  • sloc: python: 6,550; makefile: 144
file content (122 lines) | stat: -rw-r--r-- 3,176 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
import glob
import os

import pandas

import ulmo

import test_util

DATA_DIR = os.path.join(os.path.dirname(__file__), 'files/twc/kbdi')
MOCKED_URLS = dict([
    ('http://twc.tamu.edu/weather_images/summ/' + os.path.basename(path), path)
    for path in glob.glob(os.path.join(DATA_DIR, '*'))
])

test_sets = [
    {
        'start': '2013-04-09',
        'end': '2013-04-09',
        'fips': 48507,
        'values': [{
            'county': 'ZAVALA',
            'date': '2013-04-09',
            'avg': 572,
            'max': 708,
            'min': 423,
        }]
    },
    {
        'start': '2013-04-09',
        'end': '2013-04-09',
        'fips': 48007,
        'values': [{
            'county':  'ARANSAS',
            'date': '2013-04-09',
            'avg': 497,
            'max': 561,
            'min': 439,
        }]
    },
    {
        'start': '2016-10-10',
        'end': '2016-10-10',
        'fips': 48007,
        'values': [{
            'county':  'ARANSAS',
            'date': '2016-10-10',
            'avg': 432,
            'max': 576,
            'min': 179,
        }]
    },
    {
        'start': '2016-10-10',
        'end': '2016-10-10',
        'fips': 48507,
        'values': [{
            'county':  'ZAVALA',
            'date': '2016-10-10',
            'avg': 381,
            'max': 574,
            'min': 127,
        }]
    },
]


def test_get_data_by_county():
    with test_util.temp_dir() as data_dir:
        for test_set in test_sets:
            with test_util.mocked_urls(MOCKED_URLS):
                data = ulmo.twc.kbdi.get_data(
                    county=test_set['fips'],
                    start=test_set['start'],
                    end=test_set['end'],
                    data_dir=data_dir,
                )
            assert len(data) == 1
            assert test_set['fips'] in data


def test_get_data():
    with test_util.temp_dir() as data_dir:
        for test_set in test_sets:
            with test_util.mocked_urls(MOCKED_URLS):
                data = ulmo.twc.kbdi.get_data(
                    start=test_set['start'],
                    end=test_set['end'],
                    data_dir=data_dir,
                )

            values = data.get(test_set['fips'], {})
            test_values = test_set['values']

            for test_value in test_values:
                assert test_value in values


def test_get_data_as_dataframe():
    with test_util.temp_dir() as data_dir:
        with test_util.mocked_urls(MOCKED_URLS):
            data = ulmo.twc.kbdi.get_data(
                start='2013-04-09',
                end='2013-04-09',
                as_dataframe=True,
                data_dir=data_dir,
            )

            assert isinstance(data, pandas.DataFrame)


def test_data_dir_used():
    with test_util.temp_dir() as data_dir:
        with test_util.mocked_urls(MOCKED_URLS):
            ulmo.twc.kbdi.get_data(
                start='2013-04-09',
                end='2013-04-11',
                as_dataframe=True,
                data_dir=data_dir,
            )
        files_glob = glob.glob(os.path.join(data_dir, '*'))
        assert len(files_glob) == 3