Skip to main content

The package for working with SQLAlchemy in unit tests

Project description

sqlalchemy-mock

The package for working with SQLAlchemy in unit tests, it mocks requests to database, and provides necessary functionality within unit tests

It doesn't work with existing databases and doesn't create any tests databases, thanks to this it works enouth fast

Installing

Exists a few aproaches to install package:

  • You can clone this repository and run the next command to install package from local sourse:
    pip install -e /path/to/repository
    
  • You can install this package from github:
    pip install git+https://github.com/ivanostapiuk/sqlalchemy-mock.git
    
  • There is a package also in pypi:
    pip install sqlalchemy-mock
    

How to use

By default primary key is 'uuid', but you can set another field as primary key and function to generate value, for example:

import uuid


db = Session(primary_key="uuid", primary_key_generate=lambda: str(uuid.uuid4()))

A simple example how to use it in flask:

import unittest
from app import flask_app
from sqlalchemy_mock import Session
from models import Model


class TestCase(unittest.TestCase):
    @classmethod
    def setUp(cls):
        cls.app = flask_app.test_client()
        cls.db = Session()

    def test(self):
        row = Model(field1="value1", field2="value2", field3="value3")
        self.db.add(row)
        self.db.commit()

        with self.db.mock_session():
            response = self.app.get(f"/get/model/object/{row.uuid}")
            self.assertEqual(response.json["field1"], row.field1)

Runinng unittests

To run unittests use command:

python -m unittest

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sqlalchemy_mock-1.1.0.tar.gz (5.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sqlalchemy_mock-1.1.0-py3-none-any.whl (7.2 kB view details)

Uploaded Python 3

File details

Details for the file sqlalchemy_mock-1.1.0.tar.gz.

File metadata

  • Download URL: sqlalchemy_mock-1.1.0.tar.gz
  • Upload date:
  • Size: 5.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.10.6 Darwin/23.0.0

File hashes

Hashes for sqlalchemy_mock-1.1.0.tar.gz
Algorithm Hash digest
SHA256 51db54900dbf2335e47635fe7697e8e6c1a0a10fe8d48c49da773996658a545a
MD5 b7f4c2f90c273d1d7c5d9d106cbce906
BLAKE2b-256 dfe69f38990811bd053e40bcdd4e621f7028fba1296f155062be82d65a731334

See more details on using hashes here.

File details

Details for the file sqlalchemy_mock-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: sqlalchemy_mock-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.2 CPython/3.10.6 Darwin/23.0.0

File hashes

Hashes for sqlalchemy_mock-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aad0571a6ce0a7f37e21724760ee2fe82ed2546d9a06fe78f8d91221795d72cc
MD5 dd394ae41d046b993d7d86b8106d6546
BLAKE2b-256 70480f3ad822fd331fec209f995a46d41c79f67a8549823371ab4e75c14b68ae

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page