Skip to content

Commit 0e0f366

Browse files
committed
put back Path validation in Settings
1 parent f3c5f1a commit 0e0f366

File tree

13 files changed

+19
-26
lines changed

13 files changed

+19
-26
lines changed

src/ralph/api/routers/statements.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ async def get( # noqa: PLR0912,PLR0913
340340
json.loads(query_params["agent"])
341341
).model_dump(mode="json", exclude_none=True)
342342

343-
# Coerce `verb` and `activity` as IRI #TODO: check why this is necessary
343+
# Coerce `verb` and `activity` as IRI
344344
if query_params.get("verb"):
345345
query_params["verb"] = IRI(query_params["verb"])
346346

src/ralph/conf.py

+9-9
Original file line numberDiff line numberDiff line change
@@ -227,15 +227,15 @@ def LOCALE_ENCODING(self) -> str:
227227
"""Return Ralph's default locale encoding."""
228228
return self._CORE.LOCALE_ENCODING
229229

230-
# @model_validator(mode="before") # TODO: remove
231-
# @classmethod
232-
# def validate_paths(cls, values):
233-
# """Coerce fields to `Path`."""
234-
# for field in ["AUTH_FILE", "HISTORY_FILE"]:
235-
# if field in values:
236-
# if isinstance(values[field], str):
237-
# values[field] = Path(values[field])
238-
# return values
230+
@model_validator(mode="before")
231+
@classmethod
232+
def validate_paths(cls, values):
233+
"""Coerce fields to `Path`."""
234+
for field in ["AUTH_FILE", "HISTORY_FILE"]:
235+
if field in values:
236+
if isinstance(values[field], str):
237+
values[field] = Path(values[field])
238+
return values
239239

240240
@model_validator(mode="after")
241241
def check_restriction_compatibility(self):

src/ralph/models/xapi/base/ifi.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class BaseXapiOpenIdIFI(BaseModelWithConfig):
5050
openid (URI): Consists of an openID that uniquely identifies the Agent.
5151
"""
5252

53-
openid: str # TODO: AnyUrl (different because it may be a bare url) NB: modified as str was working
53+
openid: str
5454

5555

5656
class BaseXapiAccountIFI(BaseModelWithConfig):

tests/backends/lrs/test_clickhouse.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ def test_backends_lrs_clickhouse_default_instantiation(monkeypatch, fs):
5757
"limit": 0,
5858
"related_activities": False,
5959
"related_agents": False,
60-
"statementId": "test_id", # TODO: look into removing this parameter
60+
"statementId": "test_id",
6161
"statement_id": "test_id",
6262
},
6363
"limit": 0,
@@ -196,7 +196,7 @@ def test_backends_lrs_clickhouse_default_instantiation(monkeypatch, fs):
196196
"limit": 100,
197197
"related_activities": False,
198198
"related_agents": False,
199-
"verb": "http://adlnet.gov/expapi/verbs/attended", # TODO: check why verb cant be input as IRI
199+
"verb": "http://adlnet.gov/expapi/verbs/attended",
200200
},
201201
"limit": 100,
202202
"sort": "emission_time DESCENDING, event_id DESCENDING",

tests/factories.py

-2
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@ def prune(d: Any, exemptions: Optional[list] = None):
5555
elif isinstance(d, list):
5656
d_list = [prune(v) for v in d]
5757
return [v for v in d_list if v]
58-
# if d not in [[], {}, ""]: # TODO: put back ?
59-
# return d
6058
if d:
6159
return d
6260
return False

tests/models/edx/converters/xapi/test_navigational.py

-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ def test_models_edx_converters_xapi_navigational_ui_page_close_to_page_terminate
2121
"""
2222
event = mock_instance(UIPageClose)
2323
platform_url = mock_url()
24-
assert platform_url is not None # TODO: remove this
2524

2625
event.context.user_id = "1"
2726
event_str = event.model_dump_json()

tests/models/edx/test_browser.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ def test_models_edx_base_browser_model_with_valid_statement():
1717
assert re.match(r"^[a-f0-9]{32}$", statement.session) or statement.session == ""
1818

1919

20-
@pytest.mark.parametrize( # TODO: clean up
20+
@pytest.mark.parametrize(
2121
"session,error",
2222
[
2323
# less than 32 characters

tests/models/test_validator.py

+1-2
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ def test_models_validator_validate_with_an_invalid_page_close_event_writes_an_er
121121
assert not list(result)
122122
errors = [
123123
"Input event is not valid."
124-
] # TODO: put back ["Input event is not a valid UIPageClose event."]
124+
]
125125
assert errors == [message for _, _, message in caplog.record_tuples]
126126

127127

@@ -191,7 +191,6 @@ def test_models_validator_validate_typing_cleanup():
191191

192192
invalid_event = copy.deepcopy(valid_event)
193193
invalid_event["host"] = 1 # not string
194-
# invalid_event["accept_language"] = False # not string # TODO: check if removing this is acceptable
195194
invalid_event["context"]["course_user_tags"] = {"foo": 1} # not string
196195
invalid_event["context"]["user_id"] = "123" # not integer
197196
invalid_event_str = json.dumps(invalid_event)

tests/models/xapi/base/test_statements.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ def test_models_xapi_base_statement_with_invalid_null_values(path, value):
5858
)
5959
@pytest.mark.parametrize(
6060
"value", [None, {}]
61-
) # TODO: REGRESSION: put back `""` as valid null value
61+
)
6262
def test_models_xapi_base_statement_with_valid_null_values(path, value):
6363
"""Test that the statement does accept valid null values in extensions fields.
6464
@@ -365,7 +365,7 @@ def test_models_xapi_base_statement_with_invalid_group_objects(klass):
365365
statement = statement.model_dump(**kwargs)
366366
statement["actor"]["member"] = [
367367
mock_xapi_instance(klass).model_dump(**kwargs)
368-
] # TODO: check that nothing was lost
368+
]
369369

370370
for class_ in [
371371
"BaseXapiAgentWithMbox",
@@ -573,7 +573,7 @@ def test_models_xapi_base_statement_should_consider_valid_all_defined_xapi_model
573573
statement = mock_xapi_instance(model)
574574
statement = statement.json(
575575
exclude_none=True, by_alias=True
576-
) # TODO: check that we are not losing info by mocking random model
576+
)
577577
try:
578578
BaseXapiStatement(**json.loads(statement))
579579
except ValidationError as err:

tests/models/xapi/test_lms.py

-1
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,6 @@ def test_models_xapi_lms_context_context_activities_with_valid_category(category
223223
)
224224

225225

226-
# TODO: check that this test is still valid
227226
@pytest.mark.parametrize(
228227
"category,msg",
229228
[

tests/models/xapi/test_video.py

-1
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,6 @@ def test_models_xapi_video_context_activities_with_valid_category(category):
211211
)
212212

213213

214-
# TODO: check that this test is still valid
215214
@pytest.mark.parametrize(
216215
"category,msg",
217216
[

tests/models/xapi/test_virtual_classroom.py

-1
Original file line numberDiff line numberDiff line change
@@ -284,7 +284,6 @@ def test_models_xapi_virtual_classroom_context_activities_with_valid_category(ca
284284
)
285285

286286

287-
# TODO: check that this test is valid
288287
@pytest.mark.parametrize(
289288
"category,msg",
290289
[

tests/test_cli.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -725,7 +725,7 @@ def test_cli_read_command_with_es_backend_query(es):
725725
"Invalid MongoQuery query string: [{'type': 'value_error.jsondecode',"
726726
" 'loc': ('__root__',), 'msg': 'Expecting value: line 1 column 1 (char 0)',"
727727
" 'input': 'wrong_query_string'}]"
728-
) # TODO: validate change in message
728+
)
729729

730730
assert str(result.exception) == msg
731731

0 commit comments

Comments
 (0)