63 lines
1.3 KiB
Python
63 lines
1.3 KiB
Python
"""
|
|
Test configuration and fixtures for HeurAMS tests.
|
|
"""
|
|
import pytest
|
|
import tempfile
|
|
import os
|
|
from pathlib import Path
|
|
|
|
|
|
@pytest.fixture
|
|
def temp_config_file():
|
|
"""Create a temporary config file for testing."""
|
|
with tempfile.NamedTemporaryFile(mode='w', suffix='.json', delete=False) as f:
|
|
f.write('''{
|
|
"algorithm": "sm2",
|
|
"default_ease": 2.5,
|
|
"learning_steps": [1, 10],
|
|
"graduating_interval": 1,
|
|
"easy_interval": 4
|
|
}''')
|
|
temp_path = f.name
|
|
|
|
yield temp_path
|
|
|
|
# Cleanup
|
|
if os.path.exists(temp_path):
|
|
os.unlink(temp_path)
|
|
|
|
|
|
@pytest.fixture
|
|
def sample_atom_data():
|
|
"""Sample atom data for testing."""
|
|
return {
|
|
"nucleon": {
|
|
"content": "What is the capital of France?",
|
|
"answer": "Paris"
|
|
},
|
|
"electron": {
|
|
"ease": 2.5,
|
|
"interval": 1,
|
|
"repetitions": 0,
|
|
"last_review": None
|
|
},
|
|
"orbital": {
|
|
"learning_steps": [1, 10],
|
|
"graduating_interval": 1,
|
|
"easy_interval": 4
|
|
}
|
|
}
|
|
|
|
|
|
@pytest.fixture
|
|
def sample_markdown_content():
|
|
"""Sample markdown content for testing."""
|
|
return """
|
|
# Test Document
|
|
|
|
This is a test document with some {{c1::cloze}} deletions.
|
|
|
|
Here's another {{c2::cloze deletion}} for testing.
|
|
|
|
What is the capital of {{c3::France}}?
|
|
""" |