2

I want to use custom sqlite database for unit tests for code. The answer to the question uses test_database from playhouse.test_utils.

However, this is currently not available there.

What can I replace it with?

pynista
  • 241
  • 5
  • 9

1 Answers1

3

You can use the Database.bind() or Database.bind_ctx() methods, which are documented:

http://docs.peewee-orm.com/en/latest/peewee/api.html#Database.bind_ctx

The documentation covers this exact scenario:

MODELS = (User, Account, Note)

# Bind the given models to the db for the duration of wrapped block.
def use_test_database(fn):
    @wraps(fn)
    def inner(self):
        with test_db.bind_ctx(MODELS):
            test_db.create_tables(MODELS)
            try:
                fn(self)
            finally:
                test_db.drop_tables(MODELS)
    return inner


class TestSomething(TestCase):
    @use_test_database
    def test_something(self):
        # ... models are bound to test database ...
        pass
coleifer
  • 24,887
  • 6
  • 60
  • 75