Это мой Modell, из которого я хочу провести UnitTest CreateForm:
И это мои UnitTests:
Это CreateForm:
И, наконец, вывод на консоль, когда я пытаюсь запустить Тест с:
py -3 manage.py makemigrations -v3
py -3 manage.py migrate -v3
isort -rc .
pmanage.py collectstatic --noinput -v3
py -3 manage.py test -v3
coverage3 run --source=catalog --omit=*migrations* manage.py test -v3
coverage3 report -m
py -3 manage.py runserver -v3
Это КонсольВывод:
Вот все изображения в обычном тексте для поиска с возможностью поиска:
models.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import uuid
from django.db import models
from django.urls import reverse
# Create your models here.
class context(models.Model):
"""Model representing a context. (for example telba.de)"""
CONTEXT = models.CharField(verbose_name='Kontext', primary_key=True, unique=True, max_length=200,
help_text='')
COUNTRYPREFIX = models.IntegerField(verbose_name='Ländervorwahl', help_text='')
CITYPREFIX = models.IntegerField(verbose_name='Ortsvorwahl', help_text='')
ROOTNUMBER = models.IntegerField(verbose_name='Nummer', help_text='')
EXTENSIONSFROM = models.IntegerField(verbose_name='Nebenstellen von', help_text='')
EXTENSIONSTILL = models.IntegerField(verbose_name='Nebenstellen bis', help_text='')
PORTSCOUNT = models.IntegerField(verbose_name='Anzahl erlaubter Nebenstelen', help_text='')
CALLPERMISSIONS_CHOICES = (
(u'0', u'WorldWide'),
(u'1', u'Europe'),
(u'2', u'National'),
(u'3', u'None'),
)
CALLPERMISSIONS = models.CharField(verbose_name='Anrufberechtigungen', max_length=1,
choices=CALLPERMISSIONS_CHOICES, help_text='')
def __str__(self):
"""String for representing the Model object context."""
return self.CONTEXT
def get_absolute_url(self):
"""Model representing a context."""
return reverse('context-detail', args=[str(self.CONTEXT)])
forms.py
class contextCreateForm(ModelForm):
# def __init__(self, context, *args, **kwargs):
def __init__(self, *args, **kwargs):
user = kwargs.pop('user')
super(contextCreateForm, self).__init__(*args, **kwargs)
if user.is_superuser:
self.fields['CONTEXT'].queryset = context.objects.all()
else:
self.fields['CONTEXT'].queryset = context.objects.filter(CONTEXT=str(user))
self.initial['CONTEXT'] = str(user)
class Meta:
model = context
fields = '__all__'
tests_forms.py
def test_contextCreateForm_ROOTNUMBER_label(self):
print("Method: test_contextCreateForm_ROOTNUMBER_label.")
userobj = User.objects.create_user(username='test.de', password='Password', is_superuser=True)
formobj = contextCreateForm(None, user=userobj)
self.assertTrue(formobj.fields['ROOTNUMBER'].label == 'Nummer')
def test_contextCreateForm_EXTENSIONSFROM_label(self):
print("Method: test_contextCreateForm_EXTENSIONSFROM_label.")
userobj = User.objects.create_user(username='test.de', password='Password', is_superuser=True)
form_data = {'CONTEXT': 'test.de', 'COUNTRYPREFIX': '49', 'CITYPREFIX': '211', 'ROOTNUMBER': '90096',
'EXTENSIONSFROM': '0', 'EXTENSIONSTILL': '5', 'PORTSCOUNT': '5', 'CALLPERMISSIONS': '0'}
formobj = sipuserCreateForm(data=form_data, user=userobj)
print("##################################DEBUG##################################")
print(formobj.fields['EXTENSIONSFROM'].label)
print("##################################DEBUG##################################")
self.assertTrue(formobj.fields['EXTENSIONSFROM'].label == 'Nebenstellen von')
Console Output:
test_contextCreateForm_COUNTRYPREFIX_label (catalog.tests.tests_forms.contextCreateFormTest) ... Method: test_contextCreateForm_COUNTRYPREFIX_label.
ok
test_contextCreateForm_EXTENSIONSFROM_label (catalog.tests.tests_forms.contextCreateFormTest) ... Method: test_contextCreateForm_EXTENSIONSFROM_label.
##################################DEBUG##################################
ERROR
test_contextCreateForm_ROOTNUMBER_label (catalog.tests.tests_forms.contextCreateFormTest) ... Method: test_contextCreateForm_ROOTNUMBER_label.
ok
======================================================================
ERROR: test_contextCreateForm_EXTENSIONSFROM_label (catalog.tests.tests_forms.contextCreateFormTest)
----------------------------------------------------------------------
Traceback (most recent call last):
File "C:\Users\mvanthiel\Work\Projecte\Onboarding-Django\onboarding\catalog\tests\tests_forms.py", line 68, in test_contextCreateForm_EXTENSIONSFROM_label
print(formobj.fields['EXTENSIONSFROM'].label)
KeyError: 'EXTENSIONSFROM'
----------------------------------------------------------------------
Ran 11 tests in 2.999s
FAILED (errors=1, expected failures=1)
Кто-нибудь знает почемуодин UnitTest завершается с ошибкой даже до того, как его можно будет проверить, если тест является истинным или ложным и почему он работает для ROOTNUMBER, но не для EXTENSIONSFROM?
Пожалуйста, помогите мне, если сможете.