# barbacompta - invoicing for dummies # Copyright (C) 2019-2020 Entr'ouvert # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU Affero General Public License as published # by the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with this program. If not, see . import django_webtest import pytest from django.contrib.auth.models import User from django.core.management import call_command DATA = ["tests/fixture.json"] @pytest.fixture(scope="session") def django_db_setup(django_db_setup, django_db_blocker, django_db_keepdb, django_db_createdb): with django_db_blocker.unblock(): if not django_db_keepdb or django_db_createdb or User.objects.count() == 0: for data in DATA: call_command("loaddata", data) admin, _ = User.objects.update_or_create( username="admin", defaults=dict(email="admin@example.com", is_superuser=True, is_staff=True), ) admin.set_password("admin") admin.save() yield @pytest.fixture def app(db, freezer): freezer.move_to("2019-01-01") wtm = django_webtest.WebTestMixin() wtm._patch_settings() try: return django_webtest.DjangoTestApp(extra_environ={"HTTP_HOST": "localhost"}) finally: wtm._unpatch_settings()