Add ci page
Commit 0d22f pushed by Anže Pečar

5 tests 4 passed 1 failed Duration
self = <apps.projects.tests.IndexPageTest testMethod=test_index_page>

    def test_index_page(self):
>       response = self.client.get("/")

apps/projects/tests.py:6: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/test/client.py:927: in get
    response = super().get(path, data=data, secure=secure, headers=headers, **extra)
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/test/client.py:457: in get
    return self.generic(
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/test/client.py:609: in generic
    return self.request(**r)
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/test/client.py:891: in request
    self.check_exception(response)
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/test/client.py:738: in check_exception
    raise exc_value
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/core/handlers/exception.py:55: in inner
    response = get_response(request)
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/core/handlers/base.py:197: in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
ft/urls.py:35: in index
    return render(request, "index.html")
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/shortcuts.py:24: in render
    content = loader.render_to_string(template_name, context, request, using=using)
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/template/loader.py:62: in render_to_string
    return template.render(context, request)
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/template/backends/django.py:61: in render
    return self.template.render(context)
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/template/base.py:175: in render
    return self._render(context)
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/test/utils.py:112: in instrumented_test_render
    return self.nodelist.render(context)
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/template/base.py:1005: in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/template/base.py:1005: in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/template/base.py:966: in render_annotated
    return self.render(context)
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/template/loader_tags.py:157: in render
    return compiled_parent._render(context)
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/test/utils.py:112: in instrumented_test_render
    return self.nodelist.render(context)
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/template/base.py:1005: in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/template/base.py:1005: in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/template/base.py:966: in render_annotated
    return self.render(context)
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/template/loader_tags.py:63: in render
    result = block.nodelist.render(context)
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/template/base.py:1005: in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/template/base.py:1005: in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/template/base.py:966: in render_annotated
    return self.render(context)
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/template/loader_tags.py:63: in render
    result = block.nodelist.render(context)
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/template/base.py:1005: in render
    return SafeString("".join([node.render_annotated(context) for node in self]))
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/template/base.py:1005: in <listcomp>
    return SafeString("".join([node.render_annotated(context) for node in self]))
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/template/base.py:966: in render_annotated
    return self.render(context)
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/template/defaulttags.py:471: in render
    url = reverse(view_name, args=args, kwargs=kwargs, current_app=current_app)
/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/urls/base.py:88: in reverse
    return resolver._reverse_with_prefix(view, prefix, *args, **kwargs)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <URLResolver 'ft.urls' (None:None) '^/'>, lookup_view = 'mute_tests'
_prefix = '/', args = (), kwargs = {}, possibilities = []

    def _reverse_with_prefix(self, lookup_view, _prefix, *args, **kwargs):
        if args and kwargs:
            raise ValueError("Don't mix *args and **kwargs in call to reverse()!")
    
        if not self._populated:
            self._populate()
    
        possibilities = self.reverse_dict.getlist(lookup_view)
    
        for possibility, pattern, defaults, converters in possibilities:
            for result, params in possibility:
                if args:
                    if len(args) != len(params):
                        continue
                    candidate_subs = dict(zip(params, args))
                else:
                    if set(kwargs).symmetric_difference(params).difference(defaults):
                        continue
                    matches = True
                    for k, v in defaults.items():
                        if k in params:
                            continue
                        if kwargs.get(k, v) != v:
                            matches = False
                            break
                    if not matches:
                        continue
                    candidate_subs = kwargs
                # Convert the candidate subs to text using Converter.to_url().
                text_candidate_subs = {}
                match = True
                for k, v in candidate_subs.items():
                    if k in converters:
                        try:
                            text_candidate_subs[k] = converters[k].to_url(v)
                        except ValueError:
                            match = False
                            break
                    else:
                        text_candidate_subs[k] = str(v)
                if not match:
                    continue
                # WSGI provides decoded URLs, without %xx escapes, and the URL
                # resolver operates on such URLs. First substitute arguments
                # without quoting to build a decoded URL and look for a match.
                # Then, if we have a match, redo the substitution with quoted
                # arguments in order to return a properly encoded URL.
                candidate_pat = _prefix.replace("%", "%%") + result
                if re.search(
                    "^%s%s" % (re.escape(_prefix), pattern),
                    candidate_pat % text_candidate_subs,
                ):
                    # safe characters from `pchar` definition of RFC 3986
                    url = quote(
                        candidate_pat % text_candidate_subs,
                        safe=RFC3986_SUBDELIMS + "/~:@",
                    )
                    # Don't allow construction of scheme relative urls.
                    return escape_leading_slashes(url)
        # lookup_view can be URL name or callable, but callables are not
        # friendly in error messages.
        m = getattr(lookup_view, "__module__", None)
        n = getattr(lookup_view, "__name__", None)
        if m is not None and n is not None:
            lookup_view_s = "%s.%s" % (m, n)
        else:
            lookup_view_s = lookup_view
    
        patterns = [pattern for (_, pattern, _, _) in possibilities]
        if patterns:
            if args:
                arg_msg = "arguments '%s'" % (args,)
            elif kwargs:
                arg_msg = "keyword arguments '%s'" % kwargs
            else:
                arg_msg = "no arguments"
            msg = "Reverse for '%s' with %s not found. %d pattern(s) tried: %s" % (
                lookup_view_s,
                arg_msg,
                len(patterns),
                patterns,
            )
        else:
            msg = (
                "Reverse for '%(view)s' not found. '%(view)s' is not "
                "a valid view function or pattern name." % {"view": lookup_view_s}
            )
>       raise NoReverseMatch(msg)
E       django.urls.exceptions.NoReverseMatch: Reverse for 'mute_tests' not found. 'mute_tests' is not a valid view function or pattern name.

/opt/hostedtoolcache/Python/3.11.6/x64/lib/python3.11/site-packages/django/urls/resolvers.py:828: NoReverseMatch