-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest.py
140 lines (107 loc) · 4.04 KB
/
test.py
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
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
import unittest
import os, os.path, shutil
from gimms import Gimms, DataNotFoundError
from precursor_archive import PrecursorArchive
from test_util import *
tmp_dir = './tmp'
out_dir='./tmp'
year = '2021'
jd = '121'
class TestPrecursorArchive(unittest.TestCase):
def setUp(self):
test_root = get_test_dir(PRECURSORS_DIR)
if not os.path.exists(test_root):
os.mkdir(test_root)
link_archive(PRECURSORS_DIR, test_root)
self.archive = PrecursorArchive(root_dir=get_test_dir(PRECURSORS_DIR))
def test__update_all(self):
pass
def test__update_date(self):
pass
def test__update_24day_max(self):
pass
def test__update_8day_max(self):
pass
def test__get_24day_max_input_paths(self):
pass
def test__get_dir(self):
pass
def test__get_best_8day_max_path(self):
pass
def test__get_previous_date(self):
self.assertEqual(self.archive._get_previous_date('2021', '121'), ('2021', '113'))
self.assertEqual(self.archive._get_previous_date('2021', '001'), ('2020', '361'))
def test__check(self):
self.assertTrue(self.archive._check(year, jd))
self.assertTrue(self.archive._check(year, jd, is_maxmax=True))
self.assertFalse(self.archive._check('1800', jd))
def test__clean(self):
pass
def test__update_state(self):
pass
def test__walk_state(self):
pass
def test__init_state(self):
pass
def test__get_file_path(self):
path = self.archive._get_file_path(year, jd, is_maxmax=False, nrt=False, check=False)
self.assertTrue(os.path.exists(path))
with self.assertRaises(FileNotFoundError):
not_here = self.archive._get_file_path('1800', '002', check=True)
def test__filename_template(self):
pass
@unittest.skip('skipping api test')
class TestGimms(unittest.TestCase):
def setUp(self):
self.sats = [ 'Aqua', 'Terra' ]
self.api = Gimms()
def test__get(self):
std_path = self.api._get(year, jd, out_dir=out_dir, tmp_dir=tmp_dir, nrt=False, check=True)
self.assertTrue(os.path.exists(std_path))
os.remove(std_path)
def test__get_tiles(self):
for path in self.api._get_tiles(year, jd, sat_name='Aqua', tmp_dir=tmp_dir, nrt=False):
self.assertTrue('GMY' in path)
if os.path.exists(path):
os.remove(path)
def test__get_tile(self):
with self.assertRaises(DataNotFoundError):
nothing_here = self.api._get_tile(url='http://not.a.thing.abcdserfdsfs/NOTHING.IS.REAL.tif.gz', tmp_dir=tmp_dir)
x, y, sat, ptype = '06', '04', 'GMO', 'nrt'
url = self.api._get_tile_url(year, jd, x, y, sat, ptype)
path = self.api._get_tile(url=url, tmp_dir=tmp_dir)
self.assertTrue(sat in path)
if os.path.exists(path):
os.remove(path)
def test__get_tile_urls(self):
for sat_name in self.sats:
nrt_urls = list(self.api._get_tile_urls(year, jd, sat_name=sat_name, nrt=True))
std_urls = list(self.api._get_tile_urls(year, jd, sat_name=sat_name, nrt=False))
self.assertEqual(len(list(nrt_urls)), 26)
self.assertEqual(len(list(std_urls)), 26)
for url in nrt_urls:
self.assertTrue('nrt' in url)
self.assertTrue(year in url)
self.assertTrue(jd in url)
for url in std_urls:
self.assertTrue('std' in url)
self.assertTrue(year in url)
self.assertTrue(jd in url)
def test__filename_template(self):
sat = self.sats[0]
prefix = 'maxMODIS'
ext = 'img'
f_nrt = self.api._filename_template(year, jd, nrt=True, prefix=prefix, ext=ext)
f_std = self.api._filename_template(year, jd, nrt=False, prefix=prefix, ext=ext)
f_sat = self.api._filename_template(year, jd, sat_name='Aqua', nrt=False, prefix=prefix, ext=ext)
self.assertTrue('nrt' in f_nrt)
self.assertTrue('std' in f_std)
self.assertTrue(sat in f_sat)
self.assertTrue(f_nrt.startswith(prefix))
self.assertTrue(f_std.startswith(prefix))
self.assertTrue(f_sat.startswith(prefix))
self.assertTrue(f_nrt.endswith(ext))
self.assertTrue(f_std.endswith(ext))
self.assertTrue(f_sat.endswith(ext))
if __name__ == '__main__':
unittest.main()