Skip to content

Commit ab8aa9d

Browse files
committed
fix: indentation of schema test with record.
1 parent 8c446b4 commit ab8aa9d

File tree

1 file changed

+116
-116
lines changed

1 file changed

+116
-116
lines changed

tests/end-to-end/test_api_record.py

Lines changed: 116 additions & 116 deletions
Original file line numberDiff line numberDiff line change
@@ -263,131 +263,131 @@ def tearDown(self):
263263
result = self._df_api.repoList(list_all=True)
264264

265265

266-
def test_record_with_schema_enforcement(self):
267-
"""Test record create and update with schema validation and enforcement."""
268-
269-
# Create a schema to use with records
270-
schema_def = json.dumps({
271-
"type": "object",
272-
"properties": {
273-
"temperature": {"type": "number"},
274-
"pressure": {"type": "number"},
275-
"sample_id": {"type": "string"}
276-
},
277-
"required": ["temperature", "sample_id"]
278-
})
279-
280-
self._df_api.schemaCreate(
281-
"test_rec_schema",
282-
definition=schema_def,
283-
description="Schema for record integration test",
284-
)
285-
286-
# --- Record create with valid metadata and schema enforce ---
287-
valid_metadata = json.dumps({
288-
"temperature": 300.5,
289-
"pressure": 101.3,
290-
"sample_id": "S-001"
291-
})
292-
293-
data_result = self._df_api.dataCreate(
294-
title="Schema Enforced Record",
295-
metadata=valid_metadata,
296-
schema="test_rec_schema",
297-
schema_enforce=True,
298-
parent_id="root",
299-
)
300-
301-
rec_id = data_result[0].data[0].id
302-
self.assertEqual(data_result[0].data[0].title, "Schema Enforced Record")
303-
# No md_err_msg means validation passed
304-
self.assertFalse(data_result[0].data[0].md_err_msg)
305-
306-
# --- Record create with invalid metadata and schema enforce should fail ---
307-
invalid_metadata = json.dumps({
308-
"temperature": "not_a_number",
309-
"sample_id": 12345
310-
})
311-
312-
with self.assertRaises(Exception):
313-
self._df_api.dataCreate(
314-
title="Should Fail",
315-
metadata=invalid_metadata,
266+
def test_record_with_schema_enforcement(self):
267+
"""Test record create and update with schema validation and enforcement."""
268+
269+
# Create a schema to use with records
270+
schema_def = json.dumps({
271+
"type": "object",
272+
"properties": {
273+
"temperature": {"type": "number"},
274+
"pressure": {"type": "number"},
275+
"sample_id": {"type": "string"}
276+
},
277+
"required": ["temperature", "sample_id"]
278+
})
279+
280+
self._df_api.schemaCreate(
281+
"test_rec_schema",
282+
definition=schema_def,
283+
description="Schema for record integration test",
284+
)
285+
286+
# --- Record create with valid metadata and schema enforce ---
287+
valid_metadata = json.dumps({
288+
"temperature": 300.5,
289+
"pressure": 101.3,
290+
"sample_id": "S-001"
291+
})
292+
293+
data_result = self._df_api.dataCreate(
294+
title="Schema Enforced Record",
295+
metadata=valid_metadata,
316296
schema="test_rec_schema",
317297
schema_enforce=True,
318298
parent_id="root",
319299
)
320-
321-
# --- Record create with invalid metadata but NO enforce (warning only) ---
322-
warn_result = self._df_api.dataCreate(
323-
title="Schema Warn Record",
324-
metadata=invalid_metadata,
325-
schema="test_rec_schema",
326-
parent_id="root",
327-
)
328-
329-
warn_rec_id = warn_result[0].data[0].id
330-
# Should have md_err_msg set but record still created
331-
self.assertTrue(warn_result[0].data[0].md_err_msg)
332-
333-
# --- Record update with valid metadata merge ---
334-
merge_metadata = json.dumps({"pressure": 200.0})
335-
336-
update_result = self._df_api.dataUpdate(
337-
rec_id,
338-
metadata=merge_metadata,
339-
schema="test_rec_schema",
340-
schema_enforce=True,
341-
)
342-
343-
self.assertFalse(update_result[0].data[0].md_err_msg)
344-
345-
# --- Record update with metadata set (replace) and enforce ---
346-
# Missing required field "sample_id" should fail with enforce
347-
incomplete_metadata = json.dumps({"temperature": 400.0})
348-
349-
with self.assertRaises(Exception):
350-
self._df_api.dataUpdate(
300+
301+
rec_id = data_result[0].data[0].id
302+
self.assertEqual(data_result[0].data[0].title, "Schema Enforced Record")
303+
# No md_err_msg means validation passed
304+
self.assertFalse(data_result[0].data[0].md_err_msg)
305+
306+
# --- Record create with invalid metadata and schema enforce should fail ---
307+
invalid_metadata = json.dumps({
308+
"temperature": "not_a_number",
309+
"sample_id": 12345
310+
})
311+
312+
with self.assertRaises(Exception):
313+
self._df_api.dataCreate(
314+
title="Should Fail",
315+
metadata=invalid_metadata,
316+
schema="test_rec_schema",
317+
schema_enforce=True,
318+
parent_id="root",
319+
)
320+
321+
# --- Record create with invalid metadata but NO enforce (warning only) ---
322+
warn_result = self._df_api.dataCreate(
323+
title="Schema Warn Record",
324+
metadata=invalid_metadata,
325+
schema="test_rec_schema",
326+
parent_id="root",
327+
)
328+
329+
warn_rec_id = warn_result[0].data[0].id
330+
# Should have md_err_msg set but record still created
331+
self.assertTrue(warn_result[0].data[0].md_err_msg)
332+
333+
# --- Record update with valid metadata merge ---
334+
merge_metadata = json.dumps({"pressure": 200.0})
335+
336+
update_result = self._df_api.dataUpdate(
351337
rec_id,
352-
metadata=incomplete_metadata,
353-
metadata_set=True,
338+
metadata=merge_metadata,
354339
schema="test_rec_schema",
355340
schema_enforce=True,
356341
)
357-
358-
# --- Pre-validate metadata before committing ---
359-
validate_result = self._df_api.metadataValidate(
360-
"test_rec_schema",
361-
metadata=valid_metadata,
362-
)
363-
364-
# No errors expected
365-
self.assertFalse(validate_result[0].errors)
366-
367-
validate_result_bad = self._df_api.metadataValidate(
368-
"test_rec_schema",
369-
metadata=invalid_metadata,
370-
)
371-
372-
# Errors expected
373-
self.assertTrue(validate_result_bad[0].errors)
374-
375-
# --- Cleanup ---
376-
task_result = self._df_api.dataDelete([rec_id, warn_rec_id])
377-
378-
status = task_result[0].task[0].status
379-
count = 0
380-
while status < 3:
381-
if count > 20:
382-
break
383-
time.sleep(self._timeout)
384-
task_result = self._df_api.taskView(task_result[0].task[0].id)
342+
343+
self.assertFalse(update_result[0].data[0].md_err_msg)
344+
345+
# --- Record update with metadata set (replace) and enforce ---
346+
# Missing required field "sample_id" should fail with enforce
347+
incomplete_metadata = json.dumps({"temperature": 400.0})
348+
349+
with self.assertRaises(Exception):
350+
self._df_api.dataUpdate(
351+
rec_id,
352+
metadata=incomplete_metadata,
353+
metadata_set=True,
354+
schema="test_rec_schema",
355+
schema_enforce=True,
356+
)
357+
358+
# --- Pre-validate metadata before committing ---
359+
validate_result = self._df_api.metadataValidate(
360+
"test_rec_schema",
361+
metadata=valid_metadata,
362+
)
363+
364+
# No errors expected
365+
self.assertFalse(validate_result[0].errors)
366+
367+
validate_result_bad = self._df_api.metadataValidate(
368+
"test_rec_schema",
369+
metadata=invalid_metadata,
370+
)
371+
372+
# Errors expected
373+
self.assertTrue(validate_result_bad[0].errors)
374+
375+
# --- Cleanup ---
376+
task_result = self._df_api.dataDelete([rec_id, warn_rec_id])
377+
385378
status = task_result[0].task[0].status
386-
count = count + 1
387-
388-
self.assertEqual(status, 3)
389-
390-
self._df_api.schemaDelete("test_rec_schema")
379+
count = 0
380+
while status < 3:
381+
if count > 20:
382+
break
383+
time.sleep(self._timeout)
384+
task_result = self._df_api.taskView(task_result[0].task[0].id)
385+
status = task_result[0].task[0].status
386+
count = count + 1
387+
388+
self.assertEqual(status, 3)
389+
390+
self._df_api.schemaDelete("test_rec_schema")
391391

392392

393393
if __name__ == "__main__":

0 commit comments

Comments
 (0)