Skip to content

Commit 75c6883

Browse files
committed
update inline with recent changes
1 parent 80940f0 commit 75c6883

File tree

1 file changed

+110
-46
lines changed

1 file changed

+110
-46
lines changed

hypernets_processor/test/test_functions.py

Lines changed: 110 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@
77
from hypernets_processor.context import Context
88
from hypernets_processor.utils.config import read_config_file
99
from hypernets_processor.utils.logging import configure_logging
10+
from hypernets_processor.utils.config import (
11+
PROCESSOR_CONFIG_PATH,
12+
JOB_CONFIG_TEMPLATE_PATH,
13+
)
1014
from hypernets_processor.utils.paths import relative_path
1115
import datetime
1216
import os
@@ -23,13 +27,6 @@
2327
__email__ = "sam.hunt@npl.co.uk"
2428
__status__ = "Development"
2529

26-
this_directory = os.path.dirname(__file__)
27-
TEMPLATE_PROCESSOR_CONFIG_PATH = relative_path(
28-
"../etc/processor.config", this_directory
29-
)
30-
TEMPLATE_JOB_CONFIG_PATH = relative_path(
31-
"../etc/job_template.config", this_directory
32-
)
3330

3431
TEST_DS_DIM_SIZES_W = {"wavelength": 271, "series": 3, "scan": 10, "sequence": 1}
3532

@@ -68,7 +65,48 @@ def setup_test_anomoly_db(url):
6865
del db
6966

7067

71-
def setup_test_processor_config(archive_directory=None, metadata_db_url=None):
68+
def setup_test_archive_db(url):
69+
"""
70+
Creates archive_db for testing, populated with test data
71+
72+
:type url: str
73+
:param url: database url
74+
"""
75+
76+
db = HypernetsDBBuilder.create_db_template(url, "archive")
77+
78+
db["products"].insert(
79+
dict(
80+
product_name="new_product1",
81+
raw_product_name="SEQ20200311T112230",
82+
site="site",
83+
)
84+
)
85+
db["products"].insert(
86+
dict(
87+
product_name="new_product2",
88+
raw_product_name="SEQ20200311T112330",
89+
site="site",
90+
)
91+
)
92+
db["products"].insert(
93+
dict(
94+
product_name="new_product3",
95+
raw_product_name="SEQ20200311T112430",
96+
site="site",
97+
)
98+
)
99+
100+
db.commit()
101+
del db
102+
103+
104+
def setup_test_processor_config(
105+
archive_directory=None,
106+
metadata_db_url=None,
107+
archive_db_url=None,
108+
anomoly_db_url=None,
109+
):
72110
"""
73111
Creates processor_config for testing
74112
@@ -78,18 +116,32 @@ def setup_test_processor_config(archive_directory=None, metadata_db_url=None):
78116
:type metadata_db_url: str
79117
:param metadata_db_url: (optional) metadata db url, set if provided else default value used
80118
119+
:type archive_db_url: str
120+
:param archive_db_url: (optional) archive db url, set if provided else default value used
121+
122+
:type anomoly_db_url: str
123+
:param anomoly_db_url: (optional) anomoly db url, set if provided else default value used
124+
81125
:return: test processor configuration information
82126
:rtype: configparser.RawConfigParser
83127
"""
84128

85-
processor_config = read_config_file(TEMPLATE_PROCESSOR_CONFIG_PATH)
129+
processor_config = read_config_file(PROCESSOR_CONFIG_PATH)
86130

87131
processor_config["Processor"]["version"] = "0.0"
88132

89-
processor_config["Input"]["metadata_db_url"] = (
133+
processor_config["Databases"]["metadata_db_url"] = (
90134
metadata_db_url if metadata_db_url is not None else "sqlite:///metadata.db"
91135
)
92136

137+
processor_config["Databases"]["anomoly_db_url"] = (
138+
anomoly_db_url if anomoly_db_url is not None else "sqlite:///anomoly.db"
139+
)
140+
141+
processor_config["Databases"]["archive_db_url"] = (
142+
archive_db_url if archive_db_url is not None else "sqlite:///archive.db"
143+
)
144+
93145
processor_config["Output"]["archive_directory"] = (
94146
archive_directory if archive_directory is not None else "out"
95147
)
@@ -99,36 +151,24 @@ def setup_test_processor_config(archive_directory=None, metadata_db_url=None):
99151
return processor_config
100152

101153

102-
def setup_test_job_config(raw_data_directory=None, anomoly_db_url=None):
154+
def setup_test_job_config(raw_data_directory=None):
103155
"""
104156
Creates processor_config for testing
105157
106158
:type raw_data_directory: str
107159
:param raw_data_directory: (optional) raw data directory, set if provided else default value used
108160
109-
:type anomoly_db_url: str
110-
:param anomoly_db_url: (opitional) anomoly db url, set if provided
111-
112161
:return: test job configuration information
113162
:rtype: configparser.RawConfigParser
114163
"""
115-
job_config = read_config_file(TEMPLATE_JOB_CONFIG_PATH)
164+
job_config = read_config_file(JOB_CONFIG_TEMPLATE_PATH)
116165

117-
job_config["Info"]["network"] = "land"
118-
job_config["Info"]["site"] = "site"
166+
job_config["Job"]["network"] = "land"
167+
job_config["Job"]["site"] = "site"
119168

120169
job_config["Input"]["raw_data_directory"] = (
121170
raw_data_directory if raw_data_directory is not None else "data"
122171
)
123-
job_config["Output"]["anomoly_db_url"] = (
124-
anomoly_db_url if anomoly_db_url is not None else "sqlite:///anomoly.db"
125-
)
126-
127-
job_config["Processing Options"][
128-
"measurement_function_name"
129-
] = "standard_measurement_function"
130-
job_config["Processing Options"]["reflectance_protocol_name"] = "standard_protocol"
131-
job_config["Processing Options"]["write_l1a"] = "True"
132172

133173
return job_config
134174

@@ -149,23 +189,27 @@ def setup_test_context(
149189
archive_directory=None,
150190
anomoly_db_url=None,
151191
metadata_db_url=None,
192+
archive_db_url=None,
152193
create_directories=False,
153194
create_dbs=False,
154195
):
155196
"""
156197
Creates context for testing
157198
199+
:type raw_data_directory: str
200+
:param raw_data_directory: (optional) raw data directory, set if provided else default value used
201+
158202
:type archive_directory: str
159203
:param archive_directory: (optional) data archive directory, set if provided else default value used
160204
205+
:type anomoly_db_url: str
206+
:param anomoly_db_url: (opitional) anomoly db url, set if provided
207+
161208
:type metadata_db_url: str
162209
:param metadata_db_url: (optional) metadata db url, set if provided else default value used
163210
164-
:type raw_data_directory: str
165-
:param raw_data_directory: (optional) raw data directory, set if provided else default value used
166-
167-
:type anomoly_db_url: str
168-
:param anomoly_db_url: (opitional) anomoly db url, set if provided
211+
:type archive_db_url: str
212+
:param archive_db_url: (opitional) archive db url, set if provided
169213
170214
:type create_directories: bool
171215
:param create_directories: option to create test directories at specified paths (default: False)
@@ -178,32 +222,48 @@ def setup_test_context(
178222
"""
179223

180224
processor_config = setup_test_processor_config(
181-
archive_directory=archive_directory, metadata_db_url=metadata_db_url
182-
)
183-
job_config = setup_test_job_config(
184-
raw_data_directory=raw_data_directory, anomoly_db_url=anomoly_db_url
225+
archive_directory=archive_directory,
226+
metadata_db_url=metadata_db_url,
227+
anomoly_db_url=anomoly_db_url,
228+
archive_db_url=archive_db_url,
185229
)
230+
job_config = setup_test_job_config(raw_data_directory=raw_data_directory)
231+
186232
logger = setup_test_logger()
187233

188234
if create_directories:
189235
os.makedirs(processor_config["Output"]["archive_directory"])
190236
os.makedirs(job_config["Input"]["raw_data_directory"])
237+
os.makedirs(
238+
os.path.join(
239+
job_config["Input"]["raw_data_directory"], "SEQ20200311T112330"
240+
)
241+
)
242+
os.makedirs(
243+
os.path.join(
244+
job_config["Input"]["raw_data_directory"], "SEQ20200311T112430"
245+
)
246+
)
247+
os.makedirs(
248+
os.path.join(
249+
job_config["Input"]["raw_data_directory"], "SEQ20200311T112530"
250+
)
251+
)
191252

192253
if create_dbs:
193-
setup_test_metadata_db(processor_config["Input"]["metadata_db_url"])
194-
setup_test_anomoly_db(job_config["Output"]["anomoly_db_url"])
254+
setup_test_metadata_db(processor_config["Databases"]["metadata_db_url"])
255+
setup_test_anomoly_db(processor_config["Databases"]["anomoly_db_url"])
256+
setup_test_archive_db(processor_config["Databases"]["archive_db_url"])
257+
258+
if not create_dbs:
259+
processor_config["Databases"]["metadata_db_url"] = None
260+
processor_config["Databases"]["anomoly_db_url"] = None
261+
processor_config["Databases"]["archive_db_url"] = None
195262

196263
context = Context(
197264
processor_config=processor_config, job_config=job_config, logger=logger
198265
)
199266

200-
if not create_dbs:
201-
del context.metadata_db
202-
context.metadata_db = None
203-
204-
del context.anomoly_db
205-
context.anomoly_db = None
206-
207267
context.set_config_value("time", datetime.datetime(2021, 4, 3, 11, 21, 15))
208268

209269
return context
@@ -232,9 +292,13 @@ def teardown_test_context(context, remove_directories=False, remove_dbs=False):
232292
del context.anomoly_db
233293
os.remove(anomoly_db_path)
234294

295+
archive_db_path = context.archive_db.engine.url.database
296+
del context.archive_db
297+
os.remove(archive_db_path)
298+
235299
if remove_directories:
236-
shutil.rmtree(context.archive_directory)
237-
shutil.rmtree(context.raw_data_directory)
300+
shutil.rmtree(context.get_config_value("archive_directory"))
301+
shutil.rmtree(context.get_config_value("raw_data_directory"))
238302

239303

240304
def create_test_ds(ds_format):

0 commit comments

Comments
 (0)