Commit 65d36562 authored by Wei Shoulin's avatar Wei Shoulin
Browse files

refactor(level1): simplify write function signature and update tests

parent d2b7b093
Pipeline #11321 failed with stages
in 0 seconds
...@@ -190,61 +190,18 @@ def update_prc_status(level1_id: str, data_model: str, prc_status: int, batch_id ...@@ -190,61 +190,18 @@ def update_prc_status(level1_id: str, data_model: str, prc_status: int, batch_id
""" """
return request.put(f"/api/level1/prc_status/{level1_id}", {'data_model': data_model, 'prc_status': prc_status, 'batch_id': batch_id}) return request.put(f"/api/level1/prc_status/{level1_id}", {'data_model': data_model, 'prc_status': prc_status, 'batch_id': batch_id})
def write(local_file: Union[IO, str], def write(local_file: Union[IO, str], **extra_kwargs) -> Result:
instrument: Literal['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC'],
obs_group: Optional[str],
obs_type: str,
level1_id: str,
data_model: str,
file_name: str,
dag: str,
pmapname: str,
build: int,
dataset: str,
batch_id: str,
level0_id: Optional[str] = None,
qc_status: int = 0,
**extra_kwargs) -> Result:
''' '''
将本地的1级数据文件写入到DFS中其他参数如rss_id, cube_id等,可通过extra_kwargs传入 将本地的1级数据文件写入到DFS中其他参数如rss_id, cube_id等,可通过extra_kwargs传入
Args: Args:
local_file (Union[IO, str]): 文件路径或文件对象 local_file (Union[IO, str]): 文件路径或文件对象
instrument ['MSC', 'IFS', 'MCI', 'HSTDM', 'CPIC']其中一个,代表: 模块ID
obs_group (str): 项目ID
obs_type (str): 观测类型
level0_id (Optional[str]): 0级数据的ID默认为 None
level1_id (str): 1级数据的ID
data_model (str): 数据类型
file_name (str): 1级数据文件名
dag (str): DAG标识
pmapname (str): CCDS pmap名称
build (int): 构建号
dataset (str): 数据集名称
batch_id (str): 批次ID
qc_status (int): QC状态
**kwargs: 额外的关键字参数,这些参数将传递给DFS **kwargs: 额外的关键字参数,这些参数将传递给DFS
Returns: Returns:
Result: 操作的结果对象,包含操作是否成功以及相关的错误信息,成功返回data为1级数据对象 Result: 操作的结果对象,包含操作是否成功以及相关的错误信息,成功返回data为1级数据对象
''' '''
params = { params = {}
'instrument': instrument,
'obs_group': obs_group,
'obs_type': obs_type,
'level0_id': level0_id,
'level1_id': level1_id,
'data_model': data_model,
'file_name': file_name,
'dag': dag,
'pmapname': pmapname,
'build': build,
'dataset': dataset,
'batch_id': batch_id,
'qc_status': qc_status
}
if not dataset or not batch_id:
raise ValueError("dataset and batch_id is required")
params.update(extra_kwargs) params.update(extra_kwargs)
if local_file is None: if local_file is None:
raise ValueError("local_file is required") raise ValueError("local_file is required")
......
...@@ -33,28 +33,28 @@ class Level1TestCase(unittest.TestCase): ...@@ -33,28 +33,28 @@ class Level1TestCase(unittest.TestCase):
# print(result) # print(result)
# self.assertEqual(result.code, 200, "error code: " + str(result.code) + ", message: " + result.message) # self.assertEqual(result.code, 200, "error code: " + str(result.code) + ", message: " + result.message)
# def test_write(self): def test_write(self):
# file_path = "/Users/wsl/temp/csst/L1/MSC/CSST_MSC_MS_WIDE_20230413214557_20230413214827_10100070335_13_L1_V01.fits" file_path = "/Users/wsl/temp/csst/L1/MSC/CSST_MSC_MS_WIDE_20230413214557_20230413214827_10100070335_13_L1_V01.fits"
# # from io import BytesIO # from io import BytesIO
# # with open(file_path, "rb") as file: # with open(file_path, "rb") as file:
# # file_path = BytesIO(file.read()) # file_path = BytesIO(file.read())
# result = level1.write(local_file = file_path, result = level1.write(local_file = file_path,
# obs_group="10109100157991", obs_group="10109100157991",
# obs_type="WIDE", obs_type="WIDE",
# instrument = "MSC", instrument = "MSC",
# level0_id="1010910015799127", level0_id="1010910015799127",
# level1_id = "1010910015799127", level1_id = "1010910015799127",
# dag = "csst-msc-l1-mbi", dag = "csst-msc-l1-mbi",
# file_name= "CSST_MSC_MS_WIDE_20230413214557_20230413214827_10100070335_13_L1_V01.fits", file_name= "CSST_MSC_MS_WIDE_20230413214557_20230413214827_10100070335_13_L1_V01.fits",
# pmapname="csst_000128.pmap", pmapname="csst_000128.pmap",
# data_model='csst-msc-l1-mbi', data_model='csst-msc-l1-mbi',
# build=1, build=1,
# qc_status=10, qc_status=10,
# dataset='msc-v093', dataset='msc-v093',
# batch_id="inttest") batch_id="inttest")
# print(result) print(result)
# self.assertEqual(result.code, 200, "error code: " + str(result.code) + ", message: " + result.message) self.assertEqual(result.code, 200, "error code: " + str(result.code) + ", message: " + result.message)
# def test_find_process(self): # def test_find_process(self):
# result = level1.find_process(level1_id="1060940003452925") # result = level1.find_process(level1_id="1060940003452925")
...@@ -80,8 +80,8 @@ class Level1TestCase(unittest.TestCase): ...@@ -80,8 +80,8 @@ class Level1TestCase(unittest.TestCase):
# print(result) # print(result)
# self.assertEqual(result.code, 200, "error code: " + str(result.code) + ", message: " + result.message) # self.assertEqual(result.code, 200, "error code: " + str(result.code) + ", message: " + result.message)
def test_count_by_dataset(self): # def test_count_by_dataset(self):
result = level1.count_by_dataset(dataset="msc-v093") # result = level1.count_by_dataset(dataset="msc-v093")
print(result) # print(result)
self.assertEqual(result.code, 200, "error code: " + str(result.code) + ", message: " + result.message) # self.assertEqual(result.code, 200, "error code: " + str(result.code) + ", message: " + result.message)
self.assertIsNotNone(result.data, "error message: " + result.message) # self.assertIsNotNone(result.data, "error message: " + result.message)
\ No newline at end of file \ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment