4
4
5
5
import os
6
6
import tarfile
7
+ from requests .exceptions import ChunkedEncodingError
7
8
8
9
from ..core import HSAClass
9
10
10
- spire_chksum = [10243 , 10772 , 9029 , 11095 , 3875 , 3893 , 3903 , 3868 , 3888 , 3951 , 3905 , 3875 , 3887 , 3908 , 3871 , 3892 , 3894 , 3900 , 3870 , 3892 , 3938 , 3904 , 3893 , 3866 , 3893 , 3930 , 3901 , 3867 , 3893 , 3927 , 3903 , 3868 , 3892 , 3926 , 3904 , 3869 , 3889 , 3937 , 3899 , 3868 , 3887 , 3928 , 3912 , 3865 , 3887 , 3937 , 3899 , 3865 , 3891 , 3925 , 3911 , 3868 , 3883 , 3937 , 3902 , 3870 , 3893 , 3922 , 3914 , 3869 , 3886 , 3924 , 3903 , 3870 , 3889 , 3922 , 3903 , 3867 , 3889 , 3932 , 3902 , 3869 , 3892 , 3930 , 3900 , 3868 , 3892 , 3916 , 3910 , 3868 , 3889 , 3932 , 3907 , 3869 , 3892 , 3914 , 3900 , 3871 , 3884 , 3918 , 3903 , 3894 , 3874 , 3892 , 3906 , 3872 , 3889 , 3895 , 9724 , 10495 , 9293 , 11299 , 12132 , 10602 , 11283 , 9582 , 10568 , 11354 , 11228 , 11812 , 11006 , 11224 , 11382 , 10232 , 11049 , 11011 , 3862 , 9671 , 10844 , 10899 , 3946 , 3941 , 3953 , 3954 , 3948 , 3940 , 3954 , 3948 , 3945 , 9286 , 11197 , 3902 , 10137 , 11664 , 12038 , 3963 , 3948 , 11970 , 3867 , 11452 , 3908 , 3908 , 3894 , 3908 , 3908 , 3894 , 3885 , 3914 , 3876 , 11820 , 3958 , 3905 , 3963 , 3925 , 3974 , 3923 , 12241 , 3897 , 3900 , 12328 , 11911 , 3893 , 3885 , 3895 , 3895 , 3891 , 11970 , 12252 , 3899 , 12503 , 12135 , 11826 , 3899 , 3899 , 3912 , 3912 , 11530 , 11625 , 11850 , 10981 , 3872 , 3890 , 3896 , 3895 , 3867 , 3891 , 10561 , 10991 , 11209 , 3853 , 3871 , 3869 , 11372 , 10826 , 10995 , 3887 , 3882 , 3883 , 3879 , 3884 , 3883 , 3889 , 3883 , 3887 , 3876 , 3885 , 3883 , 3882 , 3888 , 3886 , 3882 , 3882 , 3882 , 3887 , 3885 , 3885 , 3884 , 3880 , 3881 , 3878 , 3882 , 3884 , 3879 , 3887 , 3882 , 3884 , 3877 , 3883 , 3882 , 3881 , 3882 , 3876 , 3879 , 3881 , 3881 , 3884 , 3882 , 3882 , 3882 , 3888 , 3883 , 3880 , 3880 , 3875 , 3880 , 3884 , 3883 , 3887 , 3880 , 3879 , 3874 , 3882 , 3879 , 3887 , 3876 , 3888 , 3888 , 3885 , 3885 , 3876 , 3880 , 3887 , 3877 , 3884 , 3886 , 3879 , 3879 , 3877 , 3880 , 3876 , 3889 , 3885 , 3886 , 3885 , 3879 , 3879 , 12424 , 10112 , 10885 , 3895 , 3922 , 3888 , 3900 , 3898 , 3919 , 3925 , 3930 , 3923 , 3932 , 3931 , 3917 , 3922 , 3917 , 3919 , 3935 , 3929 , 3923 , 3929 , 3924 , 3906 , 3918 , 3895 , 3892 , 11322 , 10879 , 3944 , 11338 , 3921 , 11009 , 10969 , 11352 , 10984 , 3944 , 11345 , 11333 , 11088 , 11331 , 11099 , 11324 , 11118 , 10591 , 11502 , 6291 ]
11
+ spire_chksum = [10233 , 10762 , 9019 , 10869 , 3944 , 11328 , 3921 , 10999 , 10959 , 11342 , 10974 , 3944 , 11335 , 11323 , 11078 , 11321 , 11089 , 11314 , 11108 , 6281 ]
11
12
12
- pacs_chksum = [10205 , 10752 , 8914 , 3869 , 9736 , 3925 , 3942 , 11201 , 10454 , 11393 , 10520 , 11080 , 3979 , 11121 , 3961 , 9745 , 10492 , 9317 , 11304 , 12025 , 10584 , 11295 , 9564 , 10585 , 11367 , 11229 , 11808 , 11039 , 11225 , 11411 , 10246 , 11066 , 11013 , 10158 , 3939 , 3927 , 3941 , 3936 , 3942 , 3925 , 9691 , 10381 , 10944 , 3990 , 10970 , 3969 , 9453 , 10802 , 3881 , 11926 , 3896 , 12528 , 3908 , 11898 , 3883 , 3894 , 3878 , 11231 , 3910 , 3885 , 3876 , 3913 , 3967 , 3970 , 3908 , 3903 , 3901 , 3958 , 3898 , 3870 , 3915 , 3878 , 3895 , 3901 , 3888 , 3880 , 3922 , 3881 , 3926 , 3883 , 12229 , 3958 , 3949 , 3936 , 3962 , 3949 , 3947 , 3868 , 13210 , 3885 , 3901 , 11463 , 3939 , 3967 , 3878 , 3900 , 3911 , 3947 , 3917 , 3940 , 3953 , 3904 , 3869 , 3874 , 3880 , 3893 , 3964 , 3980 , 3889 , 3871 , 3908 , 3882 , 3888 , 3895 , 3905 , 3889 , 13163 , 3879 , 11036 , 12469 , 3886 , 3887 , 3863 , 3921 , 3881 , 3911 , 3878 , 3921 , 11149 , 13032 , 3880 , 3881 , 3883 , 3883 , 3895 , 3899 , 3919 , 12498 , 3896 , 3942 , 3894 , 11407 , 3866 , 11716 , 3889 , 3890 , 3888 , 3873 , 9870 , 10738 , 3978 , 10759 , 3949 , 10720 , 3921 , 10390 , 3938 , 10365 , 11182 , 3905 , 10724 , 3943 , 10742 , 3942 , 10025 , 3924 , 3935 , 10388 , 11185 , 11206 , 6288 ]
13
+ pacs_chksum = [10208 , 10755 , 8917 , 10028 , 3924 , 3935 , 6291 ]
13
14
14
15
15
16
@pytest .mark .remote_data
16
17
class TestHSARemote :
17
18
tmp_dir = tempfile .TemporaryDirectory ()
19
+ retries = 2
20
+
21
+ def access_archive_with_retries (self , f , params ):
22
+ for _ in range (self .retries ):
23
+ try :
24
+ res = f (** params )
25
+ return res
26
+ except ChunkedEncodingError :
27
+ pass
28
+ return None
29
+
18
30
19
31
def test_download_data_observation_pacs (self ):
20
32
obs_id = "1342191813"
21
33
parameters = {'retrieval_type' : "OBSERVATION" ,
22
34
'observation_id' : obs_id ,
23
35
'instrument_name' : "PACS" ,
36
+ 'product_level' : 'LEVEL3' ,
37
+ 'cache' : False ,
24
38
'download_dir' : self .tmp_dir .name }
25
39
expected_res = os .path .join (self .tmp_dir .name , obs_id + ".tar" )
26
40
hsa = HSAClass ()
27
- res = hsa .download_data (** parameters )
41
+ #res = hsa.download_data(**parameters)
42
+ res = self .access_archive_with_retries (hsa .download_data , parameters )
43
+ if res == None :
44
+ pytest .skip ("Archive broke the connection {} times, unable to test" .format (self .retries ))
28
45
assert res == expected_res
29
46
assert os .path .isfile (res )
30
47
chksum = []
@@ -40,11 +57,16 @@ def test_download_data_observation_pacs_filename(self):
40
57
parameters = {'retrieval_type' : "OBSERVATION" ,
41
58
'observation_id' : obs_id ,
42
59
'instrument_name' : "PACS" ,
60
+ 'product_level' : 'LEVEL3' ,
43
61
'filename' : fname ,
62
+ 'cache' : False ,
44
63
'download_dir' : self .tmp_dir .name }
45
64
expected_res = os .path .join (self .tmp_dir .name , fname + ".tar" )
46
65
hsa = HSAClass ()
47
- res = hsa .download_data (** parameters )
66
+ #res = hsa.download_data(**parameters)
67
+ res = self .access_archive_with_retries (hsa .download_data , parameters )
68
+ if res == None :
69
+ pytest .skip ("Archive broke the connection {} times, unable to test" .format (self .retries ))
48
70
assert res == expected_res
49
71
assert os .path .isfile (res )
50
72
chksum = []
@@ -59,11 +81,16 @@ def test_download_data_observation_pacs_compressed(self):
59
81
parameters = {'retrieval_type' : "OBSERVATION" ,
60
82
'observation_id' : obs_id ,
61
83
'instrument_name' : "PACS" ,
84
+ 'product_level' : 'LEVEL3' ,
62
85
'compress' : 'true' ,
86
+ 'cache' : False ,
63
87
'download_dir' : self .tmp_dir .name }
64
88
expected_res = os .path .join (self .tmp_dir .name , obs_id + ".tgz" )
65
89
hsa = HSAClass ()
66
- res = hsa .download_data (** parameters )
90
+ #res = hsa.download_data(**parameters)
91
+ res = self .access_archive_with_retries (hsa .download_data , parameters )
92
+ if res == None :
93
+ pytest .skip ("Archive broke the connection {} times, unable to test" .format (self .retries ))
67
94
assert res == expected_res
68
95
assert os .path .isfile (res )
69
96
chksum = []
@@ -78,10 +105,15 @@ def test_download_data_observation_spire(self):
78
105
parameters = {'retrieval_type' : "OBSERVATION" ,
79
106
'observation_id' : obs_id ,
80
107
'instrument_name' : "SPIRE" ,
108
+ 'product_level' : 'LEVEL2' ,
109
+ 'cache' : False ,
81
110
'download_dir' : self .tmp_dir .name }
82
111
expected_res = os .path .join (self .tmp_dir .name , obs_id + ".tar" )
83
112
hsa = HSAClass ()
84
- res = hsa .download_data (** parameters )
113
+ #res = hsa.download_data(**parameters)
114
+ res = self .access_archive_with_retries (hsa .download_data , parameters )
115
+ if res == None :
116
+ pytest .skip ("Archive broke the connection {} times, unable to test" .format (self .retries ))
85
117
assert res == expected_res
86
118
assert os .path .isfile (res )
87
119
chksum = []
@@ -96,10 +128,14 @@ def test_download_data_postcard_pacs(self):
96
128
parameters = {'retrieval_type' : "POSTCARD" ,
97
129
'observation_id' : obs_id ,
98
130
'instrument_name' : "PACS" ,
131
+ 'cache' : False ,
99
132
'download_dir' : self .tmp_dir .name }
100
133
expected_res = os .path .join (self .tmp_dir .name , obs_id + ".jpg" )
101
134
hsa = HSAClass ()
102
- res = hsa .download_data (** parameters )
135
+ #res = hsa.download_data(**parameters)
136
+ res = self .access_archive_with_retries (hsa .download_data , parameters )
137
+ if res == None :
138
+ pytest .skip ("Archive broke the connection {} times, unable to test" .format (self .retries ))
103
139
assert res == expected_res
104
140
assert os .path .isfile (res )
105
141
os .remove (res )
@@ -111,10 +147,14 @@ def test_download_data_postcard_pacs_filename(self):
111
147
'observation_id' : obs_id ,
112
148
'instrument_name' : "PACS" ,
113
149
'filename' : fname ,
150
+ 'cache' : False ,
114
151
'download_dir' : self .tmp_dir .name }
115
152
expected_res = os .path .join (self .tmp_dir .name , fname + ".jpg" )
116
153
hsa = HSAClass ()
117
- res = hsa .download_data (** parameters )
154
+ #res = hsa.download_data(**parameters)
155
+ res = self .access_archive_with_retries (hsa .download_data , parameters )
156
+ if res == None :
157
+ pytest .skip ("Archive broke the connection {} times, unable to test" .format (self .retries ))
118
158
assert res == expected_res
119
159
assert os .path .isfile (res )
120
160
os .remove (res )
@@ -123,10 +163,15 @@ def test_get_observation(self):
123
163
obs_id = "1342191813"
124
164
parameters = {'observation_id' : obs_id ,
125
165
'instrument_name' : "PACS" ,
166
+ 'product_level' : 'LEVEL3' ,
167
+ 'cache' : False ,
126
168
'download_dir' : self .tmp_dir .name }
127
169
expected_res = os .path .join (self .tmp_dir .name , obs_id + ".tar" )
128
170
hsa = HSAClass ()
129
- res = hsa .get_observation (** parameters )
171
+ #res = hsa.get_observation(**parameters)
172
+ res = self .access_archive_with_retries (hsa .get_observation , parameters )
173
+ if res == None :
174
+ pytest .skip ("Archive broke the connection {} times, unable to test" .format (self .retries ))
130
175
assert res == expected_res
131
176
assert os .path .isfile (res )
132
177
chksum = []
@@ -140,10 +185,14 @@ def test_get_postcard(self):
140
185
obs_id = "1342191813"
141
186
parameters = {'observation_id' : obs_id ,
142
187
'instrument_name' : "PACS" ,
188
+ 'cache' : False ,
143
189
'download_dir' : self .tmp_dir .name }
144
190
expected_res = os .path .join (self .tmp_dir .name , obs_id + ".jpg" )
145
191
hsa = HSAClass ()
146
- res = hsa .get_postcard (** parameters )
192
+ #res = hsa.get_postcard(**parameters)
193
+ res = self .access_archive_with_retries (hsa .get_postcard , parameters )
194
+ if res == None :
195
+ pytest .skip ("Archive broke the connection {} times, unable to test" .format (self .retries ))
147
196
assert res == expected_res
148
197
assert os .path .isfile (res )
149
198
os .remove (res )
0 commit comments