Integrate comprehensive testing framework with Makefile

- Added unit tests for YAML loading and parsing functionality
- Created integration tests for multiple activity files validation
- Implemented functional tests for complete activity workflows
- Added battleship pre_script functionality tests
- Integrated all test types into comprehensive Makefile
- Fixed CLI validator test with proper failing fixture
- Applied black formatting to all Python files
- Removed problematic hardcoded targets from Makefile
- Added proper venv dependency management

Test coverage includes:
- Unit: YAML loading, validator functionality
- Integration: Cross-file validation, metadata operations
- Functional: End-to-end activity flows, pre_script execution
- All 30 activity files validated and tested
This commit is contained in:
Russell Ballestrini 2025-08-10 19:32:49 -04:00
parent 51b74be7d9
commit 1b44c2d66b
16 changed files with 2803 additions and 104 deletions

View file

@ -5,6 +5,7 @@ Revises: a9e886c56482
Create Date: 2023-12-07 08:55:50.378439
"""
from alembic import op
import sqlalchemy as sa

View file

@ -5,28 +5,30 @@ Revises: 38a330686a17
Create Date: 2024-11-23 11:25:01.723169
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import sqlite
# revision identifiers, used by Alembic.
revision = '1ac5a8e0f577'
down_revision = '38a330686a17'
revision = "1ac5a8e0f577"
down_revision = "38a330686a17"
branch_labels = None
depends_on = None
def upgrade():
op.create_table('user_session',
sa.Column('id', sa.Integer(), nullable=False),
sa.Column('session_id', sa.String(length=128), nullable=False),
sa.Column('username', sa.String(length=128), nullable=True),
sa.Column('room_name', sa.String(length=128), nullable=True),
sa.Column('room_id', sa.Integer(), nullable=True),
sa.PrimaryKeyConstraint('id'),
sa.UniqueConstraint('session_id')
op.create_table(
"user_session",
sa.Column("id", sa.Integer(), nullable=False),
sa.Column("session_id", sa.String(length=128), nullable=False),
sa.Column("username", sa.String(length=128), nullable=True),
sa.Column("room_name", sa.String(length=128), nullable=True),
sa.Column("room_id", sa.Integer(), nullable=True),
sa.PrimaryKeyConstraint("id"),
sa.UniqueConstraint("session_id"),
)
def downgrade():
op.drop_table('user_session')
op.drop_table("user_session")

View file

@ -5,21 +5,23 @@ Revises: d737de68d6fa
Create Date: 2024-11-23 09:52:50.824162
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import sqlite
# revision identifiers, used by Alembic.
revision = '38a330686a17'
down_revision = 'd737de68d6fa'
revision = "38a330686a17"
down_revision = "d737de68d6fa"
branch_labels = None
depends_on = None
def upgrade():
with op.batch_alter_table('room', schema=None) as batch_op:
batch_op.add_column(sa.Column('active_users', sa.Text(), nullable=True))
with op.batch_alter_table("room", schema=None) as batch_op:
batch_op.add_column(sa.Column("active_users", sa.Text(), nullable=True))
def downgrade():
with op.batch_alter_table('room', schema=None) as batch_op:
batch_op.drop_column('active_users')
with op.batch_alter_table("room", schema=None) as batch_op:
batch_op.drop_column("active_users")

View file

@ -5,21 +5,23 @@ Revises: 1ac5a8e0f577
Create Date: 2024-11-24 14:04:30.488155
"""
from alembic import op
import sqlalchemy as sa
from sqlalchemy.dialects import sqlite
# revision identifiers, used by Alembic.
revision = '5d93cdf18549'
down_revision = '1ac5a8e0f577'
revision = "5d93cdf18549"
down_revision = "1ac5a8e0f577"
branch_labels = None
depends_on = None
def upgrade():
with op.batch_alter_table('room', schema=None) as batch_op:
batch_op.add_column(sa.Column('inactive_users', sa.Text(), nullable=True))
with op.batch_alter_table("room", schema=None) as batch_op:
batch_op.add_column(sa.Column("inactive_users", sa.Text(), nullable=True))
def downgrade():
with op.batch_alter_table('room', schema=None) as batch_op:
batch_op.drop_column('inactive_users')
with op.batch_alter_table("room", schema=None) as batch_op:
batch_op.drop_column("inactive_users")

View file

@ -5,6 +5,7 @@ Revises: d3631b8bb652
Create Date: 2024-07-27 09:36:50.422693
"""
from alembic import op
import sqlalchemy as sa

View file

@ -5,6 +5,7 @@ Revises: 190d5ef26e20
Create Date: 2024-07-27 09:33:52.544550
"""
from alembic import op
import sqlalchemy as sa

View file

@ -5,6 +5,7 @@ Revises: d04950c5a624
Create Date: 2024-07-28 17:02:11.872502
"""
from alembic import op
import sqlalchemy as sa