{"library":"mock-alchemy","title":"Mock Alchemy","description":"mock-alchemy provides mock helpers for SQLAlchemy, allowing developers to test SQLAlchemy-dependent code without needing a live database connection. The current version is 0.2.6, offering compatibility with SQLAlchemy 2.0 and Python 3.7+. Releases are made periodically to add new features, support newer SQLAlchemy versions, and fix bugs.","language":"python","status":"active","last_verified":"Fri Apr 17","install":{"commands":["pip install mock-alchemy"],"cli":null},"imports":["from mock_alchemy.mocking import UnifiedAlchemyMagicMock"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"from mock_alchemy.mocking import UnifiedAlchemyMagicMock\nfrom sqlalchemy.orm import declarative_base, Mapped, mapped_column\nfrom sqlalchemy import String, Integer\n\n# Define a simple SQLAlchemy model using SQLAlchemy 2.0+ syntax\nBase = declarative_base()\n\nclass User(Base):\n    __tablename__ = \"users\"\n    id: Mapped[int] = mapped_column(Integer, primary_key=True)\n    name: Mapped[str] = mapped_column(String)\n\n# Create a mock session instance\nsession = UnifiedAlchemyMagicMock()\n\n# Add some mock data to the session\nsession.add(User(id=1, name=\"Alice\"))\nsession.add(User(id=2, name=\"Bob\"))\nsession.add(User(id=3, name=\"Charlie\"))\n\n# Perform mock queries\nuser_alice = session.query(User).filter(User.name == \"Alice\").first()\nprint(f\"Found user by name: {user_alice.name}\")\n\nall_users = session.query(User).all()\nprint(f\"All users: {[u.name for u in all_users]}\")\n\nuser_count = session.query(User).count()\nprint(f\"Total users: {user_count}\")\n\n# Simulate a deletion\nsession.query(User).filter(User.id == 2).delete()\nremaining_users = session.query(User).all()\nprint(f\"Users after deletion: {[u.name for u in remaining_users]}\")\n","lang":"python","description":"This quickstart demonstrates how to set up a mock SQLAlchemy session using `UnifiedAlchemyMagicMock`, add mock data, and perform common query operations like `filter`, `first`, `all`, `count`, and `delete` without connecting to a real database. It uses SQLAlchemy 2.0+ declarative syntax for the model.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}