49 lines
1.7 KiB
Python
49 lines
1.7 KiB
Python
# 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 <http://www.gnu.org/licenses/>.
|
|
|
|
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()
|