Skip to content

Commit

Permalink
feat(dev): Migrate to pytest
Browse files Browse the repository at this point in the history
  • Loading branch information
last-partizan committed Jul 13, 2022
1 parent 8535a4e commit d3e2396
Show file tree
Hide file tree
Showing 13 changed files with 1,358 additions and 376 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ jobs:
if [[ $DB == postgres ]]; then
pip install -q psycopg2-binary
fi
pip install coverage six $(./get-django-version.py ${{ matrix.django }})
pip install coverage six pytest pytest-django pytest-cov $(./get-django-version.py ${{ matrix.django }})
- name: Run tests
run: |
coverage run --source=modeltranslation ./runtests.py
pytest --cov-report term
988 changes: 988 additions & 0 deletions modeltranslation/tests/migrations/0001_initial.py

Large diffs are not rendered by default.

14 changes: 3 additions & 11 deletions modeltranslation/tests/models.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
# -*- coding: utf-8 -*-
import six
from django.conf import settings
from django.contrib.auth.models import Permission
from django.core import validators
from django.db import models
from django.utils.translation import gettext_lazy

from modeltranslation.manager import MultilingualManager


Expand Down Expand Up @@ -128,9 +126,6 @@ class OtherFieldsModel(models.Model):
# That's rich! PositiveIntegerField is only validated in forms, not in models.
int = models.PositiveIntegerField(default=42, validators=[validators.MinValueValidator(0)])
boolean = models.BooleanField(default=False)
nullboolean = models.NullBooleanField()
csi = models.CommaSeparatedIntegerField(max_length=255)
ip = models.IPAddressField(blank=True, null=True)
float = models.FloatField(blank=True, null=True)
decimal = models.DecimalField(max_digits=5, decimal_places=2, blank=True, null=True)
date = models.DateField(blank=True, null=True)
Expand Down Expand Up @@ -495,8 +490,5 @@ class ModelY(AbstractModelY):
# Non-abstract base models whos Manager is not allowed to be overwritten


if "django.contrib.auth" in settings.INSTALLED_APPS:
from django.contrib.auth.models import Permission

class InheritedPermission(Permission):
translated_var = models.CharField(max_length=255)
class InheritedPermission(Permission):
translated_var = models.CharField(max_length=255)
55 changes: 47 additions & 8 deletions modeltranslation/tests/settings.py
Original file line number Diff line number Diff line change
@@ -1,23 +1,62 @@
# -*- coding: utf-8 -*-
"""
Settings overrided for test time
"""
from django.conf import settings
import os
import warnings

warnings.simplefilter('always', DeprecationWarning)

INSTALLED_APPS = tuple(settings.INSTALLED_APPS) + ('modeltranslation.tests',)

def _get_database_config():
db = os.getenv('DB', 'sqlite')
host = os.getenv('DB_HOST', 'localhost')
conf = {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': ':memory:',
'TEST': {
'SERIALIZE': False,
},
}
if db == 'mysql':
conf.update(
{
'ENGINE': 'django.db.backends.mysql',
'NAME': os.getenv('MYSQL_DATABASE', 'modeltranslation'),
'USER': os.getenv('MYSQL_USER', 'root'),
'PASSWORD': os.getenv('MYSQL_PASSWORD', 'password'),
'HOST': host,
}
)
elif db == 'postgres':
conf.update(
{
'ENGINE': 'django.db.backends.postgresql',
'USER': os.getenv('POSTGRES_USER', 'postgres'),
'PASSWORD': os.getenv('POSTGRES_DB', 'postgres'),
'NAME': os.getenv('POSTGRES_DB', 'modeltranslation'),
'HOST': host,
}
)
return conf


DATABASES = {"default": _get_database_config()}

INSTALLED_APPS = (
'django.contrib.contenttypes',
'django.contrib.auth',
'modeltranslation',
'modeltranslation.tests',
)

LANGUAGES = (('de', 'Deutsch'), ('en', 'English'))
LANGUAGE_CODE = 'de'
MODELTRANSLATION_DEFAULT_LANGUAGE = 'de'

USE_I18N = True
USE_TZ = False
MIDDLEWARE_CLASSES = ()

MODELTRANSLATION_DEFAULT_LANGUAGE = 'de'
MODELTRANSLATION_AUTO_POPULATE = False
MODELTRANSLATION_FALLBACK_LANGUAGES = ()

ROOT_URLCONF = 'modeltranslation.tests.urls'

MIGRATION_MODULES = {'auth': 'modeltranslation.tests.auth_migrations'}
DEFAULT_AUTO_FIELD = 'django.db.models.AutoField'
6 changes: 0 additions & 6 deletions modeltranslation/tests/test_settings.py

This file was deleted.

Loading

0 comments on commit d3e2396

Please sign in to comment.