mirror of
https://github.com/stijndcl/didier.git
synced 2026-04-07 15:48:29 +02:00
Add study guide commands, get auto-completion for full course names based on aliases
This commit is contained in:
parent
72c3acbcc2
commit
5b47397f29
7 changed files with 97 additions and 52 deletions
|
|
@ -1,5 +1,4 @@
|
|||
import asyncio
|
||||
import datetime
|
||||
from typing import AsyncGenerator, Generator
|
||||
from unittest.mock import MagicMock
|
||||
|
||||
|
|
@ -7,11 +6,9 @@ import pytest
|
|||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from database.engine import engine
|
||||
from database.models import Base, UforaAnnouncement, UforaCourse, UforaCourseAlias
|
||||
from database.models import Base
|
||||
from didier import Didier
|
||||
|
||||
"""General fixtures"""
|
||||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
def event_loop() -> Generator:
|
||||
|
|
@ -57,34 +54,3 @@ def mock_client() -> Didier:
|
|||
mock_client.user = mock_user
|
||||
|
||||
return mock_client
|
||||
|
||||
|
||||
"""Fixtures to put fake data in the database"""
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
async def ufora_course(database_session: AsyncSession) -> UforaCourse:
|
||||
"""Fixture to create a course"""
|
||||
course = UforaCourse(name="test", code="code", year=1, log_announcements=True)
|
||||
database_session.add(course)
|
||||
await database_session.commit()
|
||||
return course
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
async def ufora_course_with_alias(database_session: AsyncSession, ufora_course: UforaCourse) -> UforaCourse:
|
||||
"""Fixture to create a course with an alias"""
|
||||
alias = UforaCourseAlias(course_id=ufora_course.course_id, alias="alias")
|
||||
database_session.add(alias)
|
||||
await database_session.commit()
|
||||
await database_session.refresh(ufora_course)
|
||||
return ufora_course
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
async def ufora_announcement(ufora_course: UforaCourse, database_session: AsyncSession) -> UforaAnnouncement:
|
||||
"""Fixture to create an announcement"""
|
||||
announcement = UforaAnnouncement(course_id=ufora_course.course_id, publication_date=datetime.datetime.now())
|
||||
database_session.add(announcement)
|
||||
await database_session.commit()
|
||||
return announcement
|
||||
|
|
|
|||
34
tests/test_database/conftest.py
Normal file
34
tests/test_database/conftest.py
Normal file
|
|
@ -0,0 +1,34 @@
|
|||
import datetime
|
||||
|
||||
import pytest
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from database.models import UforaAnnouncement, UforaCourse, UforaCourseAlias
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
async def ufora_course(database_session: AsyncSession) -> UforaCourse:
|
||||
"""Fixture to create a course"""
|
||||
course = UforaCourse(name="test", code="code", year=1, log_announcements=True)
|
||||
database_session.add(course)
|
||||
await database_session.commit()
|
||||
return course
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
async def ufora_course_with_alias(database_session: AsyncSession, ufora_course: UforaCourse) -> UforaCourse:
|
||||
"""Fixture to create a course with an alias"""
|
||||
alias = UforaCourseAlias(course_id=ufora_course.course_id, alias="alias")
|
||||
database_session.add(alias)
|
||||
await database_session.commit()
|
||||
await database_session.refresh(ufora_course)
|
||||
return ufora_course
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
async def ufora_announcement(ufora_course: UforaCourse, database_session: AsyncSession) -> UforaAnnouncement:
|
||||
"""Fixture to create an announcement"""
|
||||
announcement = UforaAnnouncement(course_id=ufora_course.course_id, publication_date=datetime.datetime.now())
|
||||
database_session.add(announcement)
|
||||
await database_session.commit()
|
||||
return announcement
|
||||
Loading…
Add table
Add a link
Reference in a new issue