Skip to content

Commit 7497142

Browse files
authored
Merge pull request #32 from open-resources/checks-for-backticks_to_code_tags
2 parents ae2286a + 73c89fe commit 7497142

File tree

2 files changed

+33
-2
lines changed

2 files changed

+33
-2
lines changed

src/problem_bank_helpers/problem_bank_helpers.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -349,10 +349,12 @@ def backticks_to_code_tags(data):
349349
"""
350350
params = data["params"]
351351
for param, param_data in params.items():
352-
if not param.startswith("part"):
352+
if not param.startswith("part") or not isinstance(param_data, dict):
353353
continue
354354
for answer, answer_data in param_data.items():
355355
if any(opt in answer for opt in {"ans", "statement", "option"}):
356+
if not isinstance(answer_data, dict) or not "value" in answer_data:
357+
continue
356358
if isinstance(value := answer_data["value"], str):
357359
value = re.sub(
358360
r"```(?P<language>\w+)?(?(language)(\{(?P<highlighting>[\d,-]*)\})?|)(?P<Code>[^`]+)```",

tests/test_problem_bank_helpers_other_functionality.py

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
from src.problem_bank_helpers import __version__
2+
from src.problem_bank_helpers import problem_bank_helpers as pbh
23
import pandas as pd
34
import pytest
45
import tempfile
@@ -64,4 +65,32 @@ def test_missing_values(file_path):
6465
data = pd.read_csv(file_path)
6566

6667
# Test for missing or null values
67-
assert data.isnull().sum().sum() == 0
68+
assert data.isnull().sum().sum() == 0
69+
70+
71+
def test_backticks_to_code_simple_invalid_params():
72+
case = {"params": {"part1": 1, "part2": {"ans1": {1}}}}
73+
pbh.backticks_to_code_tags(case)
74+
75+
def test_backticks_to_code_skip_invalid_params():
76+
"""Test rounding an int with specified sigfigs"""
77+
data = {
78+
"params": {
79+
"part1": {
80+
"ans": { # /statement/option
81+
"anything": {
82+
"value": "This is a test"
83+
},
84+
"num": 1,
85+
"another": {
86+
"foo": False,
87+
}
88+
},
89+
"option": 1,
90+
"statement": True,
91+
"something": 2,
92+
}
93+
},
94+
}
95+
96+
pbh.backticks_to_code_tags(data)

0 commit comments

Comments
 (0)