Skip to content

Commit f920f59

Browse files
committed
tests: Add tests for the GenerateFeedback converter
1 parent c2f0a7f commit f920f59

File tree

4 files changed

+194
-178
lines changed

4 files changed

+194
-178
lines changed

grader_service/tests/convert/converters/__init__.py

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
import shutil
22
from pathlib import Path
33
from typing import Any, Dict
4+
from unittest.mock import patch
5+
6+
from nbclient import NotebookClient
47

58
from grader_service.api.models.assignment_settings import AssignmentSettings
6-
from grader_service.convert.converters import GenerateAssignment
9+
from grader_service.convert.converters import Autograde, GenerateAssignment
710

811
tests_dir = Path(__file__).parent.parent
912

@@ -21,7 +24,7 @@ def _create_input_output_dirs(p: Path, input_notebooks=None):
2124
return input_dir, output_dir
2225

2326

24-
def _generate_test_assignment(
27+
def _generate_test_submission(
2528
input_dir: str,
2629
output_dir: str,
2730
file_pattern: str = "*.ipynb",
@@ -37,3 +40,22 @@ def _generate_test_assignment(
3740
assignment_settings=AssignmentSettings(**assignment_settings_kwargs),
3841
config=None,
3942
).start()
43+
44+
45+
def _autograde_test_submission(
46+
input_dir: str,
47+
output_dir: str,
48+
file_pattern: str = "*.ipynb",
49+
assignment_settings_kwargs: Dict[str, Any] = None,
50+
):
51+
if assignment_settings_kwargs is None:
52+
assignment_settings_kwargs = {}
53+
54+
with patch.object(NotebookClient, "kernel_name", "python3"):
55+
Autograde(
56+
input_dir=str(input_dir),
57+
output_dir=str(output_dir),
58+
file_pattern=file_pattern,
59+
config=None,
60+
assignment_settings=AssignmentSettings(**assignment_settings_kwargs),
61+
).start()

grader_service/tests/convert/converters/test_autograde.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@
77
from grader_service.convert.converters import Autograde
88
from grader_service.tests.convert.converters import (
99
_create_input_output_dirs,
10-
_generate_test_assignment,
10+
_generate_test_submission,
1111
)
1212

1313

1414
def test_autograde(tmp_path):
1515
input_dir, output_dir = _create_input_output_dirs(tmp_path, ["simple.ipynb"])
1616

17-
_generate_test_assignment(input_dir, output_dir)
17+
_generate_test_submission(input_dir, output_dir)
1818

1919
assert (output_dir / "simple.ipynb").exists()
2020
assert (output_dir / "gradebook.json").exists()
@@ -43,7 +43,7 @@ def test_autograde(tmp_path):
4343
def test_autograde_copy_with_all_files(tmp_path):
4444
input_dir, output_dir = _create_input_output_dirs(tmp_path, ["simple.ipynb"])
4545

46-
_generate_test_assignment(
46+
_generate_test_submission(
4747
input_dir, output_dir, assignment_settings_kwargs={"allowed_files": ["*"]}
4848
)
4949

@@ -79,7 +79,7 @@ def test_autograde_copy_with_dirs(tmp_path):
7979
test_file = dir_3 / "test.txt"
8080
test_file.touch()
8181

82-
_generate_test_assignment(
82+
_generate_test_submission(
8383
input_dir, output_dir, assignment_settings_kwargs={"allowed_files": ["*"]}
8484
)
8585

@@ -113,7 +113,7 @@ def test_autograde_with_student_notebooks_copied_over(tmp_path):
113113
by the student should also be copied over."""
114114
input_dir, output_dir = _create_input_output_dirs(tmp_path, ["simple.ipynb"])
115115

116-
_generate_test_assignment(input_dir, output_dir)
116+
_generate_test_submission(input_dir, output_dir)
117117

118118
student_nb = output_dir / "student.ipynb"
119119
student_nb.touch()

0 commit comments

Comments
 (0)