Exceptions

Failure of generic test will produce message in form of list of submessages for every tested subject (url/filter/queryset), for example failed get request in test_urls::

OrderedDict([
    ('location', 'GET'),
    ('url name', 'accounts:user_update'),
    ('url', '/en/users/1/update'),
    ('url pattern', 'en/^users/<int:pk>/update'),
    ('parsed args', dict_values([1])),
    ('view class', <class 'accounts.views.users.UserUpdateView'>),
    ('traceback', ...)])

location is universal key shared by all messages referencing specfic location in generators.py where exception happened, searching ‘GET’ from example will lead to relevant part of code, other keys/values provide additional info/data relevant to failure depending on test and location. Below are exception locations with examples and suggestions for fix

test_urls

URL ARG TYPE - url argument type was not recognized automatically for specified argument in order to generate it, provide value manually using url_args/url_kwargs in url_params_map

URL ARG MATCH - url argument failed to be matched with model field and need to be provided manually using url_args/url_kwargs in url_params_map:

OrderedDict([
  ('location', 'URL ARG MATCH'),
  ('url name', 'comments:article_comments'),
  ('url pattern', 'en/^comments/<slug:article>/'),
  ('arg', 'slug:article'),
  ('matching fields', []),
  ('traceback', 'Url arg matching failed')]),

URL ARG PARSE - most likely value of argument for matched model field of generated object is None, make sure generated obj has not None field value or provide it manually using url_args/url_kwargs in url_params_map:

OrderedDict([
    ('location', 'URL ARG PARSE'),
    ('url name', 'comments:article_comments'),
    ('url pattern', 'en/^comments/<slug:article>/<slug:slug>/comments/'),
    ('arg', 'slug:article',),
    ('parsed arg', None),
    ('traceback', 'Url arg parsing failed')]),

URL ARGS PARSED - one of url arguments failed to be parsed (see URL ARG MATCH/URL ARG PARSE), provide it manually using url_args/url_kwargs in url_params_map

GET - get request failed, often its missing request kwarg required by view, in that case provide request_kwargs in url_params_map, but it can have many different reasons, follow traceback:

OrderedDict([
    ('location', 'GET'),
    ('url name', 'accounts:user_export'),
    ('url', '/en/accounts/users/export/'),
    ('url pattern', 'en/^accounts/users/export/'),
    ('parsed args', dict_values([])),
    ('view class', <class 'accounts.views.users.UserExportView'>),
    ('traceback', ...)])

SORTING - same as GET for specific sorting

DISPLAY - same as GET for specific display

TEMPLATE - response template doesnt match one defined by view or default name

POST FORM INIT - failed to get form instance with generated form_kwargs, form_class is retrieved from get response if possible, provide form_kwargs manually in url_params_map

POST GENERATING FORM DATA - generating form data for given form have failed, provide manually using data in url_params_map

POST - post request failed, see traceback

POST COUNT - post request succeded but object wasnt created/deleted depoending on view class, most likely caused by invalid form as in example below (see: ‘form_valid’, [False]) or redirection in dispatch, for example due to missing permission:

OrderedDict([
    ('location', 'POST COUNT'),
    ('url name', 'accounts:user_delete'),
    ('url', '/en/accounts/users/1/delete/'),
    ('url pattern', 'en/^accounts/users/<int:pk>/delete/'),
    ('parsed args', dict_values(['1'])),
    ('view model', <class 'accounts.models.User'>),
    ('form class', <class 'django.forms.forms.Form'>),
    ('form valid', [False]),
    ('form errors', [{}]),
    ('data', <QueryDict: {]>),
    ('traceback', ...)]),

test_querysets

DEFAULT KWARGS - query method failed with kwargs provided using queryset_params_map, update provided kwargs

NO KWARGS - query method with no arguments failed, fix the method

GENERATING KWARGS - generating kwargs failed, provide them manually using queryset_params_map:

{'location': 'GENERATING KWARGS',
'model': <class 'messages.Message'>,
'queryset method': 'MessageQuerySet.from_user',
'traceback': ...}

GENERATED KWARGS - query method failed using generated kwargs, provide kwargs manually using queryset_params_map:

{'kwargs': {},
'location': 'GENERATED KWARGS',
'model': <class 'messages.Message'>,
'queryset method': 'MessageQuerySet.from_user',
'traceback': ...}

test_filters

FILTER INIT - failed to get filter instance with generated filter_kwargs, provide filter_kwargs manually in filter_params_map:

OrderedDict([
    ('location', 'FILTER INIT'),
    ('filter class', <class 'accounts.UserFilter'>),
    ('filter_kwargs', {}),
    ('params map', {}),
    ('traceback', ...)])

FILTER DATA - failed to generate data for filter, provide manually using data in filter_params_map

FILTER QUERYSET - failed to generate queryset for filter, provide manually using queryset in filter_params_map

FILTER - actual filtering using generated and/or provided values failed, see traceback for details:

OrderedDict([
    ('location', 'FILTER'),
    ('filter class', <class 'accounts.UserFilter'>),
    ('data', ...),
    ('queryset', <UserQuerySet [<User: user1>,  ...]>),
    ('params map', {}),
    ('traceback', ...)])