From 1de10323afdb3a836d15d24c5601d3f9a84ce55c Mon Sep 17 00:00:00 2001 From: Cory Hawklvelt Date: Sat, 25 Apr 2026 11:01:00 +0930 Subject: [PATCH] Fixed SSH test cases --- tests/api/v1/ssh/conftest.py | 79 ++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 tests/api/v1/ssh/conftest.py diff --git a/tests/api/v1/ssh/conftest.py b/tests/api/v1/ssh/conftest.py new file mode 100644 index 0000000..6243c1d --- /dev/null +++ b/tests/api/v1/ssh/conftest.py @@ -0,0 +1,79 @@ +"""Pytest fixtures for API tests.""" +import pytest +import uuid +from datetime import datetime, timezone + +from gatehouse_app import create_app, db +from gatehouse_app.models.user.user import User +from gatehouse_app.models.organization.organization import Organization +from gatehouse_app.models.organization.organization_member import OrganizationMember +from gatehouse_app.models.ssh_ca.ca import CA, CaType, KeyType +from gatehouse_app.utils.constants import OrganizationRole + + +@pytest.fixture +def app(): + """Create test Flask app with in-memory SQLite.""" + app = create_app(config_name="testing") + app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///:memory:" + app.config["TESTING"] = True + app.config["WTF_CSRF_ENABLED"] = False + + with app.app_context(): + db.create_all() + yield app + db.session.remove() + db.drop_all() + + +@pytest.fixture +def test_user(app): + """Create a test user.""" + with app.app_context(): + user = User(email="test_user@test.com", full_name="Test User") + db.session.add(user) + db.session.commit() + return user.id + + +@pytest.fixture +def test_org(app): + """Create a test organization.""" + with app.app_context(): + org = Organization(name="Test Org", slug="test-org") + db.session.add(org) + db.session.commit() + return org.id + + +@pytest.fixture +def test_membership(app, test_user, test_org): + """Create a test membership.""" + with app.app_context(): + membership = OrganizationMember( + user_id=test_user, + organization_id=test_org, + role=OrganizationRole.MEMBER, + ) + db.session.add(membership) + db.session.commit() + return membership.id + + +@pytest.fixture +def test_ca(app, test_org, test_membership): + """Create a test CA.""" + with app.app_context(): + ca = CA( + organization_id=test_org, + name="Test CA", + ca_type=CaType.USER, + key_type=KeyType.ED25519, + private_key="encrypted_private_key_placeholder", + public_key="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAI...", + fingerprint="sha256:TEST123...", + is_active=True, + ) + db.session.add(ca) + db.session.commit() + return ca.id