roc-film 1.13.4__py3-none-any.whl → 1.14.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- roc/__init__.py +2 -1
- roc/film/__init__.py +2 -2
- roc/film/commands.py +372 -323
- roc/film/config/__init__.py +0 -1
- roc/film/constants.py +101 -65
- roc/film/descriptor.json +126 -95
- roc/film/exceptions.py +28 -27
- roc/film/tasks/__init__.py +16 -16
- roc/film/tasks/cat_solo_hk.py +86 -74
- roc/film/tasks/cdf_postpro.py +438 -309
- roc/film/tasks/check_dds.py +39 -45
- roc/film/tasks/db_to_anc_bia_sweep_table.py +381 -0
- roc/film/tasks/dds_to_l0.py +232 -180
- roc/film/tasks/export_solo_coord.py +147 -0
- roc/film/tasks/file_handler.py +91 -75
- roc/film/tasks/l0_to_hk.py +117 -103
- roc/film/tasks/l0_to_l1_bia_current.py +38 -30
- roc/film/tasks/l0_to_l1_bia_sweep.py +417 -329
- roc/film/tasks/l0_to_l1_sbm.py +250 -208
- roc/film/tasks/l0_to_l1_surv.py +185 -130
- roc/film/tasks/make_daily_tm.py +40 -37
- roc/film/tasks/merge_tcreport.py +77 -71
- roc/film/tasks/merge_tmraw.py +102 -89
- roc/film/tasks/parse_dds_xml.py +21 -20
- roc/film/tasks/set_l0_utc.py +51 -49
- roc/film/tests/cdf_compare.py +565 -0
- roc/film/tests/hdf5_compare.py +84 -62
- roc/film/tests/test_dds_to_l0.py +93 -51
- roc/film/tests/test_dds_to_tc.py +8 -11
- roc/film/tests/test_dds_to_tm.py +8 -10
- roc/film/tests/test_film.py +161 -116
- roc/film/tests/test_l0_to_hk.py +64 -36
- roc/film/tests/test_l0_to_l1_bia.py +10 -14
- roc/film/tests/test_l0_to_l1_sbm.py +14 -19
- roc/film/tests/test_l0_to_l1_surv.py +68 -41
- roc/film/tests/test_metadata.py +21 -20
- roc/film/tests/tests.py +743 -396
- roc/film/tools/__init__.py +5 -5
- roc/film/tools/dataset_tasks.py +34 -2
- roc/film/tools/file_helpers.py +390 -269
- roc/film/tools/l0.py +402 -324
- roc/film/tools/metadata.py +147 -127
- roc/film/tools/skeleton.py +12 -17
- roc/film/tools/tools.py +109 -92
- roc/film/tools/xlsx2skt.py +161 -139
- {roc_film-1.13.4.dist-info → roc_film-1.14.0.dist-info}/LICENSE +127 -125
- roc_film-1.14.0.dist-info/METADATA +60 -0
- roc_film-1.14.0.dist-info/RECORD +50 -0
- {roc_film-1.13.4.dist-info → roc_film-1.14.0.dist-info}/WHEEL +1 -1
- roc/film/tasks/l0_to_anc_bia_sweep_table.py +0 -348
- roc_film-1.13.4.dist-info/METADATA +0 -120
- roc_film-1.13.4.dist-info/RECORD +0 -48
roc/film/tests/hdf5_compare.py
CHANGED
@@ -11,6 +11,7 @@ import sys
|
|
11
11
|
import h5py
|
12
12
|
import numpy
|
13
13
|
|
14
|
+
|
14
15
|
class Hdf5Reader:
|
15
16
|
def __init__(self, logger=logging):
|
16
17
|
self.logger = logger
|
@@ -22,7 +23,7 @@ class Hdf5Reader:
|
|
22
23
|
:return: HDF5 file
|
23
24
|
"""
|
24
25
|
try:
|
25
|
-
hdf5_file = h5py.File(filepath,
|
26
|
+
hdf5_file = h5py.File(filepath, "r")
|
26
27
|
return hdf5_file
|
27
28
|
except IOError:
|
28
29
|
self.logger.error("Unable to open file '%s'" % filepath)
|
@@ -46,7 +47,7 @@ class Hdf5Reader:
|
|
46
47
|
:return: Summary of the group
|
47
48
|
"""
|
48
49
|
|
49
|
-
return {
|
50
|
+
return {"attr": self.read_attributes(hval), "htype": "group"}
|
50
51
|
|
51
52
|
def read_data(self, hval):
|
52
53
|
"""
|
@@ -55,10 +56,12 @@ class Hdf5Reader:
|
|
55
56
|
:return: Summary of the dataset
|
56
57
|
"""
|
57
58
|
data_value = hval[()] # hval.value has been deprecated
|
58
|
-
return {
|
59
|
-
|
60
|
-
|
61
|
-
|
59
|
+
return {
|
60
|
+
"attr": self.read_attributes(hval),
|
61
|
+
"value": data_value,
|
62
|
+
"htype": "dataset",
|
63
|
+
"dtype": type(data_value),
|
64
|
+
}
|
62
65
|
|
63
66
|
#
|
64
67
|
def evaluate_group(self, path, grp):
|
@@ -76,13 +79,20 @@ class Hdf5Reader:
|
|
76
79
|
elif isinstance(v, h5py.Group):
|
77
80
|
result[k] = self.read_group(v)
|
78
81
|
else:
|
79
|
-
raise Exception(
|
82
|
+
raise Exception("Unknown h5py type: %s (%s -- %s)" % (type(v), path, k))
|
80
83
|
return result
|
81
84
|
|
82
85
|
|
83
86
|
class Hdf5Diff(Hdf5Reader):
|
84
|
-
def __init__(
|
85
|
-
|
87
|
+
def __init__(
|
88
|
+
self,
|
89
|
+
filepath1,
|
90
|
+
filepath2,
|
91
|
+
group_path1,
|
92
|
+
group_path2,
|
93
|
+
exclude_attr=[],
|
94
|
+
logger=logging,
|
95
|
+
):
|
86
96
|
# set up the logger
|
87
97
|
super().__init__(logger)
|
88
98
|
|
@@ -100,103 +110,108 @@ class Hdf5Diff(Hdf5Reader):
|
|
100
110
|
|
101
111
|
def compare_dataset(self, path, name, dataset1, dataset2):
|
102
112
|
# compare dtypes
|
103
|
-
if dataset1[name][
|
104
|
-
d1 = dataset1[name][
|
105
|
-
d2 = dataset2[name][
|
106
|
-
self.register_diff(
|
113
|
+
if dataset1[name]["dtype"] != dataset2[name]["dtype"]:
|
114
|
+
d1 = dataset1[name]["dtype"]
|
115
|
+
d2 = dataset2[name]["dtype"]
|
116
|
+
self.register_diff(
|
117
|
+
path,
|
118
|
+
"DIFF_DTYPE",
|
119
|
+
(d1, d2),
|
120
|
+
)
|
107
121
|
|
108
122
|
# compare values
|
109
|
-
v1 = dataset1[name][
|
110
|
-
v2 = dataset2[name][
|
123
|
+
v1 = dataset1[name]["value"]
|
124
|
+
v2 = dataset2[name]["value"]
|
111
125
|
try:
|
112
126
|
if not numpy.allclose(v1, v2, equal_nan=True):
|
113
127
|
raise ValueError
|
114
128
|
except ValueError:
|
115
|
-
self.register_diff(path + name,
|
129
|
+
self.register_diff(path + name, "DIFF_DATA", (v1, v2))
|
116
130
|
except TypeError:
|
117
131
|
# Try to compare row by row (only if same length)
|
118
132
|
if v1.shape != v2.shape:
|
119
|
-
self.register_diff(path + name,
|
133
|
+
self.register_diff(path + name, "DIFF_DATA", (v1, v2))
|
120
134
|
else:
|
121
135
|
for i in range(v1.shape[0]):
|
122
136
|
if len(numpy.array(v1[i]).shape) > 0:
|
123
137
|
if any(v1[i] != v2[i]):
|
124
|
-
self.register_diff(path + name,
|
138
|
+
self.register_diff(path + name, "DIFF_DATA", (v1, v2))
|
125
139
|
break
|
126
140
|
else:
|
127
141
|
if v1[i] != v2[i]:
|
128
|
-
self.register_diff(path + name,
|
142
|
+
self.register_diff(path + name, "DIFF_DATA", (v1, v2))
|
129
143
|
break
|
130
|
-
except:
|
131
|
-
|
144
|
+
except Exception as e:
|
145
|
+
self.logger.exception(f"Datasets {path + name} cannot be compared:\n{e}")
|
146
|
+
raise
|
132
147
|
else:
|
133
148
|
pass
|
134
149
|
|
135
150
|
# compare attributes
|
136
|
-
for k in dataset1[name][
|
151
|
+
for k in dataset1[name]["attr"]:
|
137
152
|
if self.exclude_attr and k in self.exclude_attr:
|
138
153
|
continue
|
139
|
-
if k not in dataset2[name][
|
140
|
-
self.register_diff(path + name,
|
154
|
+
if k not in dataset2[name]["attr"]:
|
155
|
+
self.register_diff(path + name, "DIFF_UNIQ_ATTR", (k,), file_id=1)
|
141
156
|
|
142
|
-
for k in dataset2[name][
|
157
|
+
for k in dataset2[name]["attr"]:
|
143
158
|
if self.exclude_attr and k in self.exclude_attr:
|
144
159
|
continue
|
145
|
-
if k not in dataset1[name][
|
146
|
-
self.register_diff(path + name,
|
160
|
+
if k not in dataset1[name]["attr"]:
|
161
|
+
self.register_diff(path + name, "DIFF_UNIQ_ATTR", (k,), file_id=2)
|
147
162
|
|
148
|
-
for k in dataset1[name][
|
163
|
+
for k in dataset1[name]["attr"]:
|
149
164
|
if self.exclude_attr and k in self.exclude_attr:
|
150
165
|
continue
|
151
|
-
if k in dataset2[name][
|
152
|
-
v1 = dataset1[name][
|
153
|
-
v2 = dataset2[name][
|
166
|
+
if k in dataset2[name]["attr"]:
|
167
|
+
v1 = dataset1[name]["attr"][k]
|
168
|
+
v2 = dataset2[name]["attr"][k]
|
154
169
|
if v1 != v2:
|
155
|
-
self.register_diff(path + name,
|
170
|
+
self.register_diff(path + name, "DIFF_ATTR_DTYPE", (k, v1, v2))
|
156
171
|
|
157
172
|
def compare_group(self, path, name, desc1, desc2):
|
158
|
-
|
159
173
|
# compare attributes
|
160
|
-
for k in desc1[name][
|
174
|
+
for k in desc1[name]["attr"]:
|
161
175
|
if self.exclude_attr and k in self.exclude_attr:
|
162
176
|
continue
|
163
|
-
if k not in desc2[name][
|
164
|
-
self.register_diff(path + name,
|
165
|
-
for k in desc2[name][
|
177
|
+
if k not in desc2[name]["attr"]:
|
178
|
+
self.register_diff(path + name, "DIFF_UNIQ_ATTR", (k,), file_id=1)
|
179
|
+
for k in desc2[name]["attr"]:
|
166
180
|
if self.exclude_attr and k in self.exclude_attr:
|
167
181
|
continue
|
168
|
-
if k not in desc1[name][
|
169
|
-
self.register_diff(path + name,
|
182
|
+
if k not in desc1[name]["attr"]:
|
183
|
+
self.register_diff(path + name, "DIFF_UNIQ_ATTR", (k,), file_id=2)
|
170
184
|
|
171
185
|
def register_diff(self, path, error_code, values, file_id=None):
|
172
|
-
|
173
186
|
error_messages = {
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
187
|
+
"DIFF_OBJECTS": "[{path}] Different element types: {values[0]} and {values[1]}",
|
188
|
+
"DIFF_UNIQUE": "[{path}] Element {values[0]} only in file {file_id}",
|
189
|
+
"DIFF_UNIQ_ATTR": "[{path}] Attribute {values[0]} only in file {file_id}",
|
190
|
+
"DIFF_ATTR_DTYPE": "[{path}] Attribute {values[0]} has different type: {values[1]} and {values[2]}",
|
191
|
+
"DIFF_DATA": "[{path}] Different data: {values[0]} and {values[1]}",
|
192
|
+
"DIFF_DTYPE": "[{path}] Different dtypes: {values[0]} and {values[1]}",
|
180
193
|
}
|
181
194
|
|
182
195
|
error_message = error_messages.get(error_code, None)
|
183
196
|
|
184
197
|
if error_message is None:
|
185
|
-
raise Exception(
|
198
|
+
raise Exception("Unknown error_code %s" % (error_code,))
|
186
199
|
|
187
|
-
content = {
|
200
|
+
content = {"path": path, "values": values, "error_code": error_code}
|
188
201
|
|
189
202
|
if file_id is not None:
|
190
|
-
content[
|
203
|
+
content["file_id"] = file_id
|
191
204
|
|
192
205
|
# store the error
|
193
206
|
self.diff_list.append(content)
|
194
207
|
|
195
208
|
# and send logs
|
196
|
-
self.logger.info(
|
209
|
+
self.logger.info(
|
210
|
+
error_message.format(path=path, values=values, file_id=file_id)
|
211
|
+
)
|
197
212
|
|
198
|
-
def diff_groups(self, grp1, grp2, path=
|
199
|
-
self.logger.debug(
|
213
|
+
def diff_groups(self, grp1, grp2, path="/"):
|
214
|
+
self.logger.debug("Examining " + path)
|
200
215
|
|
201
216
|
# get the groups content
|
202
217
|
desc1 = self.evaluate_group(path, grp1)
|
@@ -210,37 +225,44 @@ class Hdf5Diff(Hdf5Reader):
|
|
210
225
|
if k in desc2:
|
211
226
|
common.append(k)
|
212
227
|
else:
|
213
|
-
self.register_diff(path,
|
228
|
+
self.register_diff(path, "DIFF_UNIQUE", (k,), file_id=1)
|
214
229
|
|
215
230
|
# get the keys specific to the group 2
|
216
231
|
for k in desc2:
|
217
232
|
if k not in desc1:
|
218
|
-
self.register_diff(path,
|
233
|
+
self.register_diff(path, "DIFF_UNIQUE", (k,), file_id=2)
|
219
234
|
|
220
235
|
# loop over common keys
|
221
236
|
for name in common:
|
222
|
-
self.logger.debug(
|
237
|
+
self.logger.debug("\t" + name)
|
223
238
|
|
224
239
|
# compare types
|
225
|
-
h1 = desc1[name][
|
226
|
-
h2 = desc2[name][
|
240
|
+
h1 = desc1[name]["htype"]
|
241
|
+
h2 = desc2[name]["htype"]
|
227
242
|
if h1 != h2:
|
228
|
-
self.register_diff(
|
243
|
+
self.register_diff(
|
244
|
+
path,
|
245
|
+
"DIFF_OBJECTS",
|
246
|
+
(h1, h2),
|
247
|
+
)
|
229
248
|
# different hdf5 types -- don't try to compare further
|
230
249
|
continue
|
231
250
|
|
232
251
|
# call the appropriate method(s) depending on the node type
|
233
|
-
if desc1[name][
|
252
|
+
if desc1[name]["htype"] == "dataset":
|
234
253
|
# handle dataset
|
235
254
|
self.compare_dataset(path, name, desc1, desc2)
|
236
|
-
elif desc1[name][
|
255
|
+
elif desc1[name]["htype"] == "group":
|
237
256
|
# handle groups
|
238
257
|
self.compare_group(path, name, desc1, desc2)
|
239
258
|
# recurse into subgroup
|
240
|
-
self.diff_groups(grp1[name], grp2[name], path=path + name +
|
259
|
+
self.diff_groups(grp1[name], grp2[name], path=path + name + "/")
|
241
260
|
else:
|
242
261
|
# handle unrecognized hdf5 objects
|
243
|
-
self.logger.warning(
|
262
|
+
self.logger.warning(
|
263
|
+
"Element is not a recognized type (%s) and isn't being evaluated"
|
264
|
+
% h1
|
265
|
+
)
|
244
266
|
continue
|
245
267
|
|
246
268
|
def diff_files(self):
|
roc/film/tests/test_dds_to_l0.py
CHANGED
@@ -7,7 +7,6 @@ Test tm_to_l0 command of the roc.film plugin.
|
|
7
7
|
|
8
8
|
import filecmp
|
9
9
|
import os
|
10
|
-
import tempfile
|
11
10
|
from pathlib import Path
|
12
11
|
from pprint import pformat
|
13
12
|
|
@@ -45,16 +44,16 @@ class TestDdsToL0(CommandTestCase):
|
|
45
44
|
# clear the files produced during test
|
46
45
|
shutil.rmtree(self.output_dir_path)
|
47
46
|
|
48
|
-
|
47
|
+
# @pytest.mark.skip()
|
49
48
|
@pytest.mark.parametrize(
|
50
|
-
|
51
|
-
[(
|
49
|
+
"date_to_test,idb_source,idb_version",
|
50
|
+
[("20220501", "MIB", "20200131")],
|
52
51
|
)
|
53
52
|
def test_dds_to_l0(self, date_to_test, idb_source, idb_version):
|
54
53
|
from poppy.core.conf import Settings
|
55
54
|
|
56
55
|
# Name of the command to test
|
57
|
-
cmd =
|
56
|
+
cmd = "dds_to_l0"
|
58
57
|
|
59
58
|
# Retrieve data for current test
|
60
59
|
test_data_path = FilmTest().get_test_data(cmd, extract=True)
|
@@ -64,89 +63,132 @@ class TestDdsToL0(CommandTestCase):
|
|
64
63
|
# Initialize inputs and expected outputs
|
65
64
|
input_dir_path, inputs = FilmTest.get_inputs(test_data_dir)
|
66
65
|
if not inputs:
|
67
|
-
raise FileNotFoundError(f
|
68
|
-
expected_output_dir_path, expected_outputs = FilmTest.get_expected_outputs(
|
66
|
+
raise FileNotFoundError(f"No input found in {test_data_dir}!")
|
67
|
+
expected_output_dir_path, expected_outputs = FilmTest.get_expected_outputs(
|
68
|
+
test_data_dir
|
69
|
+
)
|
69
70
|
if not expected_outputs:
|
70
|
-
raise FileNotFoundError(f
|
71
|
+
raise FileNotFoundError(f"No expected output found in {test_data_dir}!")
|
71
72
|
|
72
73
|
# Initialize directory where files produced during test will be saved
|
73
|
-
output_dir_path = os.path.join(test_data_dir,
|
74
|
+
output_dir_path = os.path.join(test_data_dir, "output")
|
74
75
|
self.output_dir_path = output_dir_path
|
75
76
|
|
76
77
|
# Check that SPICE kernels are present in ./data/spice_kernels folder
|
77
78
|
spice_kernels_dir = FilmTest.get_spice_kernel_dir()
|
78
79
|
if not os.path.isdir(spice_kernels_dir):
|
79
|
-
raise FileNotFoundError(
|
80
|
+
raise FileNotFoundError(
|
81
|
+
f"No SPICE kernel set found in {spice_kernels_dir}!"
|
82
|
+
)
|
80
83
|
|
81
84
|
# length in scos header bytes to remove from input binary TM packets
|
82
|
-
scos_header_byte_length =
|
85
|
+
scos_header_byte_length = "0"
|
83
86
|
|
84
87
|
# Split inputs between two lists containing RPW TM and TC files respectively
|
85
|
-
tm_inputs =
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
88
|
+
tm_inputs = " ".join(
|
89
|
+
[
|
90
|
+
os.path.join(input_dir_path, input_file)
|
91
|
+
for input_file in inputs
|
92
|
+
if os.path.basename(input_file).startswith("solo_TM_")
|
93
|
+
]
|
94
|
+
)
|
95
|
+
tc_inputs = " ".join(
|
96
|
+
[
|
97
|
+
os.path.join(input_dir_path, input_file)
|
98
|
+
for input_file in inputs
|
99
|
+
if os.path.basename(input_file).startswith("solo_TC_")
|
100
|
+
]
|
101
|
+
)
|
95
102
|
|
96
103
|
# initialize the main command
|
97
104
|
# Make sure that start-time/end_time keyword values are consistent with input DDS files
|
98
|
-
command_to_test =
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
105
|
+
command_to_test = " ".join(
|
106
|
+
[
|
107
|
+
"pop",
|
108
|
+
"film",
|
109
|
+
"--force",
|
110
|
+
"--idb-version",
|
111
|
+
idb_version,
|
112
|
+
"--idb-source",
|
113
|
+
idb_source,
|
114
|
+
"--scos-header",
|
115
|
+
scos_header_byte_length,
|
116
|
+
"--cdag",
|
117
|
+
cmd,
|
118
|
+
date_to_test,
|
119
|
+
"--dds-tmraw-xml",
|
120
|
+
tm_inputs,
|
121
|
+
"--dds-tcreport-xml",
|
122
|
+
tc_inputs,
|
123
|
+
"--output-dir",
|
124
|
+
output_dir_path,
|
125
|
+
"-ll",
|
126
|
+
"INFO",
|
127
|
+
]
|
128
|
+
)
|
109
129
|
|
110
130
|
# define the required plugins
|
111
|
-
plugin_list = [
|
131
|
+
plugin_list = [
|
132
|
+
"poppy.pop",
|
133
|
+
"roc.idb",
|
134
|
+
"roc.rpl",
|
135
|
+
"roc.rap",
|
136
|
+
"roc.dingo",
|
137
|
+
"roc.film",
|
138
|
+
]
|
112
139
|
#
|
113
140
|
# run the command
|
114
141
|
# force the value of the plugin list
|
115
|
-
with mock.patch.object(
|
116
|
-
|
117
|
-
|
142
|
+
with mock.patch.object(
|
143
|
+
Settings,
|
144
|
+
"configure",
|
145
|
+
autospec=True,
|
146
|
+
side_effect=self.mock_configure_settings(
|
147
|
+
dictionary={"PLUGINS": plugin_list}
|
148
|
+
),
|
149
|
+
):
|
118
150
|
# Load IDB in the database
|
119
151
|
FilmTest.load_idb(self, idb_version=idb_version)
|
120
152
|
|
121
153
|
# Run the command to test
|
122
|
-
logger.info(f
|
154
|
+
logger.info(f"Running {command_to_test}")
|
123
155
|
self.run_command(shlex.split(command_to_test))
|
124
156
|
|
125
157
|
# compare directory content
|
126
|
-
dirs_cmp = filecmp.dircmp(output_dir_path,
|
127
|
-
expected_output_dir_path)
|
158
|
+
dirs_cmp = filecmp.dircmp(output_dir_path, expected_output_dir_path)
|
128
159
|
|
129
160
|
dirs_cmp.report()
|
130
161
|
# ensure that we have the same files in both directories
|
131
162
|
assert (len(dirs_cmp.left_only) == 0) and (len(dirs_cmp.right_only) == 0)
|
132
163
|
|
133
164
|
# ensure the name of the two expected and generated L0 files is the same
|
134
|
-
produced_l0_path = os.path.join(
|
135
|
-
|
165
|
+
produced_l0_path = os.path.join(
|
166
|
+
output_dir_path, f"solo_L0_rpw-cdag_{date_to_test}_V01.h5"
|
167
|
+
)
|
168
|
+
expected_l0_path = os.path.join(
|
169
|
+
expected_output_dir_path, f"solo_L0_rpw-cdag_{date_to_test}_V01.h5"
|
170
|
+
)
|
136
171
|
assert Path(produced_l0_path).name == Path(expected_l0_path).name
|
137
172
|
|
138
173
|
# Compare content of the two L0 files
|
139
174
|
attributes_to_ignore = [
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
result = Hdf5Diff(
|
148
|
-
|
175
|
+
"File_ID",
|
176
|
+
"Generation_date",
|
177
|
+
"Pipeline_version",
|
178
|
+
"Pipeline_name",
|
179
|
+
"Software_version",
|
180
|
+
"IDB_version",
|
181
|
+
]
|
182
|
+
result = Hdf5Diff(
|
183
|
+
produced_l0_path,
|
184
|
+
expected_l0_path,
|
185
|
+
"/",
|
186
|
+
"/",
|
187
|
+
exclude_attr=attributes_to_ignore,
|
188
|
+
).diff_files()
|
149
189
|
if result:
|
150
|
-
logger.error(
|
190
|
+
logger.error(
|
191
|
+
f"Differences between expected output and the command output: {pformat(result)}"
|
192
|
+
)
|
151
193
|
|
152
194
|
assert result == []
|
roc/film/tests/test_dds_to_tc.py
CHANGED
@@ -5,22 +5,16 @@
|
|
5
5
|
Test dds_to_tc command of the roc.film plugin.
|
6
6
|
"""
|
7
7
|
|
8
|
-
import filecmp
|
9
|
-
import os
|
10
8
|
import tempfile
|
11
|
-
from pprint import pformat
|
12
9
|
|
13
10
|
import pytest
|
14
11
|
import shutil
|
15
|
-
import unittest.mock as mock
|
16
12
|
|
17
|
-
from poppy.core.logger import logger
|
18
13
|
from poppy.core.test import CommandTestCase
|
19
14
|
from roc.film.tests.test_film import FilmTest
|
20
15
|
|
21
16
|
|
22
17
|
class TestDdsToTc(CommandTestCase):
|
23
|
-
|
24
18
|
film = FilmTest()
|
25
19
|
|
26
20
|
def setup_method(self, method):
|
@@ -44,12 +38,15 @@ class TestDdsToTc(CommandTestCase):
|
|
44
38
|
# clear the downloaded files
|
45
39
|
shutil.rmtree(self.tmp_dir_path)
|
46
40
|
|
47
|
-
@pytest.mark.skip(reason=
|
48
|
-
@pytest.mark.parametrize(
|
49
|
-
|
50
|
-
|
41
|
+
@pytest.mark.skip(reason="Not working")
|
42
|
+
@pytest.mark.parametrize(
|
43
|
+
"idb_source,idb_version",
|
44
|
+
[
|
45
|
+
("MIB", "20200131"),
|
46
|
+
],
|
47
|
+
)
|
51
48
|
def test_classify_tcreport(self, idb_source, idb_version):
|
52
|
-
|
49
|
+
pass
|
53
50
|
|
54
51
|
# input_dir_path, inputs = self.get_inputs('classify_tcreport')
|
55
52
|
# expected_output_dir_path, expected_outputs = self.get_expected_outputs('classify_tcreport')
|
roc/film/tests/test_dds_to_tm.py
CHANGED
@@ -5,16 +5,11 @@
|
|
5
5
|
Test dds_to_tm command of the roc.film plugin.
|
6
6
|
"""
|
7
7
|
|
8
|
-
import filecmp
|
9
|
-
import os
|
10
8
|
import tempfile
|
11
|
-
from pprint import pformat
|
12
9
|
|
13
10
|
import pytest
|
14
11
|
import shutil
|
15
|
-
import unittest.mock as mock
|
16
12
|
|
17
|
-
from poppy.core.logger import logger
|
18
13
|
from poppy.core.test import CommandTestCase
|
19
14
|
from roc.film.tests.test_film import FilmTest
|
20
15
|
|
@@ -43,12 +38,15 @@ class TestDdsToTm(CommandTestCase):
|
|
43
38
|
# clear the downloaded files
|
44
39
|
shutil.rmtree(self.tmp_dir_path)
|
45
40
|
|
46
|
-
@pytest.mark.skip(reason=
|
47
|
-
@pytest.mark.parametrize(
|
48
|
-
|
49
|
-
|
41
|
+
@pytest.mark.skip(reason="Not working")
|
42
|
+
@pytest.mark.parametrize(
|
43
|
+
"idb_source,idb_version",
|
44
|
+
[
|
45
|
+
("MIB", "20200131"),
|
46
|
+
],
|
47
|
+
)
|
50
48
|
def test_classify_tmraw(self, idb_source, idb_version):
|
51
|
-
|
49
|
+
pass
|
52
50
|
|
53
51
|
# input_dir_path, inputs = self.get_inputs('classify_tmraw')
|
54
52
|
# expected_output_dir_path, expected_outputs = self.get_expected_outputs('classify_tmraw')
|